¿Cómo duplicar la base de datos MSSQL en el mismo servidor u otro?

15

Estoy tratando de lograr lo siguiente:

  1. ¿Tomar una instantánea de la base de datos original, crear y exigir un duplicado en otro servidor?
  2. Tome una instantánea de la base de datos original, cree un duplicado en el mismo servidor con un nombre de base de datos diferente

Sin embargo, no puedo debido a la experiencia muy limitada con MSSQL. ¿Alguna sugerencia?

Información adicional:

Servidor DB de origen: SQL Server 2000

Servidor DB de destino: SQL Server 2005

Alex N
fuente

Respuestas:

17
  1. copia de seguridad de la base de datos
  2. restaurar la base de datos con un nuevo nombre y / o en otro servidor

Ambas operaciones se pueden realizar desde Enterprise Manager (SQL2000) o su reemplazo SQL Management Studio (SQL2005 +), o los comandos TSQL BACKUP y RESTORE .

Nota: puede restaurar una base de datos respaldada desde SQL2000 en SQL2005 sin problemas en la mayoría de los casos, pero no al revés.

David Spillett
fuente
1
Gracias David. Sin embargo, ¿cómo restauro la base de datos con un nuevo nombre en otro servidor?
Alex N
Hacer una copia de seguridad de la base de datos produce un archivo de copia de seguridad (o extiende uno existente). Transfiera este archivo al otro servidor y luego use Management Studio (o un comando RESTORE emitido de otra manera) para restaurar una base de datos desde ese archivo. El proceso de restauración le ofrece la oportunidad de dictar un nombre para la base de datos una vez que se restaura.
David Spillett el
7

Agregué esto cuando me topé con esto mientras seguía los pasos anteriores.
En SQL Server 2008 R2, al menos, puede omitir un paso para obtener una copia de seguridad local en el servidor.

  1. Bases de datos de clic derecho
  2. Haga clic en Restaurar base de datos.
  3. Establezca la opción De la base de datos a la base de datos que está copiando
  4. Establezca la opción A la base de datos con el nuevo nombre
  5. Haga clic en Aceptar
Chris
fuente
5

Probablemente esta sea la mejor solución:

1) En el servidor de base de datos de origen : cree una copia de seguridad en un archivo 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 el archivo de origen al servidor de destino.
Si ambos servidores están en la misma máquina, es posible que desee crear una copia de ese archivo:

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

3) En el servidor de base de datos de destino : restaure la base de datos desde el archivo de respaldo

RESTORE DATABASE CloneDB

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

usando MS SQLServer 2012, primero debe realizar 3 pasos básicos, generar un archivo .sql que contenga solo la estructura de la base de datos de origen => haga clic con el botón derecho en la base de datos de origen y luego Tareas y luego Generar secuencias de comandos => siga el asistente y podrá guardar el Archivo .sql localmente Segundo, reemplace en el archivo .sql el db de origen con el destino one => haga clic derecho en el archivo de destino y presione Nueva consulta y Ctrl-H o (editar - buscar y reemplazar - Quack responder) finalmente, rellene con datos => haga clic con el botón derecho en la base de datos de detination, luego en Tareas y luego en Importar datos => Fuente de datos desplegable establecido en ".net framework data procider for sql server" + configure el campo de texto de la cadena de conexión en DATOS, por ejemplo: Fuente de datos = Mehdi \ SQLEXPRESS; Catálogo inicial = db_test; ID de usuario = sa; Contraseña = sqlrpwrd15 => Lo mismo que hacer con el destino =>marque la tabla que desea transferir o marque la casilla además de "fuente: ....." para marcarlos todos

estás listo.

Mehdi Benkirane
fuente