День добрый.
В общем-то вопрос в названии темы. В РМК как-то странно начали считаться деньги в кассе. Сформировал в Журнале событий ошибки, там были предупреждения, о необходимости проверить базу данных.
День добрый.
В общем-то вопрос в названии темы. В РМК как-то странно начали считаться деньги в кассе. Сформировал в Журнале событий ошибки, там были предупреждения, о необходимости проверить базу данных.
Здравствуйте!
Подозреваете, что база физически имеет ошибки? У вас вроде MSSQL он достаточно надежен в этом плане, хотя и на старуху бывает проруха. Давайте сначала попробуем понять, что у вас пошло не так.
В РМК как-то странно начали считаться деньги в кассе.
Можно подробнее? Что смущает?
Сформировал в Журнале событий ошибки, там были предупреждения, о необходимости проверить базу данных.
Текст события скиньте пожалуйста.
Можно подробнее? Что смущает?
Отработали день, а z-отчет прошел с 0 суммой, нет информации ни о продажах, ни о деньгах - все по 0. На следующий день, деньги в кассе совсем не сходились с тем, что должно быть.
Текст события скиньте пожалуйста.
SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неправильная контрольная сумма (ожидаемая: 0xd4ced154; фактическая: 0xee2564a6). Она произошла при прочитать страницы (1:2152) в базе данных с идентификатором 4 по смещению 0x000000010d0000 файла "D:\SanSan\DATA\MSSQL12.SQLEXPRESS\MSSQL\DATA\MSDBData.mdf". Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.
Невозможно вставить запись журнала, подробную запись резервного копирования или восстановления в базу данных msdb. Это может указывать на неполадки с базой данных msdb. Операция резервного копирования или восстановления завершилась успешно.
Обработано 1608 страниц для базы данных "SanSan_log", файл "SanSan3_log" для файла 1.
Обработано 2 страниц для базы данных "SanSan_log", файл "SanSan3_log_log" для файла 1.
BACKUP DATABASE успешно обработал 1610 страниц за 0.826 секунд (15.225 MБ/сек).
Выполнение данной инструкции было прервано.
Здравствуйте. Судя по сообщению "неполадки с базой данных msdb", проблема у вас с системной базой данных самого SQL сервера. Проверить MS SQL базу можно выполнив запрос DBCC CHECKDB('имя_базы') через приложение SQL Server Management Studio, где в имя_базы подставить msdb. Этот запрос только диагностический, он не исправляет обнаруженные ошибки. Обычно в конце результата запроса выводится количество найденных ошибок. Для восстановления можно попробовать запрос DBCC CHECKDB('имя_базы', REPAIR_ALLOW_DATA_LOSS), но предварительно сохраните все ваши рабочие базы, т.к. из-за поломки системной базы возможно придется переустанавливать MS SQL Server. После исправления нужно еще раз будет запустить диагностический запрос и проверить, что количество ошибок стало ноль.
CHECKDB обнаружил 0 ошибок размещения и 9 ошибок согласованности в базе данных "msdb".
repair_allow_data_loss - это минимальный уровень исправления для ошибок, найденных DBCC CHECKDB (msdb).
Выполнение DBCC завершено. Если DBCC выдает сообщения об ошибках, обратитесь к системному администратору.
Вот такое выдало при проверке.
Вбиваю эту команду - DBCC CHECKDB(msdb, REPAIR_ALLOW_DATA_LOSS)
И получаю такой ответ:
Сообщение 7919, уровень 16, состояние 3, строка 1
Инструкция восстановления не обработана. База данных должна находиться в однопользовательском режиме.
Как перевести в однопользовательский режим?
ALTER DATABASE [имя базы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
потом
ALTER DATABASE [имя базы] SET MULTI_USER WITH ROLLBACK IMMEDIATE
что бы вернуть в многопользовательский режим, соответственно все программы кроме SQL Server Management Studio должны быть закрыты
кроме того, я бы проверил ваш диск на наличие ошибок, если у вас не было внезапного отключения света (или чего-то подобного) то такая история обычно предвестник того что винт выходит из строя
Проблемы со светом были. Винт проверяли, ничего критичного (BAD нет). Наша база проходит проверку без ошибок. А вот системная msdb - выдает ошибки...
Как вариант, делаете бэкап вашей базы, удаляете MSSQL. Ставите его заново. Системная база будет новая и целая. Потом восстанавливаете вашу базу.
Все прошло хорошо. Перевел в однопользовательский режим, исправил ошибки, проверил - ошибок нет. Перевел обратно в многопользовательский. Посмотрим, как будет работать дальше. Спасибо за помощь!