Migrando bancos de dados Mssql de instâncias diferentes para um novo servidor

1

Eu tenho 3 instâncias de Sql (2008 R2) em 3 servidores diferentes. As versões são (10.50.2550.0 SP1 Standard Edition (64 bits), 10.50.2550.0 SP1 Standard Edition (64 bits)). O objetivo é migrar todos os bancos de dados e logins para o novo servidor, apenas adquirimos com o Sql Server 2012.

Eu não sei como me aproximar, tentei usar o assistente de banco de dados de cópia e ele continua falhando. Se eu decidir fazer backup de cada banco de dados e restaurá-los para os novos servidores, não sei como migrar os logins.

Qual é a melhor abordagem para lidar com a situação?

Desculpe pela confusão: (Mais detalhes sobre o assunto)

  1. Número de bancos de dados a serem movidos: 10
  2. Erro listado durante o assistente de cópia de banco de dados:

Line 60:

OnError,DUPFAIDS,NT AUTHORITY\SYSTEM,DUAPPSRV1_EXAPPSVR1_DUPFAIDS_PFAIDS_Transfer Objects Task,{8F0C82BB-4C5D-4796-BE75-BAB033C59039},{3818CD1B-9685-46B7-AFE2-AE0FE962DA03},

12/3/2014 12:10:15 PM,12/3/2014 12:10:15 PM,0,0x,ERROR : errorCode=-1073548784

description=Executing the query "--------------------------------------------------..." failed with the following error: "Invalid object name 'xwd_window_disabled_objects'.".

Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.**

    
por cmkony04 03.12.2014 / 23:06

3 respostas

2

Backup e restauração dos bancos de dados, conforme sugerido. Em seguida, execute este script da Microsoft ( link ) nos servidores antigos para gerar um script para criar os logins no novo servidor. Como você tem dois servidores de origem, analise seu script com cuidado para garantir que não haja entradas duplicadas ou outros problemas.

    
por 03.12.2014 / 23:13
4

Existem várias maneiras diferentes de migrar os bancos de dados. O backup e a restauração são os mais comumente recomendados, mas se você tiver mais de 100 bancos de dados, talvez queira fazer script de algo para desanexar e anexar os bancos de dados. Eu usei com sucesso isso para migrar um número muito grande (centenas) de bancos de dados para um novo servidor:

@ECHO ON

set controlfile=control.txt

set newipmdf=\newserver\g$
set newipldf=\newserver\e$
set oldserver=oldserver\Prod1
set oldmdfpath=d:\prod1
set newmdfpath=g:\data
set copymdfpath=m:\data
set newserver=newserver
set oldlogpath=e:\prod1
set newlogpath=e:\log
set copylogpath=l:\log
set movedmdfpath=%oldmdfpath%\moved
set movedldfpath=%oldlogpath%\moved

mkdir %movedmdfpath%
mkdir %movedldfpath%

net use m: %newipmdf%
net use l: %newipldf%

SETLOCAL DISABLEDELAYEDEXPANSION
FOR /F %%L IN (%controlfile%%) DO (
  SET "line=%%L"
  SETLOCAL ENABLEDELAYEDEXPANSION
  ECHO !line!
  sqlcmd -E -S!oldserver! -Q"EXEC master.dbo.sp_detach_db @dbname = N'!line!'"
  copy "!oldmdfpath!\!line!.mdf" !copymdfpath!
  copy "!oldlogpath!\!line!_log.ldf" !copylogpath!
  sqlcmd -E -S!newserver! -Q"CREATE DATABASE [!line!] ON ( FILENAME = N'!newmdfpath!\!line!.mdf' ),( FILENAME = N'!newlogpath!\!line!_log.ldf' ) FOR ATTACH"
  move "!oldmdfpath!\!line!.mdf" !movedmdfpath!
  move "!oldlogpath!\!line!_log.ldf" !movedldfpath!
  ENDLOCAL
)
ENDLOCAL

net use m: /z
net use l: /z

Quanto aos logins, não posso ajudá-lo com as senhas, mas você deve conseguir uma lista de nomes de usuários com:

SELECT [name], type, type_desc
  FROM [master].[sys].[server_principals]
  where is_disabled=0 and type in ('S','U')
    
por 04.12.2014 / 00:08
1

O roteiro de Katherine Villyard para separar / anexar é bom.

Se você deseja fazer backup e restaurar, essa também é uma boa opção que é usada com frequência. Mas faça os logins primeiro.

Copie o código de sp_hexadecimal e sp_help_revlogin de este artigo da Technet e use sp_help_revlogin para gerar instruções TSQL que você pode usar para copiar seus logins. O processo é este:

  1. Execute o código mencionado acima para criar os procedimentos armazenados (no mestre)
  2. Executar EXEC sp_help_revlogin no seu servidor antigo
  3. Copie os resultados de sp_help_revlogin e cole-os em uma nova janela de consulta conectada à sua nova instância do SQL Server
  4. Execute as instruções TSQL que você acabou de colar

Se feito corretamente, sua nova instância terá logins correspondentes (com SIDs e senhas correspondentes, isso é fundamental). Então você pode fazer backup e restaurar seus bancos de dados para a nova instância sem se preocupar com logins de banco de dados órfãos.

(OBSERVAÇÃO para futuros visitantes: se por algum motivo as quebras de link fizerem uma busca por sp_help_revlogin para encontrar a nova página).

    
por 16.12.2014 / 16:34