Cómo migrar una base de datos de un servidor SQL de una máquina a otra

Contenidos

Hoy vamos con un post fundamentalmente práctico. Este es un «paso a paso» que describe cómo migrar una base de datos del servidor SQL y los componentes de SQL Server más comunes entre los equipos que ejecutan SQL Server.

migrar_base_de_datos_sql_server-7251395

Los pasos de este post asumen que las bases de datos del sistema master, model, tempdb y msdb no se moverán, pero proporcionan diferentes opciones para que se puedan transferir los componentes y los inicios de sesión más comunes contenidos en master y msdb.

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

Si está usando SQL Server 2005, podría utilizar el mismo método para migrar datos desde SQL Server 7.0 o SQL Server 2000. A pesar de esto, la herramienta de administración en SQL Server 2005 es distinto de la de SQL Server 7.0 o SQL Server 2000. Debe utilice SQL Server Management Studio en lugar de SQL Server Enterprise Manager. Al mismo tiempo, se debe usar el Asistente para importación y exportación de SQL Server (DTSWizard.exe) en lugar del Asistente para importación y exportación de datos DTS.

Aún cuando existen otros métodos, para migrar una base de datos de servidor SQL de usuarios vamos a proponer el de hacer una copia de seguridad de las bases de datos de usuarios en el servidor de origen y posteriormente restaurarlo en el servidor de destino. Para hacerlo, tenga en cuenta lo siguiente:

  • Tiempo de inactividad: Los usuarios podrán utilizar la base de datos mientras se realiza la copia de seguridad, pero tenga en cuenta que si hacen una INSERCIÓN, ACTUALIZACIÓN o ELIMINACIÓN después de que se haya realizado la copia de seguridad, esa copia de seguridad no contendrá los cambios. Si además necesita transferirlos, puede hacerlo con un tiempo de inactividad mínimo realizando una copia de seguridad del registro de transacciones y una copia de seguridad completa.
    • Restaura la copia de seguridad completa y especifica la opción WITH NORECOVERY.
    • Haga una copia de seguridad del registro de transacciones y restáurelo usando la opción CON RECUPERACIÓN. El tiempo de inactividad se limita a cuando se realiza una copia de seguridad y se restaura el registro de transacciones.
  • Tamaño de la base de datos: Ambos (original y restaurado) serán del mismo tamaño. Si necesita reducirlo, puede hacerlo antes o después de realizar la copia de seguridad y restaurarlo.
  • Diferentes localizaciones: Puede darse el caso de que necesite restaurar la base de datos en una ubicación que no sea la misma que estaba en el servidor de origen. Si ese es el caso, tendrá que utilizar la opción WITH MOVE. Un ejemplo sería el caso en el que tiene la base de datos de origen en D: MSSQL Data y el servidor de destino no dispone de una unidad D. Para restaurar la base de datos en la carpeta C: MSSQL Data, tendría que utilizar esa opción.
  • Si desea sobrescribir: Es factible que necesite volver a escribir sobre una base de datos que ya existe en el servidor de destino. Para hacer esto, debe utilizar la opción WITH REPLACE.
  • Versiones SQL: Dependiendo de la versión de SQL Server a la que restaure, es factible que se vea obligado a tener juego de caracteres, orden de clasificación e intercalación Unicode son los mismos tanto en el servidor de origen como en el de destino.

Paso 2: Cómo transferir inicios de sesión y contraseñas

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

Tenga en cuenta que puede tener diferentes bases de datos predeterminadas para los inicios de sesión del servidor de origen y destino, pero puede cambiar esto con el procedimiento almacenado sp_defaultdb.

Paso 3: resolución de usuarios huérfanos

Una vez que haya transferido los inicios de sesión y las contraseñas, es factible que los usuarios aún no tengan acceso. Los inicios de sesión están asociados a los usuarios a través del SID y si ese SID es inconsistente, se les negará el acceso. A esto se le llama tener usuarios huérfanos.

  • Cómo ver a los usuarios huérfanos: Abra el analizador de consultas y ejecute lo siguiente y vea si muestra alguno: exec sp_change_users_login ‘Reporte’.
  • Propietario de la base de datos huérfana (dbo): Para este caso, tendrá que ejecutar esto: exec sp_changedbowner ‘sa’. Lo que hace esto es cambiar el propietario de la base de datos a dbo y corregir el problema. Posteriormente, puede cambiarlo al usuario que desee volviendo a ejecutar la instrucción anterior, pero ahora con el usuario que desee.
  • Service Pack 1 de SQL Server 2000: Si tiene este Service Pack en el nuevo servidor, es factible que no vea al propietario en ninguna parte. Para solucionarlo debes seguir las instrucciones de este artículo de Microsoft Knowledge Base.
  • Error al intentar cambiar la contraseña de sa: Esto puede suceder si el inicio de sesión que dbo tenía en el origen no existe en el destino. Puedes resolverlo siguiendo estas instrucciones.

Hasta aquí los pasos obligatorios. Entonces podría elegir o no aprobar además los trabajos, alertas, operadores y paquetes de DTS.

(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = «//connect.facebook.net/es_ES/all.js#xfbml=1&status=0»;
fjs.parentNode.insertBefore(js, fjs);
}(document, ‘script’, ‘facebook-jssdk’));

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.