El valor de la gestión de datos

Cómo migrar una base de datos sql server de una máquina a otra

Posted on Thu, Jun 30, 2016

Vamos hoy con un artículo fundamentalmente práctico. Se trata de un “paso a paso” que describe cómo migrar una base de datos SQL server y los componentes de SQL Server más comunes entre equipos que ejecutan SQL Server.

migrar_base_de_datos_sql_server.jpg

Los pasos que se describen en este artículo suponen que no se van a mover las bases de datos del sistema master, model, tempdb y msdb pero proporcionan diferentes opciones para que se puedan transferir los logins y los componentes más comunes contenidos en master y msdb.

Descárgate la guía "Introducción a la Migración de Datos", descubre cómo  gestionar tu migración de datos. 

Paso 1: Cómo mover bases de datos de usuarios

Si estás utilizando SQL Server 2005, podrías utilizar el mismo método para migrar datos de SQL Server 7.0 o de SQL Server 2000. Sin embargo, la herramienta de gestión en SQL Server 2005 difiere de la de SQL Server 7.0 o SQL Server 2000 . Deberías utilizar SQL Server Management Studio en lugar de SQL Server Enterprise Manager. Además, se debe utilizar SQL Server Import and Export Wizard (DTSWizard.exe) en lugar de DTS Import and Export Data Wizard.

Aunque hay otros métodos, para migrar una base de datos SQL server de usuarios te vamos a proponer el de hacer una copia de seguridad de las bases de datos de usuario en el servidor de origen y luego restaurarla en el servidor de destino. Para hacerlo ten en cuenta lo siguiente:

  • Tiempo de inactividad: Los usuarios van a poder utilizar la base de datos mientras se está haciendo la copia de seguridad pero ten en cuenta que si hacen un INSERT, UPDATE, o DELETE después de haberse hecho la copia de seguridad, esa copia de seguridad no va a contener los cambios. Si necesitas transferir también estos, puedes hacerlo con un tiempo mínimo de inactividad realizando tanto una copia de seguridad del log de transacciones como una copia de seguridad completa.
    • Restaura la copia de seguridad completa y especifica la opción WITH NORECOVERY.
    • Haz una copia de seguridad del log de transacciones y restaurarla mediante el uso de la opción WITH RECOVERY. El tiempo de inactividad se limita al momento de la copia de seguridad del log de transacciones y su restauración.
  • Tamaño de las bases de datos: Ambas (original y restaurada) van a tener el mismo tamaño. Si necesitas reducirlo puedes hacerlo antes o después de realizar la copia de seguridad y restaurarla.
  • Ubicaciones diferentes: Puede que se dé el caso de que necesites restaurar la base de datos en una ubicación que no es la misma que tenía en el servidor de origen. Si se da ese caso tendrás que utilizar la opción WITH MOVE. Un ejemplo sería el caso en que tuvieses la base de datos origen en D:\MSSQL\Data, y el servidor de destino no tiene una unidad D. Para restaurar la base de datos en la carpeta C:\MSSQL\Data tendrías que utilizar esa opción.
  • Si quieres sobrescribir: Podría ser que necesites reescribir encima de una base de datos que ya existe en el servidor destino. Para ello tienes que utilizar la opción WITH REPLACE.
  • Versiones de SQL: Dependiendo de la versión de SQL Server en el que restaures, podrías estar obligado a que el juego de caracteres, el criterio de ordenación y la intercalación Unicode sean igual tanto en el servidor de origen y como en el destino.

 ¡Resuelve aquí tus dudas sobre Migraciones de Datos con uno de nuestros  expertos!

Paso 2: Cómo transferir logins y passwords

Necesitas transferir los inicios de sesión para que los usuarios actuales de SQL Server sean capaces de iniciar sesión en el nuevo servidor. Tienes unas instrucciones precisas de cómo hacerlo en este artículo de Microsoft Knowledge Base.

Ten en cuenta que es posible que tengas bases de datos predeterminadas diferentes para los inicios de sesión de los servidores origen y destino, pero lo puedes cambiar con el procedimiento almacenado sp_defaultdb.

 

Paso 3: Resolviendo usuarios huérfanos

Una vez que hayas transferido los logins y passwords, puede que los usuarios todavía no tengan acceso. Los logins están asociados a los usuarios a través del SID y si ese SID es incoherente se les denegará el acceso. A esto se le llama tener usuarios huérfanos.

  • Cómo ver los usuarios huérfanos: Abre el analizador de consultas y ejecuta lo siguiente y mira a ver si te muestra alguno: exec sp_change_users_login 'Report'.
  • Propietario de la base de datos (dbo) huérfano:  En este caso tendrás que ejecutar esto: exec sp_changedbowner 'sa'. Esto lo que hace es cambiar el propietario de la base de datos a dbo y corregir el problema. Luego puedes cambiarlo al usuario de quieras volviendo a ejecutar la instrucción anterior pero ahora con el usuario que quieras.
  • Service Pack 1 de SQL Server 2000: Si en el nuevo servidor tienes este service pack, puede que no veas por ningún lado el propietario. Para resolverlo deberás seguir las instrucciones de este artículo de Microsoft Knowledge Base.
  • Error al intentar cambiar contraseña del sa: Esto puede ocurrir si el inicio de sesión que tenía dbo en el origen no existe en el destino. Puedes resolverlo siguiendo estas instrucciones.

Hasta aquí los pasos obligatorios. Luego podrías decidir o no pasar también trabajos, alertas, operadores y paquetes DTS.

Guía introductoria a la migración de datos 

Topics: Data Integration