Migrar una base de datos SQL de Windows a Linux


Este tutorial lo guía a través de dos enfoques distintos para migrar una base de datos de SQL Server desde un servidor Windows a un servidor Linux.

Esta página analiza 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 restauración.

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úrese de tener lo siguiente:

  • Un proyecto de Google Cloud y una nube privada virtual (VPC) con conectividad a sus controladores de dominio de Active Directory.
  • Una subred que se utilizará para 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. 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 termine este tutorial, podrá evitar la facturación continua eliminando los recursos que creó. Para obtener más información, consulte Limpieza .

Las siguientes secciones analizan cómo migrar una base de datos de SQL Server desde un servidor basado en Windows a uno basado en Linux.

Importar una base de datos SQL a Linux

Esta sección analiza cómo exportar una base de datos SQL desde un SQL Server basado en Windows e importarla a un SQL Server basado en Linux usando SQL Server Management Studio (SSMS).

Requisitos previos

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

  • Máquina Windows con lo siguiente:

    • Servidor SQL instalado.
    • SSMS instalado.
    • La base de datos SQL que desea migrar está presente en esta máquina. Este tutorial utiliza una base de datos de muestra AdventureWorks2022 .
  • Máquina Linux con SQL Server instalado.

Exportar una base de datos SQL desde un servidor SQL basado en Windows

Para exportar una base de datos SQL desde un servidor SQL basado en Windows, siga los siguientes pasos:

  1. En la máquina con Windows, cree una nueva carpeta en la unidad C: y asígnele el nombre export ( c:\export ).
  2. Abra SSMS.
  3. En la ventana Conexión, ingrese localhost y haga clic en Conectar .
  4. En el Explorador de objetos, expanda Bases de datos .
  5. Haga clic derecho en su base de datos de destino, seleccione Tareas y luego haga clic en Exportar aplicación de nivel de datos.... Se abre el asistente Exportar datos.

    Exportar datos.

  6. En el asistente Exportar datos, seleccione Siguiente .

  7. En la pestaña Configuración, configure el asistente de Exportación de datos para guardar el archivo del paquete de respaldo (BACPAC) (.bacpac) en el disco local.

  8. Especifique la carpeta y el nombre del archivo, de la siguiente manera:

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

  10. Revise la configuración especificada y haga clic en Finalizar para iniciar el proceso de exportación. El archivo .bacpac se crea correctamente en la ubicación que eligió. Ahora puede importarlo a un servidor SQL de destino.

Importar una base de datos a un Linux

Para importar una base de datos SQL a un servidor SQL basado en Linux, siga los siguientes pasos:

  1. Abra SSMS.
  2. En la ventana Conexión, ingrese la dirección IP del servidor de destino y haga clic en Conectar .
  3. Haga clic con el botón derecho en la carpeta Bases de datos en el Explorador de objetos y seleccione Importar aplicación de capa de datos....
  4. Especifique el archivo .bacpac creado en el procedimiento de exportación.

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

  6. Especifique AdventureWorks2022 .

    AdventureWorks2022
    
  7. Verifique que la ruta de datos y registros muestre la configuración predeterminada de la instancia de Linux.

  8. Haga clic en Siguiente .

  9. Revise la configuración de importación y haga clic en Finalizar para iniciar la importación.

    Importe la configuración del archivo bacpac.

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

Migrar mediante copia de seguridad y restauración de SQL

Puede migrar una base de datos de SQL Server en Windows a SQL Server en Linux utilizando la función de copia de seguridad y restauración. Esta sección proporciona una guía paso a paso para ayudarle a transferir su base de datos al entorno Linux utilizando este método.

Requisitos previos

Para migrar una base de datos utilizando el método de copia de seguridad y restauración, necesita lo siguiente:

  • Máquina Windows con lo siguiente:

  • Una máquina Linux con SQL Server instalado.

Haga una copia de seguridad de su base de datos en su máquina Windows

Puede hacer una copia de seguridad de una base de datos en un archivo con Windows usando SSMS, de la siguiente manera:

  1. Abra SSMS en la máquina con Windows.
  2. En la ventana Conexión, ingrese localhost.
  3. En el Explorador de objetos, expanda Bases de datos .
  4. Haga clic derecho en su base de datos de destino, seleccione Tareas y luego haga clic en Realizar copia de seguridad....

    Crear copia de seguridad.

  5. En la ventana Copia de seguridad de la base de datos, verifique que el tipo de copia de seguridad esté configurado en Completo y que Copia de seguridad en esté configurado en Disco . Tome nota del nombre y la ubicación del archivo de copia de seguridad. Por ejemplo, una copia de seguridad de una 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 la base de datos SQL.

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

Copie el archivo de copia de seguridad a su máquina Linux

Puede utilizar un cliente de Protocolo de copia segura (SCP) para cargar el archivo de copia de seguridad en su máquina Linux. El siguiente procedimiento utiliza un cliente de línea de comando SCP. Sin embargo, también puedes usar WinSCP o Git Bash Shell para cargar el archivo.

  1. Abra un nuevo símbolo del sistema en su máquina con Windows y navegue hasta el directorio que contiene el archivo de copia de seguridad creado en la sección Haga una copia de seguridad de su base de datos en su máquina con Windows . Por ejemplo:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. Utilice el comando scp para copiar el archivo a la máquina Linux de destino. El siguiente ejemplo utiliza el archivo MigrationBackup.bak creado anteriormente.

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    Reemplace LINUX_INTERNAL_IP con la IP de su máquina Linux.

    Copie el archivo de respaldo a la máquina de destino.

Mover archivo de copia de seguridad

Para restaurar la base de datos en SQL Server en una máquina Linux, debe asegurarse de que el archivo de copia de seguridad esté en la ubicación predeterminada propiedad del usuario mssql , es decir, /var/opt/mssql .

Para mover el archivo de copia de seguridad al directorio mssql , siga los siguientes pasos:

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

    ssh sysadmin@LINUX_INTERNAL_IP
    

    Reemplace LINUX_INTERNAL_IP con la IP de su máquina Linux.

  2. Cree un nuevo directorio de respaldo.

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

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

Restaurar la base de datos

Puede restaurar la base de datos en una máquina Linux usando SSMS siguiendo los siguientes pasos:

  1. Abra SSMS en su máquina Windows.
  2. En la ventana Conexión, ingrese la dirección IP o el nombre de host de la máquina Linux.
  3. Especifique la información de inicio de sesión y la contraseña .
  4. Haga clic en Conectar .

    Seleccione el archivo de copia de seguridad para restaurar.

  5. En el Explorador de objetos, haga clic derecho en la carpeta Bases de datos y seleccione Restaurar base de datos...

  6. En la ventana Restaurar base de datos, configure Fuente en Dispositivo , haga clic en ... para abrir el cuadro de diálogo de selección de copia de seguridad.

  7. En el cuadro de diálogo Seleccionar dispositivo de respaldo, haga clic en Agregar .

  8. En el explorador de archivos, haga clic en el directorio \var\opt\mssql\backup y seleccione el archivo de copia de seguridad cargado.

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

  10. Revise los medios de copia de seguridad completos y haga clic en Aceptar .

    Seleccione el archivo de copia de seguridad para restaurar.

Antes de comenzar a restaurar su base de datos en una máquina Linux, debe actualizar la ubicación de los archivos de la base de datos restaurados en su máquina Linux porque la ruta del servidor Windows no existe en el servidor Linux.

  1. En el menú de la izquierda, haga clic en Archivos .
  2. Seleccione Reubicar todos los archivos en la carpeta para mover los archivos restaurados al directorio de datos predeterminado de SQL Server.
  3. Haga clic en Aceptar para comenzar el proceso de restauración.
  4. Verifique la restauración enumerando todas las bases de datos en el servidor. La base de datos restaurada debería aparecer en la lista.

    SELECT Name FROM sys.Databases
    GO
    
  5. Ejecute otras consultas en su base de datos migrada.

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

Limpiar

Una vez que termine el tutorial, puede limpiar los recursos que creó para que dejen de usar cuota y de incurrir en cargos. Las siguientes secciones describen cómo eliminar o desactivar estos recursos.

Eliminando el proyecto

La forma más sencilla de eliminar la facturación es eliminar el proyecto que creaste para el tutorial.

Para eliminar el proyecto:

  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?