Инструменты для управления зеркалированием базы данных sql 2008?

Мы собираемся переместить около 20 баз данных, которые находятся на одном экземпляре SQL 2000, в среду SQL Server R2 с зеркалированием баз данных.

Мне нужен инструмент или сценарии, которые помогут мне легко управлять преобразованием и управлением этими 20 дБ в эту новую зеркальную среду. Есть много шагов в настройке каждой БД, и я хочу максимально автоматизировать.

Изменить: Вот шаги, которые я делал вручную:

  1. Создайте те же имя пользователя / пароли со старого сервера SQL 2000 на новый сервер SQL 2008. Затем синхронизируйте этих пользователей / пароли на другом сервере SQL Server 2008 с тем же SSID, чтобы при выполнении резервного копирования и восстановления базы данных они совпадали.
  2. Сделайте резервную копию каждого sql 2000 дБ.
  3. Скопируйте их на сервер А.
  4. Восстановите резервную копию на сервере А.
  5. Резервное копирование с сервера a, копирование на сервер b, восстановление там.
  6. Запустите зеркало "Настройка безопасности" мастера.
  7. Начни зеркалирование.

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

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 [$(БАЗА ДАННЫХ)]
идти
Другие вопросы по тегам