Como duplicar o banco de dados MSSQL no mesmo ou em outro servidor?

15

Estou tentando fazer o seguinte:

  1. Tire uma foto do banco de dados original, crie e exija uma duplicata em outro servidor?
  2. Tire uma captura instantânea do banco de dados original, crie uma duplicata no mesmo servidor com um nome de banco de dados diferente

No entanto, não posso devido à experiência muito limitada com o MSSQL. Alguma sugestão?

Informação adicional:

Servidor de banco de dados de origem: SQL Server 2000

Servidor de banco de dados de destino: SQL Server 2005

Alex N
fonte

Respostas:

17
  1. fazer backup do banco de dados
  2. restaurar o banco de dados com um novo nome e / ou em outro servidor

Ambas as operações podem ser executadas no Enterprise Manager (SQL2000) ou no SQL Management Studio de substituição (SQL2005 +) ou nos comandos TSQL BACKUP e RESTORE .

Nota: você pode restaurar um banco de dados com backup do SQL2000 no SQL2005 sem problemas na maioria dos casos, mas não o contrário.

David Spillett
fonte
1
Obrigado David. Como faço para restaurar o banco de dados com um novo nome em outro servidor?
Alex N
O backup do banco de dados produz um arquivo de backup (ou estende um existente). Transfira esse arquivo para outro servidor e use o Management Studio (ou um comando RESTORE emitido de outra maneira) para restaurar um banco de dados a partir desse arquivo. O processo de restauração oferece a oportunidade de ditar um nome para o banco de dados após a restauração.
David Spillett
7

Adicionando isso, eu me deparei com isso enquanto seguia as etapas acima.
No SQL Server 2008 R2, pelo menos, você pode pular uma etapa para obter um local de backup no servidor.

  1. Bancos de dados com o botão direito
  2. Clique em Restaurar banco de dados.
  3. Defina a opção Do banco de dados para o banco de dados que você está copiando
  4. Defina a opção Para o banco de dados com o novo nome
  5. Clique OK
Chris
fonte
5

Provavelmente esta é a melhor solução:

1) No servidor de banco de dados de origem - Crie backup para o arquivo local

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2) Copie o arquivo de origem no servidor de destino.
Se os dois servidores estiverem na mesma máquina, convém criar uma cópia desse arquivo:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3) No servidor de banco de dados de destino : restaure o banco de dados do arquivo de backup

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'
Stefano Rosati
fonte
0

usando o MS SQLServer 2012, primeiro é necessário executar 3 etapas básicas, gerar arquivo .sql contendo apenas a estrutura do banco de dados de origem => clique com o botão direito do mouse no banco de dados de origem e, em seguida, em Tarefas, em seguida, em Gerar scripts => siga o assistente e você poderá salvar o arquivo .sql localmente Segundo, substitua no arquivo .sql o banco de dados de origem pelo destino = => clique com o botão direito do mouse no arquivo de destino e pressione Nova Consulta e Ctrl-H ou (editar - encontrar e substituir - substituição de Quack) finalmente, preencher com dados => clique com o botão direito do mouse no banco de dados de detinação, depois em Tarefas e, em seguida, em Importar dados => Fonte de dados drop dow definida como ".net framework data procider para sql server" + defina o campo de texto da string de conexão em DATA ex: Data Source = Mehdi \ SQLEXPRESS; Catálogo inicial = db_test; ID do usuário = sa; Senha = sqlrpwrd15 => A mesma coisa com o destino =>marque a tabela que você deseja transferir ou marque a caixa além de "source: ....." para verificar todas elas

você terminou.

Mehdi Benkirane
fonte