Инструменты для управления зеркалированием базы данных sql 2008?
Мы собираемся переместить около 20 баз данных, которые находятся на одном экземпляре SQL 2000, в среду SQL Server R2 с зеркалированием баз данных.
Мне нужен инструмент или сценарии, которые помогут мне легко управлять преобразованием и управлением этими 20 дБ в эту новую зеркальную среду. Есть много шагов в настройке каждой БД, и я хочу максимально автоматизировать.
Изменить: Вот шаги, которые я делал вручную:
- Создайте те же имя пользователя / пароли со старого сервера SQL 2000 на новый сервер SQL 2008. Затем синхронизируйте этих пользователей / пароли на другом сервере SQL Server 2008 с тем же SSID, чтобы при выполнении резервного копирования и восстановления базы данных они совпадали.
- Сделайте резервную копию каждого sql 2000 дБ.
- Скопируйте их на сервер А.
- Восстановите резервную копию на сервере А.
- Резервное копирование с сервера a, копирование на сервер b, восстановление там.
- Запустите зеркало "Настройка безопасности" мастера.
- Начни зеркалирование.
Я люблю, чтобы иметь возможность написать это или иметь инструмент, который делает это для меня. Спасибо! Павел
2 ответа
Я создал серию пакетных файлов и сценариев SQL, чтобы выполнить следующие действия. Я включил только сценарии для зеркалирования, но другие ссылочные сценарии SQL являются довольно простыми командами SQL (кроме сценария восстановления базы данных, который довольно сложен из-за того, как я его реализовал), и их создание даст вам возможность изменить переменные режима SQLCMD. Если вы хотите отправить мне сообщение в твиттере (@jcumberland) со своим адресом электронной почты, я могу отправить вам полный набор сценариев. Я также удалил полные пути к именам файлов.
- устанавливает режим восстановления для базы данных
- удаляет зеркалирование
- удалить зеркальную базу данных
- резервная база данных
- резервный журнал
- копирует бак файл
- копирует файл trn
- восстанавливает резервную копию базы данных
- восстанавливает резервную копию журнала
- удаляет файл bak
- удаляет файл trn
- настроить зеркалирование между принципалом и зеркалом
/*------------------------------------------------------*/ - ЗАМЕНИТЕ ЭТИ ЗНАЧЕНИЯ / * ------------------------------------------------ ------ * / /*------------------------------------------------------*/ - BATCH FILE 1, ПРИЗЫВАЕТ ПОЛЬЗОВАТЕЛЬСКИЙ ФАЙЛ /*------------------------------------------------------*/ @ эхо выключено установить PRIMARYHOST= установить MIRRORHOST= установить INST= установить DRIVE= set DRTARGETDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\" set LOGDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\" установить PORT= установить PRIMARYINST=%PRIMARYHOST%\%INST% установить MIRRORINST=% MIRRORHOST% \% INST% @echo on вызовите drdbsetup.bat %PRIMARYHOST% %MIRRORHOST% %PRIMARYINST% %MIRRORINST% DRIVE% %DRTARGETDIR% %PORT% %LOGDIR% Пауза /*------------------------------------------------------*/ - Пакетный файл 2 - вызывает SQL-скрипты /*------------------------------------------------------*/ rem - установить режим восстановления на полный sqlcmd / E / S% 3 -i SetRecoveryMode.sql -v DATABASE = "% 8" rem - удалить зеркалирование sqlcmd / E / S% 3 -i MirroringRemove.sql -v DATABASE = "% 8" sqlcmd / E / S% 4 -i MirroringRemoveMirror.sql -v DATABASE = "% 8" rem - полное резервное копирование sqlcmd / E / S% 3 -i BackupDatabaseFull.sql -v BACKUPPATH = "% 5: \" -v DATABASE =% 8 rem - лог бэкап sqlcmd / E / S% 3 -i BackupDatabaseLog.sql -v BACKUPPATH = "% 5: \" -v DATABASE =% 8 rem - копировать файлы резервных копий в зеркало копия \\%1\%5$\*. бак%6 / год копия \\%1\%5$\*.trn %6 / год rem - удалить файлы резервных копий с основного del \\%1\%5$\*. бак del \\%1\%5$\*. trn rem - восстановить базу данных из резервной копии sqlcmd / E / S% 4 -i RestoreDatabase.sql -v BKDIR =% 6 -v DATADIR =% 6 -v LOGDIR =% 9 rem - восстановить журнал базы данных sqlcmd /E /S%4 -i RestoreLog.sql -v BACKUPPATH=%6 -v БАЗА ДАННЫХ =% 8 rem - удалить файлы резервных копий с зеркала del% 6 \ *. bak del% 6 \ *. trn rem - настроить зеркалирование sqlcmd / E / S% 4 -i MirroringSetup.sql -v PRINCIPAL = "% 3" -v MIRROR = "% 4" -v PRINCIPAL_DNS = "% 1." -v MIRROR_DNS = "% 2.yourdomain.local" -v DATABASE_NAME = "% 8" -v PORT=% 7 /*------------------------------------------------------*/ - MirroringSetup.sql / * ------------------------------------------------ ------ * / /*-----------------------------------------------------*/ - беги по принципу /*-----------------------------------------------------*/: соединить $(ПРИНЦИП) ИДТИ - создает конечную точку если не существует (выберите * в sys.endpoints, где name = 'Mirroring') начать CREATE ENDPOINT Зеркальное отображение РАЗРЕШЕНИЕ [] СОСТОЯНИЕ = НАЧИНАЕТСЯ КАК TCP ( LISTENER_PORT = $(PORT),LISTENER_IP = ALL) FOR DATA_MIRRORING (РОЛЬ = ПАРТНЕР, АУТЕНТИФИКАЦИЯ = ОКНА ПЕРЕГОВОРЫ, ШИФРОВАНИЕ = ТРЕБУЕМЫЙ АЛГОРИТМ RC4) конец идти /*-----------------------------------------------------*/ - беги по зеркалу /*-----------------------------------------------------*/:connect $(MIRROR) ИДТИ - создает конечную точку если не существует (выберите * в sys.endpoints, где name = 'Mirroring') начать CREATE ENDPOINT Зеркальное отображение РАЗРЕШЕНИЕ [] СОСТОЯНИЕ = НАЧИНАЕТСЯ КАК TCP ( LISTENER_PORT = $(PORT),LISTENER_IP = ALL) FOR DATA_MIRRORING (РОЛЬ = ПАРТНЕР, АУТЕНТИФИКАЦИЯ = ОКНА ПЕРЕГОВОРЫ, ШИФРОВАНИЕ = ТРЕБУЕМЫЙ АЛГОРИТМ RC4) конец идти - Настраивает зеркальное партнерство ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(PRINCIPAL_DNS):$(PORT)' идти - убирает контроль зеркал если существует (выберите * из msdb..sysjobs, где [name] ='Задание монитора зеркального отображения базы данных') начать EXEC sp_dbmmonitordropmonitoring конец идти - настраивает зеркальный мониторинг EXEC sys.sp_dbmmonitoraddmonitoring - по умолчанию 1 минута идти /*-----------------------------------------------------*/ - беги по принципу /*-----------------------------------------------------*/: соединить $(ПРИНЦИП) ИДТИ - устанавливает зеркальное партнерство ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(MIRROR_DNS):$(PORT)' идти - убирает контроль зеркал если существует (выберите * из msdb..sysjobs, где [name] ='Задание монитора зеркального отображения базы данных') начать EXEC sp_dbmmonitordropmonitoring конец идти - настраивает зеркальный мониторинг EXEC sys.sp_dbmmonitoraddmonitoring - по умолчанию 1 минута идти /*------------------------------------------------------*/ - DRMirroringRemove.sql /*------------------------------------------------------*/ если существует (выберите * из sys.database_mirroring, где db_name(database_id) = '$(DATABASE)' и mirroring_guid не равно NULL) начать ALTER DATABASE [$(DATABASE)] ВЫКЛЮЧИТЬ ПАРТНЕРА конец идти ЗАДЕРЖКА ОЖИДАНИЯ '00:00:10' идти /*------------------------------------------------------*/ - DRMirroringRemoveMirror.sql /*------------------------------------------------------*/ если существует (выберите * из sys.database_mirroring, где db_name(database_id) = '$(DATABASE)' и mirroring_guid не равно NULL) начать ALTER DATABASE [$(DATABASE)] ВЫКЛЮЧИТЬ ПАРТНЕРА конец идти ЗАДЕРЖКА ОЖИДАНИЯ '00:00:10' идти DROP DATABASE [$(БАЗА ДАННЫХ)] идти
Как насчет встроенного монитора зеркального отображения базы данных?