Como posso migrar bancos de dados de instâncias do EC2 ou VMs on-premises para o RDS para SQL Server?

6 minuto de leitura
0

Quero migrar bancos de dados de uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou instância on-premises do Microsoft SQL Server para minha instância Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server. Quais são as opções disponíveis para migrar os dados?

Resolução

Métodos para migrar dados

Backup e restauração nativos do SQL Server

Você pode migrar o banco de dados do SQL Server de uma instância on-premises ou do EC2 para uma instância do Amazon RDS para SQL Server usando backup e restauração nativos.

1.    Crie um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar o backup da instância de origem. O bucket do S3 deve estar na mesma região que a instância do RDS.

2.    Crie a função AWS Identity and Access Management (IAM) para acessar o bucket.

3.    Adicione a opção SQLSERVER_BACKUP_RESTORE ao grupo de opções associado à instância do RDS para SQL Server.

4.    Crie um backup da instância de origem (on-premises ou EC2) e, em seguida, copie-o para o bucket do S3 que você criou na etapa 1.

5.    Execute o script a seguir para restaurar o backup na instância do 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.    Execute o script a seguir para fazer backup do banco de dados da instância RDS no 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: Você também pode fazer backup e restaurar backups diferenciais.

AWS Database Migration Service (AWS DMS)

1.    Verifique os pré-requisitos e as limitações do uso do SQL Server como origem ou destino para o AWS DMS:

2.    Crie uma instância de replicação do DMS.

3.    Crie endpoints de origem e destino usando o DMS.

4.    Crie uma tarefa de migração.

Replicação transacional

Você pode configurar a replicação transacional de instâncias on-premises ou do EC2 SQL Server para a instância do RDS para SQL Server. A instância do RDS para SQL Server só pode ser criada como assinante com assinatura push da instância on-premises do SQL Server ou do EC2 como Publicador-Distribuidor.

Para obter instruções detalhadas sobre como configurar a replicação de transações a partir de uma instância on-premises ou do EC2 SQL Server, consulte o seguinte:

Arquivo de pacote de backup (.bacpac)

O arquivo .bacpac consiste em metadados copiados e dados compactados em um arquivo. Essa abordagem é a melhor opção para bancos de dados com cerca de 200 GB.

Você pode criar um arquivo .bacpac usando Exportar/Importar ou usando o utilitário SQLPackage.exe (linha de comando).

Para obter mais informações sobre o arquivo .bacpac, consulte Migrar o banco de dados do SQL Server de um banco de dados SQL do Azure para o Amazon RDS para SQL Server usando o método .bacpac.

Métodos para importar dados

Assistente de geração e publicação de scripts

Se seu banco de dados for menor que 1 GB, você poderá usar o Assistente de geração e publicação de scripts. Para bancos de dados maiores, você pode criar scripts para o esquema do banco de dados usando o Assistente de importação e exportação ou os métodos de cópia em massa.

Para obter mais informações sobre o Assistente de geração de e publicação scripts, consulte Como gerar um script (SQL Server Management Studio) na documentação do Microsoft SQL Server.

Nota: Certifique-se de selecionar Salvar scripts em um local específico, Avançado , na página Definir opção de script. A configuração Avançado fornece opções adicionais para incluir ou excluir objetos na tabela durante a importação e exportação.

Assistente de importação e exportação

O Assistente de Importação e Exportação cria um pacote de integração. O pacote de integração é usado para copiar dados do seu banco de dados on-premises ou do EC2 SQL Server para a instância do RDS para SQL Server. Você pode filtrar as tabelas específicas que você deseja copiar para a instância do RDS.

Para obter mais detalhes sobre o Assistente de Importação e Exportação, consulte Como executar o Assistente de Importação e Exportação do SQL Server na documentação do Microsoft SQL Server.

Observação: ao executar o Assistente de Importação e Exportação, certifique-se de escolher as seguintes opções para a instância RDS de Destino para SQL Server:

  • Em Nome do servidor, insira o nome do endpoint para a instância de banco de dados do RDS.
  • Para o Modo de autenticação, selecione Autenticação do SQL Server.
  • Em Nome de usuário e Senha, insira o usuário mestre que você criou na instância do RDS.

Utilitário Bulk Copy Program

O Bulk Copy Program (bcp) é um utilitário de linha de comando usado para copiar dados em massa entre instâncias do SQL Server. Você pode usar o utilitário bcp para importar grandes conjuntos de dados para uma instância do SQL Server ou exportar para um arquivo.

Veja a seguir exemplos dos comandos IN e OUT:

OUT: Use este comando para exportar ou despejar os registros de uma tabela em um arquivo:

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

O código anterior inclui as seguintes opções:

  • -n: especifica que a cópia em massa usa os tipos de dados nativos dos dados a serem copiados.
  • -S: especifica a instância do SQL Server à qual o utilitário bcp se conecta.
  • -U: especifica o nome de usuário da conta para fazer login na instância do SQL Server.
  • -P: especifica a senha do usuário especificada por -U.
  • -b: especifica o número de linhas por lote de dados importados.

IN: Use esse comando para importar todos os registros do arquivo de despejo para a tabela existente. A tabela deve ser criada antes da execução do 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 obter mais informações, consulte utilitário bcp na documentação do Microsoft SQL Server.