Migra una base de datos de SQL de Windows a Linux


En este instructivo, se explican dos enfoques distintos para migrar una base de datos de SQL Server de un servidor Windows a un servidor 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 empleada 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 nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar 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 proyecto de Google Cloud :

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure 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.

    Go to project selector

  5. Make sure 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.

Cómo importar una base de datos SQL a Linux

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

Requisitos previos

Para importar una base de datos 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

Cómo exportar una base de datos de SQL desde un SQL Server basado en Windows

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

  1. En la máquina de Windows, crea una carpeta nueva en la unidad C: y asígnale el nombre export (c:\export).
  2. Abre SSMS.
  3. En la ventana Connection, ingresa localhost y haz clic en Connect.
  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 Tasks y, luego, haz clic en Export Data-Tier Application…. Se abrirá el asistente Exportar datos.

    Exportar datos.

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

  7. En la pestaña Configuración, configura el asistente 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 del 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. Se crea correctamente el archivo .bacpac en la ubicación que elegiste. Ahora puedes importarla a un SQL Server de destino.

Cómo importar una base de datos a un Linux

Para importar una base de datos 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 del explorador de objetos y selecciona Importar aplicación de nivel de datos….
  4. Especifica el archivo .bacpac que se creó 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 registros 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 comenzar 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 establecer 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 de Windows

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

  1. Abre SSMS en la máquina con Windows.
  2. En la ventana Connection, 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 Crear una copia de seguridad….

    Crear copia de seguridad.

  5. En la ventana Backup Database, verifica que Backup type esté configurado como Full y que Back up to esté configurado como Disk. Anota el 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 copia de seguridad de bases de datos SQL.

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

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

Puedes usar un cliente de 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 Git Bash Shell para subir el archivo.

  1. Abre un nuevo símbolo del sistema en tu máquina con Windows y navega al directorio que contiene el archivo de copia de seguridad creado en la sección Cómo crear una copia de seguridad de tu base de datos en una máquina con 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 de Linux de destino. En el siguiente ejemplo, se usa el archivo MigrationBackup.bak creado antes.

    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.

Cómo mover 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 de Windows, conéctate a la máquina de 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

Para restablecer la base de datos en una máquina Linux con SSMS, sigue estos pasos:

  1. Abre SSMS en tu máquina con Windows.
  2. En la ventana Connection, 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, establece Fuente en Dispositivo y haz clic en para abrir el diálogo de selección de copia de seguridad.

  7. En el cuadro de 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 el medio de copia de seguridad propagado y haz clic en Aceptar.

    Selecciona el archivo de copia de seguridad que deseas restablecer.

Antes de comenzar a restablecer la base de datos en una máquina Linux, debes actualizar la ubicación de los archivos de la base de datos restablecidos en la 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 restaurados al directorio de datos predeterminado de SQL Server.
  3. Haz clic en Aceptar para iniciar el proceso de restablecimiento.
  4. Para verificar el restablecimiento, muestra una lista de todas las bases de datos del servidor. La base de datos restablecida debería aparecer en la lista.

    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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

¿Qué sigue?