Quiero migrar las bases de datos de 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 Microsoft SQL Server.
Descripción corta
Para migrar la base de datos, utiliza uno de los siguientes métodos:
- Copia de seguridad y restauración nativas de SQL Server
- AWS Database Migration Service (AWS DMS)
- Replicación transaccional
- Archivo de paquete de copia de seguridad (.bacpac)
- Asistente de generación y publicación de scripts de SQL Server
- Asistente de importación y exportación de SQL Server
- Utilidad del programa de copia masiva (bcp) de SQL Server
El tiempo de migración y el tiempo de inactividad dependen del método de migración. Para obtener más información, consulta Prácticas recomendadas para migrar a Amazon RDS para SQL Server.
Resolución
Copia de seguridad y restauración nativas de SQL Server
La copia de seguridad y la restauración nativas son más lentas que los métodos que utilizan la replicación, pero pueden tener menos limitaciones.
Sigue estos pasos:
-
Crea un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar la copia de seguridad de la instancia local o de EC2. El bucket de Amazon S3 debe estar en la misma región de AWS que la instancia de RDS para SQL Server.
-
Crea el rol de AWS Identity and Access Management (IAM) para acceder al bucket.
-
Agrega la opción SQLSERVER_BACKUP_RESTORE al grupo de opciones asociado a la instancia de RDS para SQL Server.
-
Crea una copia de seguridad de la instancia local o de EC2 y, a continuación, muévela al bucket de S3.
-
Ejecuta 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';
Nota: Sustituye database_name por el nombre de tu base de datos, bucket_name por el nombre de tu bucket y file_name_and_extension por el nombre de tu archivo.
-
Ejecuta el siguiente script para realizar un seguimiento del estado de la copia de seguridad:
exec msdb.dbo.rds_task_status;
Si la tarea falla, comprueba si hay mensajes de error en la columna task_info del resultado. Consulta los mensajes de error en la tabla de solución de problemas de Amazon RDS.
Nota: Puedes realizar copias de seguridad y restaurar copias de seguridad diferenciales. También puedes restaurar los registros para restaurarlos a un punto en el tiempo.
AWS DMS
Sigue estos pasos:
- Para usar SQL Server como origen o destino para AWS DMS, completa los requisitos previos y revisa las limitaciones.
- Crea una instancia de replicación de AWS DMS.
- Utiliza AWS DMS para crear puntos de enlace de origen y destino.
- Crea una tarea de migración.
Replicación transaccional
Puedes configurar la replicación transaccional desde las instancias de SQL Server locales o de EC2 a una instancia de RDS para SQL Server. Sin embargo, solo puedes convertir la instancia de RDS para SQL Server en suscriptora. Además, solo puedes convertir la instancia local o de EC2 de SQL Server en editora o distribuidora con una suscripción de inserción.
Nota: La replicación transaccional depende del nombre de host de EC2, que puede cambiar en RDS para SQL Server. Debido a esta limitación, se recomienda usar una replicación transaccional solo para una migración única de los datos a la instancia de RDS para SQL Server.
Archivo de paquete de copia de seguridad (.bacpac)
El archivo .bacpac consiste en metadatos copiados y los datos comprimidos en un archivo. Se recomienda utilizar un archivo .bacpack para bases de datos de menos de 200 GB. Puedes usar Exportar/Importar o la utilidad SQLPackage.exe (línea de comandos) para crear un archivo .bacpac. Para obtener más información sobre el archivo .bacpac, consulta Migrate SQL Server databases from an Azure SQL database to Amazon RDS for SQL Server using bacpac method (Migración de bases de datos de SQL Server de una base de datos SQL de Azure a Amazon RDS para SQL Server mediante el método bacpac).
Asistente de generación y publicación de scripts de SQL Server
Si tu base de datos tiene menos de 1 GB, puedes usar el asistente de generación y publicación de scripts. Para bases de datos más grandes, puedes utilizar el asistente de importación y exportación o los métodos de copia masiva para crear scripts en el esquema de la base de datos. Para obtener más información sobre el asistente de generación y publicación de scripts, consulta Genera un script: (SQL Server Management Studio) en la documentación de Microsoft SQL Server.
Nota: Asegúrate de seleccionar Guardar scripts en una ubicación específica, Avanzado en la página Establecer 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 de SQL Server
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 tu instancia de SQL Server local o de EC2 a la instancia de RDS para SQL Server. Puedes filtrar las tablas específicas que deseas copiar en la instancia de RDS para SQL Server.
Antes de ejecutar el Asistente de importación y exportación, comprueba que puede acceder a la red y que tiene configurados los permisos para tu grupo de seguridad. Consulta ¿Qué permisos necesito? en el sitio web de Microsoft Learn.
Para obtener más información sobre el asistente de importación y exportación, consulta Cómo ejecutar el Asistente para importación y exportación de SQL Server en el sitio web de Microsoft Learn.
Cuando ejecutes el asistente de importación y exportación, asegúrate de elegir las siguientes opciones para la instancia de RDS para SQL Server de destino:
- En Nombre del servidor, introduce el nombre del punto de enlace de la instancia de base de datos de Amazon RDS.
- En Modo de autenticación, elige Autenticación de SQL Server.
- En Nombre de usuario y Contraseña, introduce el usuario principal que creaste en la instancia de RDS para SQL Server.
Utilidad bcp de SQL Server
Usa la utilidad de línea de comandos para importar grandes conjuntos de datos de forma masiva entre instancias de SQL Server o exportarlos a un archivo. Puedes 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
Ejecuta el siguiente comando out para exportar o volcar los registros de una tabla en un archivo:
bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000
El comando 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 de AWS 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
Ejecuta el siguiente comando in para importar todos los registros del archivo de volcado a la tabla.
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, consulta bcp (utilidad) en el sitio web de Microsoft Learn.