¿Cómo puedo migrar bases de datos de instancias de EC2 o máquinas virtuales locales a RDS para SQL Server?

Última actualización: 18/10/2022

Quiero migrar bases de datos desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o una instancia local de Microsoft SQL Server a mi instancia de Amazon Relational Database Service (Amazon RDS) para la instancia Microsoft SQL Server. ¿Cuáles son las opciones disponibles para migrar los datos?

Resolución

Métodos para migrar datos

Copia de seguridad y restauración nativas de SQL Server

Puede migrar la base de datos de SQL Server desde una instancia local o EC2 a Amazon RDS para SQL Server a una instancia de SQL Server mediante la copia de seguridad y restauración nativas.

1.    Cree un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar la copia de seguridad de la instancia de origen. El bucket S3 debe estar en la misma región que la instancia de RDS.

2.    Cree el rol Identity and Access Management (IAM) de AWS para acceder al bucket.

3.    Añada la opción SQLSERVER_BACKUP_RESTORE al grupo de opciones asociado a la instancia de RDS para SQL Server.

4.    Cree una copia de seguridad desde la instancia de origen (local o EC2) y, a continuación, cópiela al bucket de S3 que creó en el paso 1.

5.    Ejecute el siguiente script para restaurar la copia de seguridad en la instancia de RDS para SQL Server:

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name file_name_and_extension';

6.    Ejecute el siguiente script para hacer una copia de seguridad de la base de datos de instancias de RDS a S3:

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

Nota: también puede hacer copias de seguridad y restaurar copias de seguridad diferenciales.

AWS Database Migration Service (AWS DMS)

1.    Verifique los requisitos previos y las limitaciones del uso de SQL Server como fuente o destino de AWS DMS:

2.    Cree una instancia de replicación de DMS.

3.    Cree puntos de conexión de origen y destino mediante DMS.

4.    Cree una tarea de migración.

Replicación transaccional

Puede configurar la replicación transaccional desde instancias locales o de SQL Server de EC2 a una instancia de RDS para SQL Server. La instancia de RDS para SQL Server solo se puede crear como suscriptor con una suscripción push desde la instancia local o EC2 de SQL Server como publicador-distribuidor.

Para obtener instrucciones paso a paso para configurar la replicación de transacciones desde una instancia de SQL Server local o EC2, consulte lo siguiente:

Archivo de paquete de copia de seguridad (.bacpac)

El archivo .bacpac consiste en los metadatos copiados y los datos comprimidos en un archivo. Este enfoque es la mejor opción para bases de datos de alrededor de 200 GB.

Puede crear un archivo .bacpac usando Export/Import (exportar/importar) o mediante la utilidad SQLPackage.exe (línea de comandos).

Para obtener más información sobre el archivo .bacpac, consulte Migrar la base de datos de SQL Server de una base de datos de Azure SQL a Amazon RDS para SQL Server mediante el método .bacpac.

Métodos para importar datos

Asistente para generar y publicar scripts

Si la base de datos tiene menos de 1 GB, puede utilizar el asistente para generar y publicar scripts. Para bases de datos más grandes, puede crear scripts para el esquema de la base de datos mediante el asistente de importación y exportación o los métodos de copia masiva.

Para obtener más información sobre el Asistente para generar y publicar scripts, consulte Cómo generar un script (SQL Server Management Studio) en la documentación de Microsoft SQL Server.

Nota: asegúrese de seleccionar Guardar scripts en una ubicación específica, avanzada en la página Definir opciones de scripts. La configuración avanzada proporciona opciones adicionales para incluir o excluir objetos de la tabla durante la importación y la exportación.

Asistente de importación y exportación

El asistente de importación y exportación crea un paquete de integración. El paquete de integración se utiliza para copiar datos de la base de datos local o de SQL Server de EC2 a la instancia de RDS para SQL Server. Puede filtrar las tablas específicas que desee copiar a la instancia de RDS.

Para obtener más información sobre el asistente de importación y exportación, consulte Cómo ejecutar el asistente de importación y exportación de SQL Server en la documentación de Microsoft SQL Server.

Nota: al ejecutar el asistente de importación y exportación, asegúrese de elegir las siguientes opciones para el destino de RDS para la instancia de SQL Server:

  • En nombre del servidor, introduzca el nombre del punto de conexión de la instancia de base de datos de RDS.
  • Para el modo de autenticación, seleccione Autenticación de SQL Server.
  • Para el nombre de usuario y la contraseña, introduzca el usuario maestro que creó en la instancia de RDS.

Utilidad del programa de copia masiva

El programa de copia masiva (bcp) es una utilidad de línea de comandos que se utiliza para copiar datos de forma masiva entre instancias de SQL Server. Puede usar la utilidad bcp para importar grandes conjuntos de datos a una instancia de SQL Server o exportarlos a un archivo.

Los siguientes son ejemplos de los comandos IN y OUT:

OUT: utilice este comando para exportar o volcar los registros de una tabla a un archivo:

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P     password -b 10000

El código anterior incluye las siguientes opciones:

  • -n: especifica que la copia masiva utiliza los tipos de datos nativos de los datos que se van a copiar.
  • -S: especifica la instancia de SQL Server a la que se conecta la utilidad bcp.
  • -U: especifica el nombre de usuario de la cuenta para iniciar sesión en la instancia de SQL Server.
  • -P: especifica la contraseña del usuario especificado por -U.
  • -b: especifica el número de filas por lote de datos importados.

IN: utilice este comando para importar todos los registros del archivo de volcado a la tabla existente. La tabla debe crearse antes de ejecutar el comando bcp.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

Para obtener más información, consulte la utilidad bcp en la documentación de Microsoft SQL Server.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?