Hola! Hoy os traigo un tutorial algo más elaborado, y el primero (creo) en el que trabajo con AWS. Espero que no sea el único!
Para exportar una BD SQL Server desde AWS a un entorno on-premise, vamos a hacer un export a S3 y desde allí lo descargamos e importamos desde el entorno on premise.
En esta primera parte del tutorial vamos a hacer el export, y en una segunda parte, la importación en destino
Lo que primero vamos a necesitas será un usuario con permisos suficientes para poder exportar el backup y volcarlo en un bucket de S3; después necesitas tener ese bucket. Y por último, tener la opción
SQLSERVER_BACKUP_RESTORE
añadida a un grupo de opciones en tu instancia RDS.
Si ya tienes un usuario IAM puedes crear y asignarle la política específica para hacer exports/restores RDS o puedes crear un rol y asignarlo. En cualquier caso, la política que tienes que crear debería ser una de las tres definidas aquí.
Para hacer el export del SQLServer nos conectamos a la consola y ejecutamos este comando
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
',
@kms_master_key_arn='arn:aws:kms:region
:account-id
:key/key-id
',
@overwrite_S3_backup_file=1
,
@type='differential/FULL
';
donde
- @source_db_name hace referencia a la BD que vas a exportar
- @s3_arn_to_backup_to hace referncia al bucket donde vas a exportar y al nombre del fichero con que se va a guardar
- @kms_master_key_arn hace referencia a la encriptación del fichero, y es OPCIONAL
- @overwrite_S3_backup_file hace referencia a si quieres sobreescribir el fichero en caso de que exista; 1 equivale a Sí y 0 a No. Es OPCIONAL, y por defecto es "1"
- @type hace referencia al tipo de backup, si es diferencial o completo. Esta opción también es OPCIONAL y por defecto equivale a FULL. Para el backup diferencial se toma como punto de referencia el último backup FULL que se ha hecho. Se puede consultar cuándo se ha hecho con esta query:
select top 1
database_name
, backup_start_date
, backup_finish_date
from msdb.dbo.backupset
where database_name='database_name
'
and type = 'D
'
order by backup_start_date desc;
Este export no es instantáneo y va a depender sobre todo del tamaño de la BD; para ver su evolución, lo hacemos con esta query:
exec msdb.dbo.rds_task_status @db_name='database_name';
Si quisiéramos restaurar la base de datos, la query sería
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';
Bien, y hasta aquí la parte de AWS; en el siguiente post os explico cómo lo hago yo para importar el export en un SQL Server.
Gracias!
No hay comentarios:
Publicar un comentario