sql >> Base de Datos >  >> Database Tools >> SSMS

Migración de base de datos SQL con SSMS

La migración de MSSQL entre servidores puede ser un desafío sin las pautas adecuadas para mantenerlo al día. En este artículo, describiré las diversas formas de migrar bases de datos de Microsoft SQL Server entre servidores o instancias. Ya sea que necesite mover una sola base de datos, muchas bases de datos, inicios de sesión o procedimientos almacenados y vistas, ¡lo cubrimos!

Hay muchas circunstancias en las que necesitará mover una base de datos o restaurar bases de datos. Las razones más comunes son:

  • Mudanza a un servidor completamente nuevo.
  • Mover a una instancia diferente de SQL.
  • Crear un servidor de desarrollo o pasar a un servidor de producción.
  • Restauración de bases de datos desde una copia de seguridad.

Hay dos formas principales de mover bases de datos SQL. Manualmente con Microsoft SQL Server Management Studio (SSMS) o con la línea de comandos. El método que elija depende de lo que necesite lograr. Si está moviendo una sola base de datos o solo unas pocas, la copia de seguridad y restauración manual de las bases de datos con SSMS será el enfoque más fácil. Si está moviendo muchas bases de datos (piense en más de 10), entonces usar el método de línea de comando acelerará el proceso. El método de línea de comandos requiere más trabajo de preparación de antemano, pero si está transfiriendo docenas de bases de datos, vale la pena el tiempo dedicado a configurar el script en lugar de migrar cada base de datos individualmente. Si no está seguro de qué método utilizar, pruebe primero el método manual mientras se familiariza con el proceso. Recomiendo leer hasta el final para una comprensión más profunda de la metodología.

Referencias útiles para la terminología

SSMS – Acrónimo de Microsoft S CL S siempre M administración S estudio.

Servidor de origen – El servidor o la instancia desde la que está moviendo las bases de datos desde o desactivado .

Servidor de destino – El servidor o la instancia a la que está moviendo las bases de datos a .

El método manual

Mover bases de datos SQL con el método manual puede ser muy fácil. Es el proceso preferido para transferir unas pocas bases de datos o más pequeñas. Para seguir esta parte de la guía, debe tener instalado MSSQL y Microsoft SQL Server Management Studio (SSMS).

Copia de seguridad de bases de datos en el servidor de origen

1. Comience iniciando sesión en el servidor de origen (el servidor desde o desde el cual está moviendo las bases de datos). Deberá abrir Microsoft SQL Server Management Studio seleccionando Inicio> Microsoft SQL Server>  Microsoft SQL Server Management Studio .

2.Inicie sesión en el servidor SQL mediante la autenticación de Windows o la autenticación de SQL.

3. Expanda el servidor (en nuestro caso SQL01 ), expanda Bases de datos , seleccione la primera base de datos que desea mover (imagen a continuación).

4. Haga clic derecho en su base de datos y seleccione Tareas luego haga clic en Copia de seguridad .

5. Desde aquí, ahora se encuentra en Backup Database pantalla. Puede elegir un Tipo de copia de seguridad como Completo o Diferencial , asegúrese de seleccionar la base de datos correcta y configure el destino para la copia de seguridad de SQL. Para nuestro ejemplo, podemos dejar la Copia de seguridad Tipo como Completo .

6. En Copia de seguridad Tipo , marque la casilla "Copia de seguridad de solo copia .” Si ejecuta DPM u otra forma de copia de seguridad del servidor, realice la copia de seguridad sin Solo copia causará una interrupción en la cadena de registro de la copia de seguridad.

7. Verá una ubicación debajo de Destino para la ruta de la nueva copia de seguridad. Por lo general, eliminará esta entrada entonces Añadir uno nuevo para seleccionar una carpeta a la que SQL tiene acceso de lectura/escritura. Adición de un nuevo destino de copia de seguridad muestra una ruta similar a la siguiente:

C:\Archivos de programa\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\

Esta ruta C:\ es donde se encuentra la copia de seguridad de la base de datos almacenada. Tenga en cuenta esta ubicación para referencia posterior, ya que esta es la ruta predeterminada para las copias de seguridad almacenadas y tendrá que tener acceso de lectura/escritura adecuado para los servicios de SQL.

Nota:los usuarios avanzados pueden sentirse cómodos dejando el destino como está, siempre que los permisos sean correctos en la carpeta de salida.

8. A continuación, agregue un nombre de archivo al final de esta ruta, como AdventureWorks2012-081418 .bak – Asegúrese de terminar el nombre del archivo con la extensión .bak y seleccione Aceptar

