
Moveremos cerca de 20 bancos de dados que residem em uma única instância do sql 2000 para um ambiente sql 2008 r2 com espelhamento de banco de dados.
O que procuro é uma ferramenta ou scripts que me ajudem a gerenciar facilmente a conversão e o gerenciamento desses 20db neste novo ambiente espelhado. Há muitas etapas na configuração de cada banco de dados e quero automatizar o máximo possível.
Editar: aqui estão as etapas que venho executando manualmente:
- Crie o mesmo nome de usuário/senhas do antigo servidor SQL 2000 para o novo servidor SQL 2008. Em seguida, sincronize esses usuários/senhas no outro servidor SQL 2008 com os mesmos SSIDs para que, quando fizermos o backup e restauração do banco de dados, eles correspondam.
- Faça um backup de cada banco de dados SQL 2000.
- Copie-os para o servidor A.
- Restaure o backup para o servidor A.
- Faça backup do servidor a, copie para o servidor b e restaure lá.
- Execute o assistente de espelho "configurar segurança".
- Comece a espelhar.
Adoro poder criar um script ou ter uma ferramenta que faça isso por mim. Obrigado! Paulo
Responder1
Criei uma série de arquivos em lote e scripts SQL para executar as etapas abaixo. Eu incluí apenas os scripts para o material de espelhamento, mas os outros scripts SQL referenciados são comandos SQL bastante básicos (exceto o script de restauração do banco de dados, que é meio complicado devido à forma como eu o implementei) e criá-los lhe dará uma oportunidade para alterar as variáveis do modo SQLCMD. Se você quiser me enviar uma mensagem direta no Twitter (@jcumberland) com seu endereço de e-mail, posso enviar o conjunto completo de scripts. Também removi os caminhos completos dos nomes dos arquivos.
- define o modo de recuperação para banco de dados
- remove espelhamento
- remover banco de dados espelho
- banco de dados de backup
- registro de backup
- copia o arquivo bak
- copia arquivo trn
- restaura backup do banco de dados
- restaura backup de log
- exclui arquivo bak
- exclui arquivo trn
- configurar o espelhamento entre o principal e o espelho
/*------------------------------------------------ ------*/ - SUBSTITUA ESTES VALORES /*------------------------------------------------ ------*/ /*------------------------------------------------ ------*/ -- ARQUIVO DE LOTE 1, ARQUIVO DE LOTE DO UTILITÁRIO DE CHAMADAS /*------------------------------------------------ ------*/ @eco desligado definir PRIMARYHOST = definir MIRRORHOST = definir INST= definir UNIDADE= defina DRTARGETDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\" defina LOGDIR="%DRIVE%:\MSSQL.1\MSSQL\DATA\" definir PORTA= definir PRIMARYINST=%PRIMARYHOST%\%INST% definir MIRRORINST=%MIRRORHOST%\%INST% @eco ativado chame drdbsetup.bat %PRIMARYHOST% %MIRRORHOST% %PRIMARYINST% %MIRRORINST% %DRIVE% %DRTARGETDIR% %PORT% %LOGDIR% pausa /*------------------------------------------------ ------*/ -- ARQUIVO LOTE 2 - CHAMA OS SCRIPTS SQL /*------------------------------------------------ ------*/ rem – define o modo de recuperação como completo sqlcmd /E /S%3 -i SetRecoveryMode.sql -v DATABASE="%8" rem -- remove espelhamento sqlcmd /E /S%3 -i EspelhamentoRemove.sql -v DATABASE="%8" sqlcmd /E /S%4 -i MirroringRemoveMirror.sql -v DATABASE="%8" rem – backup completo sqlcmd /E /S%3 -i BackupDatabaseFull.sql -v BACKUPPATH="%5:\" -v BANCO DE DADOS=%8 rem – backup de log sqlcmd /E /S%3 -i BackupDatabaseLog.sql -v BACKUPPATH="%5:\" -v DATABASE=%8 rem -- copia arquivos de backup para espelhar copiar \\%1\%5$\*.bak %6 /y copiar \\%1\%5$\*.trn %6 /y rem – remove arquivos de backup do primário del \\%1\%5$\*.bak del \\%1\%5$\*.trn rem -- restaura o banco de dados do diretório de backup sqlcmd /E /S%4 -i RestoreDatabase.sql -v BKDIR=%6 -v DATADIR=%6 -v LOGDIR=%9 rem -- restaura o log do banco de dados sqlcmd /E /S%4 -i RestoreLog.sql -v BACKUPPATH=%6 -v DATABASE=%8 rem -- remove arquivos de backup do espelho del %6\*.bak del %6\*.trn rem -- configura o espelhamento sqlcmd /E /S%4 -i MirroringSetup.sql -v PRINCIPAL="%3" -v MIRROR="%4" -v PRINCIPAL_DNS="%1." -v MIRROR_DNS="%2.seudomínio.local" -v DATABASE_NAME="%8" -v PORT=%7 /*------------------------------------------------ ------*/ -- MirroringSetup.sql /*------------------------------------------------ ------*/ /*------------------------------------------------ -----*/ -- executado no principal /*------------------------------------------------ -----*/ :conectar $(PRINCIPAL) IR --cria endpoint se não existir (selecione * em sys.endpoints onde nome = 'Espelhamento') começar CRIAR Espelhamento ENDPOINT AUTORIZAÇÃO [] ESTADO = INICIADO COMO TCP ( LISTENER_PORT = $(PORT) ,LISTENER_IP = TODOS ) PARA DATA_MIRRORING ( FUNÇÃO = PARCEIRO , AUTENTICAÇÃO = NEGOCIAÇÃO DO WINDOWS ,CRIPTOGRAFIA = ALGORITMO REQUERIDO RC4 ) fim ir /*------------------------------------------------ -----*/ - execute no espelho /*------------------------------------------------ -----*/ :conectar $(ESPELHO) IR --cria endpoint se não existir (selecione * em sys.endpoints onde nome = 'Espelhamento') começar CRIAR Espelhamento ENDPOINT AUTORIZAÇÃO [] ESTADO = INICIADO COMO TCP ( LISTENER_PORT = $(PORT) ,LISTENER_IP = TODOS ) PARA DATA_MIRRORING ( FUNÇÃO = PARCEIRO , AUTENTICAÇÃO = NEGOCIAÇÃO DO WINDOWS ,CRIPTOGRAFIA = ALGORITMO REQUERIDO RC4 ) fim ir - Estabelece parceria espelho ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(PRINCIPAL_DNS):$(PORT)' ir -- Remove monitoramento de espelho se existir (selecione * em msdb..sysjobs onde [nome] ='Trabalho de monitor de espelhamento de banco de dados') começar EXEC sp_dbmmonitordropmonitoring fim ir -- Configura o monitoramento de espelho EXEC sys.sp_dbmmonitoraddmonitoring - o padrão é 1 minuto ir /*------------------------------------------------ -----*/ -- executado no principal /*------------------------------------------------ -----*/ :conectar $(PRINCIPAL) IR - Estabelece parceria espelho ALTER DATABASE [$(DATABASE_NAME)] SET PARTNER = N'TCP://$(MIRROR_DNS):$(PORT)' ir -- Remove monitoramento de espelho se existir (selecione * em msdb..sysjobs onde [nome] ='Trabalho de monitor de espelhamento de banco de dados') começar EXEC sp_dbmmonitordropmonitoring fim ir -- Configura o monitoramento de espelho EXEC sys.sp_dbmmonitoraddmonitoring - o padrão é 1 minuto ir /*------------------------------------------------ ------*/ --DRMirroringRemove.sql /*------------------------------------------------ ------*/ se existir ( selecione * de sys.database_mirroring onde db_name(database_id) = '$(DATABASE)' e mirroring_guid não é nulo) começar ALTER DATABASE [$(DATABASE)] DESATIVAR PARCEIRO fim ir AGUARDE ATRASO '00:00:10' ir /*------------------------------------------------ ------*/ --DRMirroringRemoveMirror.sql /*------------------------------------------------ ------*/ se existir ( selecione * de sys.database_mirroring onde db_name(database_id) = '$(DATABASE)' e mirroring_guid não é nulo) começar ALTER DATABASE [$(DATABASE)] DESATIVAR PARCEIRO fim ir AGUARDE ATRASO '00:00:10' ir DEIXAR BANCO DE DADOS [$(BANCO DE DADOS)] ir
Responder2
que tal o embutidoMonitor de espelhamento de banco de dados?