Migra una base de datos de SQL de Windows a Linux

En este instructivo, se te guiará por dos enfoques distintos para migrar una base de datos de SQL Server de un servidor de Windows a un servidor de Linux.

En esta página, se analizan los siguientes métodos:

El método de migración ideal está influenciado por el tiempo de inactividad aceptable para una base de datos específica y su tamaño. La técnica más utilizada es el método de copia de seguridad y restablecimiento.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de comenzar

Asegúrate de tener lo siguiente:

  • Un Google Cloud proyecto y una nube privada virtual (VPC) con conectividad a los controladores de dominio de Active Directory.
  • Una subred para usar en las instancias de máquina virtual (VM) del clúster de conmutación por error de Windows Server (WSFC).

Para completar la guía, también necesitas un Google Cloud proyecto:

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Cuando finalices este instructivo, puedes borrar los recursos creados para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

En las siguientes secciones, se explica cómo migrar una base de datos de SQL Server de un servidor basado en Windows a uno basado en Linux.

Importa una base de datos de SQL a Linux

En esta sección, se explica cómo exportar una base de datos de SQL desde un SQL Server basado en Windows y cómo importarla a un SQL Server basado en Linux con SQL Server Management Studio (SSMS).

Requisitos previos

Para importar una base de datos de SQL a Linux, necesitas lo siguiente:

  • Máquina Windows con lo siguiente:

    • SQL Server instalado
    • SSMS instalado
    • La base de datos de SQL que deseas migrar está presente en esta máquina. En este instructivo, se usa una base de datos de ejemplo AdventureWorks2022.
  • Máquina Linux con SQL Server instalado

Exporta una base de datos de SQL desde un SQL Server basado en Windows

Para exportar una base de datos de SQL desde un SQL Server basado en Windows, sigue estos pasos:

  1. En la máquina Windows, crea una carpeta nueva en la unidad C: y llámala export (c:\export).
  2. Abre SSMS.
  3. En la ventana Conexión, ingresa localhost y haz clic en Conectar.
  4. En el explorador de objetos, expande Bases de datos.
  5. Haz clic con el botón derecho en la base de datos de destino, selecciona Tareas, y, luego, haz clic en Exportar aplicación de capa de datos.... Se abrirá el asistente para exportar datos.

    Exportar datos

  6. En el asistente para exportar datos, selecciona Siguiente.

  7. En la pestaña Configuración, configura el asistente para exportar datos para guardar el archivo del paquete de copia de seguridad (BACPAC) (.bacpac) en el disco local.

  8. Especifica la carpeta y el nombre de archivo de la siguiente manera:

    c:\export\MigrationFile.bacpac
    
  9. Haz clic en Siguiente.

  10. Revisa la configuración especificada y haz clic en Finalizar para iniciar el proceso de exportación. El archivo .bacpac se crea correctamente en la ubicación que elegiste. Ahora puedes importarlo a un SQL Server de destino.

Importa una base de datos a Linux

Para importar una base de datos de SQL a un SQL Server basado en Linux, sigue estos pasos:

  1. Abre SSMS.
  2. En la ventana Conexión, ingresa la dirección IP del servidor de destino y haz clic en Conectar.
  3. Haz clic con el botón derecho en la carpeta Bases de datos en el explorador de objetos y selecciona Importar aplicación de capa de datos....
  4. Especifica el archivo .bacpac creado en el procedimiento de exportación.

    c:\export\MigrationFile.bacpac
    
  5. Haz clic en Siguiente.

  6. Especifica AdventureWorks2022.

    AdventureWorks2022
    
  7. Verifica que la ruta de acceso de datos y de registro muestre la configuración predeterminada de la instancia de Linux.

  8. Haz clic en Siguiente.

  9. Revisa la configuración de importación y haz clic en Finalizar para iniciar la importación.

    Importa la configuración del archivo .bacpac.

  10. Haz clic en Cerrar para cerrar el asistente de importación. La base de datos está lista para las conexiones.

Migra con la copia de seguridad y el restablecimiento de SQL

Puedes migrar una base de datos de SQL Server en Windows a SQL Server en Linux con la función de copia de seguridad y restablecimiento. En esta sección, se proporciona una guía paso a paso para ayudarte a transferir tu base de datos al entorno de Linux con este método.

Requisitos previos

Para migrar una base de datos con el método de copia de seguridad y restablecimiento, necesitas lo siguiente:

  • Máquina Windows con lo siguiente:

  • Una máquina Linux con SQL Server instalado

Crea una copia de seguridad de tu base de datos en tu máquina Windows