10. Una vez que haya presionado OK en Seleccionar destino de la copia de seguridad ¡Está listo para hacer una copia de seguridad de la base de datos! Todo lo que necesita hacer ahora es presionar OK y la base de datos comenzará a realizar una copia de seguridad. Verá una barra de progreso en la esquina inferior izquierda y, cuando se complete la copia de seguridad, aparecerá una ventana que dice 'La copia de seguridad de la base de datos 'AdventureWorks2012' se completó correctamente. '

Navegue hasta la ruta de destino, indicada anteriormente (en este caso, C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) verá su archivo recién creado (en este caso AdventureWorks2012-081418.bak ) - ¡Felicidades! Este archivo es la exportación completa de su base de datos y está listo para importarse al nuevo servidor. Si tiene más bases de datos, repita los pasos anteriores para cada base de datos que esté moviendo. Después de copiar todo el proceso de la base de datos, vaya al siguiente paso de restaurar las bases de datos en el servidor de destino.

Restauración de bases de datos en el servidor de destino

Ahora debería tener un archivo .bak de todas sus bases de datos en el servidor de origen. Estos archivos de base de datos deben transferirse al servidor de destino. Existen numerosas formas de mover sus datos al servidor de destino; puede usar USB, Robocopy o FTP. Después de copiar una base de datos, puede almacenarla en su servidor de destino, para nuestro ejemplo, la hemos almacenado en la unidad C en una carpeta llamada C:\dbbackups.

1. Abra Microsoft SQL Server Management Studio.

2. Inicie sesión en el servidor SQL utilizando la autenticación de Windows o la autenticación de SQL.

3. Expanda el servidor y haga clic derecho en Bases de datos y seleccione Restaurar base de datos.

4. La Restaurar base de datos la pantalla es muy similar a Back Up Database pantalla. En Fuente, querrá seleccionar Dispositivo en lugar de Base de datos . Seleccionando Dispositivo le permite restaurar directamente desde un archivo. Una vez que haya elegido Dispositivo , haga clic en el icono de exploración […]

5. Seleccione Agregar , luego navegue a la carpeta en la que se encuentran sus archivos .bak. (En este caso, C:\dbbackups ).

6. Seleccione la primera base de datos .bak que desea restaurar y haga clic en Aceptar.

7. Haga clic en Aceptar y ahora está listo para importar la base de datos. Antes de importar, echemos un vistazo a la sección Opciones en el lado izquierdo. En Opciones, verá otras configuraciones para restaurar bases de datos como Sobrescribir la base de datos existente , Conservar la configuración de replicación y Restringir el acceso a la base de datos restaurada . En este caso, no estamos reemplazando una base de datos existente, por lo que dejaré todas estas opciones sin marcar. Si desea reemplazar una base de datos existente (por ejemplo, la base de datos respaldada tiene datos más nuevos que en el servidor de destino o está reemplazando una base de datos de desarrollo o producción), simplemente seleccione Sobrescribir la base de datos existente .

Nota:los usuarios avanzados pueden sentirse cómodos dejando el destino como está, siempre que los permisos sean correctos en la carpeta de salida.

8. Hacer clic en Aceptar comienza el proceso de restauración como lo indica la ventana emergente que dice 'Base de datos 'AdventureWorks2012' restaurada con éxito'. Ha migrado su base de datos desde el servidor de origen al servidor de destino.

Repita este proceso para cada base de datos que esté migrando. Luego puede actualizar las referencias de ruta en sus secuencias de comandos/aplicación para apuntar al nuevo servidor, verifique que la migración se haya realizado correctamente.

Migración de inicios de sesión de Microsoft SQL Server

Después de importar sus bases de datos, si no puede conectarse con su inicio de sesión de SQL, puede recibir el error 'Inicio de sesión fallido para el usuario 'ejemplo'. (Microsoft SQL Server, Error:18456). ' Porque la base de datos está en el Inicio de sesión tradicional y modelo de usuario , los inicios de sesión se almacenan por separado en el servidor de origen y las credenciales no se encuentran dentro de la propia base de datos. A partir de este momento, el servidor de destino se puede configurar para usar el modelo de usuario de base de datos contenida que mantiene los inicios de sesión en su base de datos y fuera del servidor de origen. Hasta entonces, tendremos que movernos e interactuar con los usuarios como parte del modelo Tradicional. Continúe a continuación para continuar con la migración de sus usuarios de SQL.

