Bem-vindo a este guia técnico que o ajudará a entender como importar e exportar bancos de dados SQL Server no Amazon RDS (Relational Database Service) usando o Amazon S3.
Este tutorial abordará as etapas necessárias para transferir dados de e para o Amazon RDS, tirando proveito do poderoso serviço de armazenamento na nuvem, o Amazon S3.
1- Criar um bucket privado na região do RDS. (de preferência)
2- Anexar as políticas abaixo em uma role do tipo RDS – Add Role to Database
Política 1
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListStorageLensConfigurations",
"s3:ListAccessPointsForObjectLambda",
"s3:GetAccessPoint",
"s3:PutAccountPublicAccessBlock",
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets",
"s3:ListAccessPoints",
"s3:ListJobs",
"s3:PutStorageLensConfiguration",
"s3:CreateJob"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::NOME-DO-BUCKET/",
"arn:aws:s3:::NOME-DO-BUCKET/*"
]
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::NOME-DO-BUCKET/*",
"arn:aws:s3:::NOME-DO-BUCKET/*/*"
]
}
]
}
|
Política 2
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::NOME-DO-BUCKET"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::NOME-DO-BUCKET/*"
}
]
}
|
3- Anexar role no RDS.
4- Criar um novo Option Group
E alterar o RDS para o novo Option Group criado, aguarde o status do RDS retornar para Available e integre a role no Option Group como na imagem abaixo.
Agora dentro do ambiente do SQL Server Management Studio (SSMS) ou Dbeaver, você consegue criar um backup da base direto para o AWS S3 ou restaurar uma base que esta no AWS S3 para o RDS.
Link para download do SQL Server Management Studio (SSMS):
https://docs.microsoft.com/pt-br/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
DUMP PARA O S3:
exec msdb.dbo.rds_backup_database
@source_db_name='nome-da-base',
@s3_arn_to_backup_to='arn:aws:s3:::NOME-DO-BUCKET/arquivo.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
Exemplo:
exec msdb.dbo.rds_backup_database
@source_db_name='grafana_db',
@s3_arn_to_backup_to='arn:aws:s3:::bucket-da-empresa/grafana_db_25101988.bak',
@overwrite_s3_backup_file=1,
@type='FULL';
|
CANCELAR TASK:
exec msdb.dbo.rds_cancel_task numero-da-task;
Exemplo:
exec msdb.dbo.rds_cancel_task 2;
|
VERIFICAR STATUS DA TASK: (seja de importação ou exportação da base)
exec msdb.dbo.rds_task_status
nome-da-base,
numero-da-task;
Exemplo:
exec msdb.dbo.rds_task_status
grafana_db,
7;
|
DROP DATABASE:
drop database nome-da-base;
Exemplo:
drop database grafana_db;
|
IMPORTAR BASE DO S3 PARA O RDS:
exec msdb.dbo.rds_restore_database
@restore_db_name='nome-da-base',
@s3_arn_to_restore_from='arn:aws:s3:::NOME-DO-BUCKET/arquivo.bak',
@type='FULL'
Exemplo:
exec msdb.dbo.rds_restore_database
@restore_db_name='grafana_db',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-da-empresa/grafana_db_25101988.bak',
@type='FULL'
|