2015-09-01 5 views
1

У нас есть сервер Основная база данных хостинга и сервер B, где находится его зеркало. Чтобы свести к минимуму рабочую нагрузку, вызванную отчетностью, мы создаем ежедневный снимок зеркальной базы данных на сервере B. В течение многих лет мы выполняли ту же работу, и она работала нормально.Снимки зеркальной базы данных сбой из-за ошибки журнала

Код, который мы используем первый удаляет старый снимок (это все еще работает), а затем создает бренд новый, используя запрос:

create database [DB_snapshot] on 
    (name = N'rsdev3',filename = N'd:\snapshot\DB.sqlsnapshot') , 
    (name = N'indexes',filename = N'd:\snapshot\DB_indexes.sqlsnapshot') 
as snapshot of DB 

Приведенный выше код прекрасно работали до сих пор, но сегодня впервые мы получили следующее сообщение об ошибке:

сообщение об ошибке

Msg 1823, Level 16, State 6, Line 1 A database snapshot cannot be created because it failed to start. Msg 1823, Level 16, State 7, Line 1 A database snapshot cannot be created because it failed to start. Msg 3456, Level 21, State 1, Line 1 Could not redo log record (202011:19306:2), for transaction ID (0:0), on page (1:1823948), allocation unit 281474979397632, database 'DB_snapshot' (database ID 6). Page: LSN = (201954:220201:1), allocation unit = 281474979397632, type = 1. Log: OpCode = 4, context 18, PrevPageLSN: (202010:23679:1). Restore from a backup of the database, or repair the database. Msg 3313, Level 21, State 1, Line 1 During redoing of a logged operation in database 'DB_snapshot', an error occurred at log record ID (202011:19306:2). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.

Я вытаращил, но ничего полезно не придумали. Я боюсь, что я могу отключиться, а затем снова подключить зеркалирование, но я бы предпочел не делать этого, потому что сейчас было бы очень неудобно.

Вы когда-нибудь испытывали нечто подобное? У вас есть идеи, как это исправить? Я буду очень благодарен за любые советы и советы!

+0

Запустить CHECKDB и опубликовать результаты. – usr

ответ

0

В случае, если кто-либо из вас задается вопросом, что вызвало эту довольно необычную проблему, пожалуйста, прочитайте дальше.

После нескольких часов наблюдения мы обнаружили преступника. Оказалось, что сервер, на котором зеркалирована база данных, использовался в этот день более интенсивно. Как следствие, новые транзакции на принципе были созданы быстрее, чем зеркало может передать их зеркальному серверу. Как только рабочая нагрузка уменьшилась, значительно увеличилась скорость передачи данных от главного к зеркалу. Выданные транзакции были скопированы, и через несколько часов все было в порядке.