La copia de seguridad y la restauración de las bases de datos movieron su relación de inicio de sesión de SQL a las bases de datos (sus inicios de sesión aún están asociados con las bases de datos correctas con los permisos correctos), pero los inicios de sesión reales en sí no se transfirieron al nuevo servidor. Puede verificar esto abriendo SSMS (SQL Server Management Studio) en el servidor de destino y navegando a Servidor> Seguridad> Iniciar sesión s. Notará que los inicios de sesión SQL personalizados que creó en el servidor anterior no se transfirieron aquí, pero si va a Servidor> Bases de datos> Su base de datos (AdventureWorks2012 en este caso)> Seguridad> Usuarios verá el inicio de sesión correcto asociado con la base de datos.

Si tiene uno o dos usuarios de SQL, simplemente puede eliminar la asociación del usuario a la base de datos en Servidores> Bases de datos> AdventureWorks2012> Seguridad> Usuarios , vuelva a crear el usuario en Servidor> Seguridad> Inicios de sesión y asignarlo a la base de datos adecuada.

Si tiene muchos inicios de sesión, deberá seguir un proceso adicional que se describe a continuación. Para migrar todos los usuarios de SQL, abra una Nueva consulta ventana en el servidor de origen y ejecute el siguiente script:

Script de inicio de sesión SQL

+

Este script crea dos procedimientos almacenados en la base de datos de origen que ayuda a migrar estos inicios de sesión. Abra una ventana Nueva consulta y ejecute lo siguiente:
EXEC sp_help_revlogin

Esta consulta genera un script que crea nuevos inicios de sesión para el servidor de destino. Copie el resultado de esta consulta y guárdelo para más tarde. Deberá ejecutar esto en el servidor de destino.

Una vez que haya copiado el resultado de esta consulta, inicie sesión en SSMS en el servidor de destino y abra una ventana Nueva consulta. Pegue el contenido de la secuencia de comandos anterior (debe tener una serie de líneas similares a -- Inicio de sesión:BUILTIN\Administrators
CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE =[master]) y presione Ejecutar.

Ahora ha importado con éxito todos los inicios de sesión de SQL y ahora puede verificar que las bases de datos se han migrado al servidor de destino utilizando sus credenciales anteriores.

Migración de vistas y procedimientos almacenados

Las vistas y los procedimientos almacenados migrarán con la base de datos si utiliza las típicas copias de seguridad en cinta de SQL. Siga las instrucciones a continuación si necesita migrar vistas y procedimientos almacenados de forma independiente.

  1. Abra Microsoft SQL Management Studio en el servidor de origen.
  2. Inicie sesión en su servidor SQL.
  3. Ampliar el servidor y también las Bases de datos .
  4. Haga clic derecho en el nombre de su base de datos y vaya a Tareas> Generar scripts .
  5. Haga clic en Siguiente .
  6. Cambiaremos Script de toda la base de datos y todos los objetos de la base de datos para Seleccionar objetos específicos de la base de datos y solo marque Vistas y Procedimientos almacenados.
  7. Haga clic en Siguiente, observe la opción Guardar en archivo. Tome nota de la ruta del archivo que se muestra. En mi caso, es C:\Users\Administrator\Documents\script.sql:la ruta de las vistas guardadas y los procedimientos almacenados.
  8. Haga clic en Siguiente>> Siguiente>>Finalizar, y seleccione C:\Users\Administrator\Documents\script.sql y cópielo en el servidor de destino.
  9. Vaya al servidor de destino, abra SSMS e inicie sesión en el servidor SQL.
  10. Vaya a Archivo> Abrir> Archivo o use el método abreviado de teclado CTRL+O para abrir el script SQL. Seleccione el archivo C:\Users\Administrator\Documents\script.sql para abrirlo.
  11. Verá la secuencia de comandos generada desde el servidor de origen que contiene todas las vistas y procedimientos almacenados. Haga clic en Ejecutar o use el método abreviado de teclado F5 y ejecute el script.
Nota:Desafortunadamente, no hay una forma integrada de hacer esto con la línea de comando. Hay herramientas de terceros e incluso una herramienta de Microsoft llamada mssql-scripter para secuencias de comandos más avanzadas.

¡Ya ha migrado las vistas y los procedimientos almacenados a su servidor de destino! Repita este proceso para cada base de datos que esté migrando. Un poco de orientación es muy útil en la administración de bases de datos. Cada servidor SQL tendrá sus propias configuraciones y obstáculos que enfrentar, pero esperamos que este artículo le haya brindado una base sólida para su migración a Microsoft SQL Server.

¿Está buscando un servicio SQL de alta disponibilidad e independiente de la plataforma que sea fácilmente escalable y pueda crecer con su negocio? Consulte nuestro producto SQL como servicio que se ofrece en Liquid Web. ¡Hable con uno de nuestros increíbles asesores de hospedaje para encontrar la solución perfecta para usted!


No