RDS: Importar e Exportar Banco de Dados SQL Server usando o Amazon S3

RDS: Importar e Exportar Banco de Dados SQL Server usando o Amazon S3

RDS: Importar e Exportar Banco de Dados SQL Server usando o Amazon S3

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.


Clique na base > Connectivity & security >  Manage IAM roles


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.

PARA CRIAR O OPTION: Clique em option group > Clique em Create Option > Escolha a mesma versão do Engine > Create


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'


Compartilhar: