En esta página se describen los siguientes métodos:
- Exportar e importar una base de datos
- Migrar con la función de copia de seguridad y restauración de SQL
El método de migración ideal depende del tiempo de inactividad aceptable de una base de datos específica y de su tamaño. La técnica más utilizada es el método de copia de seguridad y restauración.
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.
Importar una base de datos SQL en Linux
En esta sección se explica cómo exportar una base de datos SQL de un servidor SQL basado en Windows e importarla a un servidor SQL basado en Linux mediante SQL Server Management Studio (SSMS).
Requisitos previos
Para importar una base de datos SQL a Linux, necesitas lo siguiente:
Un equipo Windows con lo siguiente:
- SQL Server instalado.
- SSMS instalado.
- La base de datos SQL que quieres migrar está en este equipo. En este tutorial se usa una base de datos de ejemplo 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 estos pasos:
- En el ordenador Windows, crea una carpeta en la unidad C: y llámala
export
(c:\export
). - Abre SSMS.
- En la ventana Conexión, introduce localhost y haz clic en Conectar.
- En el Explorador de objetos, expanda Bases de datos.
Haz clic con el botón derecho en la base de datos de destino, selecciona Tareas y, a continuación, haz clic en Exportar aplicación de nivel de datos.... Se abrirá el asistente Exportar datos.
En el asistente Exportar datos, selecciona Siguiente.
En la pestaña Configuración, configure el asistente Exportar datos para guardar el archivo del paquete de copia de seguridad (BACPAC) (.bacpac) en el disco local.
Especifica la carpeta y el nombre del archivo de la siguiente manera:
c:\export\MigrationFile.bacpac
Haz clic en Siguiente.
Revisa los ajustes especificados y haz clic en Finalizar para iniciar el proceso de exportación. El archivo .bacpac se crea correctamente en la ubicación que has elegido. Ahora puede importarlo a un servidor SQL de destino.
Importar una base de datos a Linux
Para importar una base de datos SQL a un servidor SQL basado en Linux, sigue estos pasos:
- Abre SSMS.
- En la ventana Conexión, introduce la dirección IP del servidor de destino y haz clic en Conectar.
- 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....
Especifica el archivo .bacpac creado en el procedimiento de exportación.
c:\export\MigrationFile.bacpac
Haz clic en Siguiente.
Especifica AdventureWorks2022.
AdventureWorks2022
Comprueba que la ruta de datos y de registro muestre los ajustes predeterminados de la instancia de Linux.
Haz clic en Siguiente.
Revisa la configuración de la importación y haz clic en Finalizar para iniciar la importación.
Haga clic en Cerrar para cerrar el asistente de importación. La base de datos está lista para las conexiones.
Migrar mediante copias de seguridad y restauración de SQL
Puedes migrar una base de datos de SQL Server en Windows a SQL Server en Linux mediante la función de copia de seguridad y restauración. En esta sección se ofrece una guía detallada para ayudarte a transferir tu base de datos al entorno Linux con este método.
Requisitos previos
Para migrar una base de datos mediante el método de copia de seguridad y restauración, necesitas lo siguiente:
Un equipo Windows con lo siguiente:
- SQL Server instalado.
- SQL Server Management Studio (SSMS) instalado.
- Base de datos que se va a migrar. En este documento se usa la base de datos AdventureWorks2022.
Una máquina Linux con SQL Server instalado.
Crear una copia de seguridad de la base de datos en un equipo Windows
Puedes crear una copia de seguridad de una base de datos en un archivo con Windows mediante SSMS de la siguiente forma:
- Abre SSMS en el equipo Windows.
- En la ventana Conexión, introduce localhost.
- En el Explorador de objetos, expanda Bases de datos.
Haz clic con el botón derecho en la base de datos de destino, selecciona Tareas y, a continuación, haz clic en Crear copia de seguridad....
En la ventana Copia de seguridad de la base de datos, compruebe que Tipo de copia de seguridad esté configurado como Completa y que Crear copia de seguridad en esté configurado como Disco. Anota el 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 la ubicación predeterminada C:\Archivos de programa\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup.
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 SCP. Sin embargo, también puedes usar WinSCP o Git Bash Shell para subir el archivo.
Abre una nueva ventana de comandos en tu máquina Windows y ve 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\'
Usa el comando
scp
para copiar el archivo en el equipo Linux de destino. En el siguiente ejemplo se usa el archivoMigrationBackup.bak
creado anteriormente.scp MigrationBackup.bak sysadmin@
LINUX_INTERNAL_IP
:./Sustituye LINUX_INTERNAL_IP por la IP de tu máquina Linux.
Mover archivo de copia de seguridad
Para restaurar la base de datos en SQL Server en una máquina Linux, debes asegurarte de que el archivo de copia de seguridad se encuentre 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
, sigue estos pasos:
Desde el equipo Windows, conéctate al equipo Linux de destino mediante SSH.
ssh sysadmin@
LINUX_INTERNAL_IP
Sustituye LINUX_INTERNAL_IP por la IP de tu máquina Linux.
Crea un directorio de copia de seguridad.
sudo mkdir -p /var/opt/mssql/backup
Mueve el archivo de copia de seguridad al directorio que acabas de crear.
sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
Restaurar la base de datos
Puedes restaurar la base de datos en un equipo Linux con SSMS siguiendo estos pasos:
- Abre SSMS en tu equipo Windows.
- En la ventana de conexión, introduce la dirección IP o el nombre de host del equipo Linux.
- Especifica la información de Inicio de sesión y la Contraseña.
Haz clic en Conectar.
En el Explorador de objetos, haga clic con el botón derecho en la carpeta Bases de datos y seleccione Restaurar base de datos...
En la ventana Restaurar base de datos, defina Origen como Dispositivo y haga clic en ... para abrir el cuadro de diálogo de selección de copia de seguridad.
En el cuadro de diálogo Seleccionar dispositivo de copia de seguridad, haz clic en Añadir.
En el explorador de archivos, haga clic en el directorio \var\opt\mssql\backup y seleccione el archivo de copia de seguridad que haya subido.
Haz clic en Aceptar para aceptar la selección y cerrar el cuadro de diálogo.
Revisa el medio de copia de seguridad rellenado y haz clic en Aceptar.
Antes de empezar a restaurar tu base de datos en un ordenador Linux, debes actualizar la ubicación de los archivos de la base de datos restaurada en tu ordenador Linux, ya que la ruta del servidor Windows no existe en el servidor Linux.
- En el menú de la izquierda, haz clic en Archivos.
- Selecciona Reubicar todos los archivos en la carpeta para mover los archivos restaurados al directorio de datos predeterminado de SQL Server.
- Haz clic en Aceptar para iniciar el proceso de restauración.
Para verificar la restauración, enumera todas las bases de datos del servidor. La base de datos restaurada debería aparecer en la lista.
SELECT Name FROM sys.Databases GO
Ejecuta otras consultas en la base de datos migrada.
USE AdventureWorks2022 SELECT top 100 * FROM [Person].[Person] GO