20 votos

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

Es quizás una pregunta un poco estúpida, pero debo admitir que tengo muy poca experiencia con MSSQL y sin embargo tiene que lograr esto:

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

¡¡¡Ayuda!!! :(

Información adicional:

Servidor de base de datos de origen: SQL Server 2000

Servidor de BD en otra máquina: SQL Server 2005

16voto

David Spillett Puntos 18934

Esto se resolvió en Fallo del servidor :

Personalmente uso un poco de AutoHotkey script para reasignar ciertas funciones del teclado, para la ventana de la consola (CMD) uso:>

; Redefine only when the active window is a console window 
#IfWinActive ahk_class ConsoleWindowClass> 

; Close Command Window with Ctrl+w
$^w::
WinGetTitle sTitle
If (InStr(sTitle, "-")=0) { 
    Send EXIT{Enter}
} else {
    Send ^w
}

return 

; Ctrl+up / Down to scroll command window back and forward
^Up::
Send {WheelUp}
return

^Down::
Send {WheelDown}
return

; Paste in command window
^V::
; Spanish menu (Editar->Pegar, I suppose English version is the same, Edit->Paste)
Send !{Space}ep
return

#IfWinActive 

9voto

Chris Puntos 126

Añadiendo esto ya que me tropecé con esto mientras seguía los pasos anteriores.
En SQL Server 2008 R2 al menos se puede omitir un paso para obtener una copia de seguridad local en el servidor.

  1. Bases de datos con el botón derecho del ratón
  2. Haga clic en Restaurar base de datos..
  3. Establezca la opción De la base de datos en 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 OK

5voto

Stefano Rosati Puntos 31

Probablemente esta sea la mejor solución:

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

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

3) En Servidor de BD de destino : Restaurar la base de datos desde el archivo de copia de seguridad

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'

0voto

utilizando MS SQLServer 2012, es necesario realizar 3 pasos básicos primero, generar un archivo .sql que contenga sólo la estructura de la BD de origen => haga clic con el botón derecho del ratón en la base de datos de origen y luego en Tareas y luego en Generar scripts => siga el asistente y puede guardar el archivo .sql localmente En segundo lugar, sustituya en el archivo .sql la base de datos de origen por la de destino => haga clic con el botón derecho del ratón en el archivo de destino y pulse Nueva consulta y Ctrl-H o (editar - buscar y reemplazar - Quack replce) por último, rellenar con los datos => clic con el botón derecho del ratón en la base de datos de destino, luego Tareas y luego Importar Datos => fuente de datos desplegable establecer a ".net framework data procider for sql server" + establecer el campo de texto de la cadena de conexión en DATA ex: Data Source=Mehdi \SQLEXPRESS ;Catálogo inicial=db_test;ID de usuario=sa;Contraseña=sqlrpwrd15 => Lo mismo hay que hacer con el destino => marque la tabla que desea transferir o marque la casilla además de "origen :....." para marcar todas ellas

ya está hecho.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: