У меня довольно большая база данных (для нашей аппаратной настройки), и я пытаюсь запустить зеркалирование.Кажется, я не могу получить базы данных Primary и Mirror достаточно близко для синхронизации, чтобы запустить зеркалирование.
Полная резервная копия занимает около 10 минут, плюс еще 8 минут для передачи BAK на сервер Mirror и еще 10 минутвосстановить его.Итак, чтобы попытаться собрать вещи как можно ближе друг к другу, я написал следующее:
** На Первичном **
SET NOCOUNT ON
USE master
DECLARE @dbFileName VARCHAR(75)
, @logFileName VARCHAR(75)
SELECT @dbFileName = 'F:\SQL_Backups\RIVFramework_Prod1\Mirror\prod1.mdf.' + CONVERT(VARCHAR(10), GETDATE(), 102) + '.bak' -- formats date in YYYY.MM.DD --
SELECT @logFileName = 'F:\SQL_Backups\RIVFramework_Prod1\Mirror\prod1.ldf.' + CONVERT(VARCHAR(10), GETDATE(), 102) + '.bak' -- formats date in YYYY.MM.DD --
SELECT @dbFileName
SELECT @logFileName
/**
** 1 - Make sure your database is in full recovery mode
**/
ALTER DATABASE RIVFramework_Prod1
SET RECOVERY FULL
/**
** 2 - Backup the database
**/
BACKUP DATABASE RIVFramework_Prod1
TO DISK = @dbFileName
/**
** 3 - Backup the database log
**/
BACKUP LOG RIVFramework_Prod1
TO DISK = @logFileName
SET NOCOUNT OFF
** Скопируйте файлы **
*** ПРИМЕЧАНИЕ. Я изменил основной оператор восстановления базы данных, чтобы впоследствии правильно восстановить файл журнала.Изменено
с NORECOVERY,
на
с заменой, NORECOVERY,
** На зеркале **
SET NOCOUNT ON
USE master
/**
** Restore backup to Mirror server:
** MIRROR SERVER
** 4 - Restore to the mirror database with no recovery option
**/
RESTORE DATABASE RIVFramework_Prod1
FROM DISK = 'F:\XFer\prod1.mdf.2011.06.10.bak'
WITH REPLACE, NORECOVERY, -- You need to have both options in here so the later log file restore works.
MOVE 'RIVFramework_Prod1' TO 'F:\SQL2008\RIVFramework_Prod1.mdf',
MOVE 'CampaignAnalytics' TO 'F:\SQL2008\RivFramework_Prod1_CampaignAnalytics.ndf',
MOVE 'SalesAnalytics' TO 'F:\SQL2008\RivFramework_Prod1_SalesAnalytics.ndf',
MOVE 'RIVFramework_Prod1_log' TO 'G:\SQL2008\RIVFramework_Prod1_log.ldf'
/**
** 5 - Restore the mirror database logs with no recovery
**/
RESTORE LOG RIVFramework_Prod1
FROM DISK = 'F:\XFer\prod1.ldf.2011.06.10.bak'
WITH NORECOVERY
GO
Теперь у меня примерно 30 минут синхронизации.Вот я и делаю:
** На Первичном **
SET NOCOUNT ON
USE master
DECLARE @logFileName VARCHAR(75)
SELECT @logFileName = 'F:\SQL_Backups\RIVFramework_Prod1\Mirror\prod1.ldf.a.' + CONVERT(VARCHAR(10), GETDATE(), 102) + '.bak' -- formats date in YYYY.MM.DD --
SELECT @logFileName
/**
** 1 - Make sure your database is in full recovery mode
**/
ALTER DATABASE RIVFramework_Prod1
SET RECOVERY FULL
/**
** 3 - Backup the database log
**/
BACKUP LOG RIVFramework_Prod1
TO DISK = @logFileName
SET NOCOUNT OFF
** Копируем файлы **
** На Зеркале **
SET NOCOUNT ON
USE master
/**
** 5 - Restore the mirror database logs with no recovery
**/
RESTORE LOG RIVFramework_Prod1
FROM DISK = 'F:\XFer\prod1.ldf.a.2011.06.10.bak'
WITH NORECOVERY
GO
И меня приветствует следующая ошибка:
Сообщение 4305, уровень 16, состояние 1, строка 53 Журнал в этом наборе резервных копий начинается с номера LSN 61063000000325800001, который слишком поздний дляприменить к базе данных.Более раннюю резервную копию журнала, которая содержит LSN 61063000000117800001, можно восстановить.Сообщение 3013, уровень 16, состояние 1, строка 53. RESTORE LOG завершается ненормально.
Есть идеи, что мне не хватает ???
TIA