Puedes crear una copia de seguridad de una base de datos en un archivo con Windows mediante SSMS de la siguiente manera:

  1. Abre SSMS en la máquina Windows.
  2. En la ventana Conexión, ingresa localhost.
  3. En el explorador de objetos, expande Bases de datos.
  4. Haz clic con el botón derecho en la base de datos de destino, selecciona Tareas, y, luego, haz clic en Copia de seguridad....

    Crear copia de seguridad

  5. En la ventana Copia de seguridad de la base de datos, verifica que Tipo de copia de seguridad esté configurado como Completa y que Copia de seguridad en esté configurado como Disco. Toma nota del nombre y la ubicación del archivo de copia de seguridad. Por ejemplo, una copia de seguridad de la base de datos en SQL Server 2022 tiene una ubicación predeterminada de C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup.

    Opciones de copias de seguridad de bases de datos SQL

  6. Haz clic en Aceptar para iniciar la copia de seguridad.

Copia el archivo de copia de seguridad en tu máquina Linux

Puedes usar un cliente del protocolo de copia segura (SCP) para subir el archivo de copia de seguridad a tu máquina Linux. En el siguiente procedimiento, se usa un cliente de línea de comandos de SCP. Sin embargo, también puedes usar WinSCP o el Git Bash Shell para subir el archivo.

  1. Abre un nuevo símbolo del sistema en tu máquina Windows y navega al directorio que contiene el archivo de copia de seguridad creado en la sección Crea una copia de seguridad de tu base de datos en tu máquina Windows. Por ejemplo:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. Usa el comando scp para copiar el archivo en la máquina Linux de destino. En el siguiente ejemplo, se usa el archivo MigrationBackup.bak creado anteriormente.

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    Reemplaza LINUX_INTERNAL_IP por la IP de tu máquina Linux.

    Copia el archivo de copia de seguridad en la máquina de destino.

Mueve el archivo de copia de seguridad

Para restablecer la base de datos en SQL Server en una máquina Linux, debes asegurarte de que el archivo de copia de seguridad esté en la ubicación predeterminada que pertenece al usuario mssql, es decir, /var/opt/mssql.

Para mover el archivo de copia de seguridad al directorio mssql, sigue estos pasos:

  1. Desde la máquina Windows, conéctate a la máquina Linux de destino con SSH.

    ssh sysadmin@LINUX_INTERNAL_IP
    

    Reemplaza LINUX_INTERNAL_IP por la IP de tu máquina Linux.

  2. Crea un directorio de copia de seguridad nuevo.

    sudo mkdir -p /var/opt/mssql/backup
    
  3. Mueve el archivo de copia de seguridad al directorio recién creado.

    sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
    

Restablece la base de datos

Puedes restablecer la base de datos en una máquina Linux con SSMS con los siguientes pasos:

  1. Abre SSMS en tu máquina Windows.
  2. En la ventana Conexión, ingresa la dirección IP o el nombre de host de la máquina Linux.
  3. Especifica la información de Acceso y la Contraseña.
  4. Haz clic en Conectar.

    Selecciona el archivo de copia de seguridad que deseas restablecer.

  5. En el explorador de objetos, haz clic con el botón derecho en la carpeta Bases de datos y selecciona Restaurar base de datos...

  6. En la ventana Restaurar base de datos, configura Origen como Dispositivo y haz clic en ... para abrir el diálogo de selección de copia de seguridad.

  7. En el diálogo Seleccionar dispositivo de copia de seguridad, haz clic en Agregar.

  8. En el navegador de archivos, haz clic en el directorio \var\opt\mssql\backup y selecciona el archivo de copia de seguridad subido.

  9. Haz clic en Aceptar para aceptar la selección y cerrar el diálogo.

  10. Revisa los medios de copia de seguridad propagados y haz clic en Aceptar.

    Selecciona el archivo de copia de seguridad que deseas restablecer.

Antes de comenzar a restablecer tu base de datos en una máquina Linux, debes actualizar la ubicación de los archivos de base de datos restablecidos en tu máquina Linux, ya que la ruta de acceso del servidor de Windows no existe en el servidor de Linux.

  1. En el menú de la izquierda, haz clic en Archivos.
  2. Selecciona Reubicar todos los archivos en la carpeta para mover los archivos restablecidos al directorio de datos predeterminado de SQL Server.
  3. Haz clic en Aceptar para iniciar el proceso de restablecimiento.
  4. Verifica el restablecimiento enumerando todas las bases de datos en el servidor. Se debe mostrar la base de datos restablecida.

    SELECT Name FROM sys.Databases
    GO
    
  5. Ejecuta otras consultas en tu base de datos migrada.

    USE AdventureWorks2022
    SELECT top 100 * FROM [Person].[Person]
    GO
    

Limpia

Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?