none
copiar base de datos con Transact-SQL RRS feed

  • Pregunta

  • quiero hacer una copia identica de una base de datos de un servidor (servidor1) a otro servidor (servidor2), mediante un script o un procedimiento.

    Algunos puntos que ya probé

    * No quiero hacer un espejo de la base de datos, ya que el servidor 2 es de pruebas y los datos se podrán modificar independiente del servidor 1

    * el wizard de SQL si me funciona, la opcion de copiar de, a, pero quiero hacerlo como un procedimiento almacenado o un scrip.

    *probé con respaldar y restaurar, pero no se como desde mi servidor2, hacer un respaldo del servidor1 para despues restaurarlo en mi servidor2.

    si me pudieran ayudar, ya que, soy un poco nuevo en esto y no se por que camino irme.

    Saludos y gracias por su apoyo.


    Gracias

    viernes, 29 de junio de 2012 2:59

Respuestas

  • La mejor alternativa es backup restore

    1.- Haz un backup en tu bbdd 1

    backup database tubbdd to disk ='c:\bla bla bla\fichero.bak'

    2.- Copia el fichero fichero.bak a una ruta (accesible para el sql) en el servidor 2

    3.- ejecuta el comando

    restore database tubbdd from disk='c:\turuta\fichero.bak'

    si te sale un mensaje de error con algo de que los directorios no existen, repasa la sintaxis de restore, en concreto la parte de with move, que es lo que tendrías que usar.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    viernes, 29 de junio de 2012 9:44
    Moderador

Todas las respuestas

  • El wizard copia solamente los datos, y no los procedimientos almacenados, los indices etc.

    Si utilizas respaldo debes pasar al archivo *.bak de servidor1 a servidor2, o respaldar a una carpeta que es accesible de los dos servidores.


    Blog: http://about.me/GeriReshef

    viernes, 29 de junio de 2012 3:26
  • La mejor alternativa es backup restore

    1.- Haz un backup en tu bbdd 1

    backup database tubbdd to disk ='c:\bla bla bla\fichero.bak'

    2.- Copia el fichero fichero.bak a una ruta (accesible para el sql) en el servidor 2

    3.- ejecuta el comando

    restore database tubbdd from disk='c:\turuta\fichero.bak'

    si te sale un mensaje de error con algo de que los directorios no existen, repasa la sintaxis de restore, en concreto la parte de with move, que es lo que tendrías que usar.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    viernes, 29 de junio de 2012 9:44
    Moderador
  • Hola. En SQL Server tienes varios asistentes o "wizards" y particularmente para tu escenario, si quieres hacerlo por script, necesitas primero usar el asistente para generar scripts de SQL Server, el cual te genera un script con los comandos DDL para crear tu esquema de base de datos. Luego de que éste esté generado, ahí si usas el asistente para copiar datos.

    En la documentación en línea, para SQL Server 2008 R2, tienes entonces para la primera parte de creación del esquema, How to: Generate a Script (SQL Server Management Studio) y para la copia de los datos, SQL Server Import and Export Wizard.

    Adicional al BACKUP/RESTORE, puedes hacer también un DETACH/ATTACH. Para esto último revisa en la documentación en línea esta entrada: How to: Move a Database Using Detach and Attach (Transact-SQL).

    Para lo del BACKUP/RESTORE, de nuevo lo que necesitas está en la documentación en línea: Backing Up and Restoring How-to Topics (SQL Server Management Studio).

    Saludos,


    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    viernes, 29 de junio de 2012 9:56
  • Muchas gracias GuillermoTaylor, segun lo que me estas diciendo es que genere el script con los datos de toda la base de datos y después lo ejecute en mi base de datos2? 

    no hay una forma de generar el script del WIZARD que hay en SQL para copiar la base de datos? 


    Gracias

    jueves, 5 de julio de 2012 0:05
  • eso es lo que quiero hacer como alternativa, pero automatizado, poderlo hacer todo en un solo script

    Gracias

    jueves, 5 de julio de 2012 0:06
  • el wizard tiene la opcion para copiar usuarios, etc, pero de cualquier manera, los procedimientos y vistas, no me importan tanto... si se puede hacer el script del wizard yo sería feliz... :)

    Gracias

    jueves, 5 de julio de 2012 0:07
  • si, podrías si el script lo ejecutas con el modo sqlcmd,  o si lo haces con powershell. El trasvase de registros de SQL Server hace lo mismo, intentaré escribir un artículo de como se hace para portal sql

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 5 de julio de 2012 9:26
    Moderador
  • Gracias Miguel... Espero el articulo y agradezco tu ayuda :)

    Gracias

    lunes, 9 de julio de 2012 13:54