Ferramentas para gerenciar o espelhamento de banco de dados SQL 2008?

Ferramentas para gerenciar o espelhamento de banco de dados SQL 2008?

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:

  1. 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.
  2. Faça um backup de cada banco de dados SQL 2000.
  3. Copie-os para o servidor A.
  4. Restaure o backup para o servidor A.
  5. Faça backup do servidor a, copie para o servidor b e restaure lá.
  6. Execute o assistente de espelho "configurar segurança".
  7. 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

informação relacionada