Ir para o conteúdo

Como posso migrar bancos de dados de instâncias do Amazon EC2 ou VMs on-premises para o Amazon 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 de uma instância on-premises do Microsoft SQL Server para minha instância Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server.

Resolução

Métodos para migrar dados

Backup e restauração nativos do SQL Server

É possível usar backup e restauração nativos para migrar o banco de dados do SQL Server de uma instância on-premises ou do Amazon EC2 para uma instância do Amazon RDS para SQL Server. Para fazer isso, realize as etapas a seguir:

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

  2. Crie o perfil do AWS Identity and Access Management (AWS IAM) para acessar o bucket.

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

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

  5. Execute o script a seguir para restaurar o backup na instância do Amazon 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 do Amazon 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;

    Observação: também é possível fazer backup e restaurar backups diferenciais.

AWS Database Migration Service (AWS DMS)

Conclua as etapas a seguir:

  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 AWS DMS.
  3. Use o AWS DMS para criar endpoints de origem e destino.
  4. Criar uma tarefa de migração.

**Replicação transacional **

É possível configurar a replicação transacional das instâncias on-premises ou do SQL Server do EC2 para uma instância do Amazon RDS para SQL Server. No entanto, só é possível tornar a instância do Amazon RDS para SQL Server um assinante. Além disso, só é possível transformar a instância on-premises ou do EC2 SQL Server em publicadora ou distribuidora com assinatura por push.

Para configurar a replicação de transações a partir de uma instância on-premises ou do SQL Server do Amazon EC2, consulte as instruções a seguir:

Arquivo de pacote de backup (.bacpac)

O arquivo .bacpac consiste em metadados copiados e os dados compactados em um arquivo. É uma prática recomendada usar um arquivo.bacpack para bancos de dados com cerca de 200 GB. É possível usar Exportar/Importar ou o utilitário SQLPackage.exe (linha de comando) para criar um arquivo .bacpac. Para obter mais informações sobre o arquivo.bacpac, consulte Migrar bancos de dados 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, é possível usar o Assistente de Importação e Exportação ou os métodos de cópia em massa para criar scripts no esquema do banco de dados. Para obter mais informações sobre o Assistente de Geração e Publicação de Scripts, consulte Como: Gerar um script (SQL Server Management Studio) na documentação do Microsoft SQL Server.

Observação: certifique-se de selecionar Salvar scripts em um local específico, Avançado na página Definir opção de desenvolvimento de scripts. 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 SQL Server on-premises ou do Amazon EC2 para a instância do Amazon RDS para SQL Server. É possível filtrar as tabelas específicas que deseja copiar para a instância do Amazon RDS.

Para obter mais detalhes sobre o Assistente de importação e exportação, consulte Como: Execute 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 de destino do Amazon RDS para SQL Server:

  • Em Nome do servidor, insira o nome do endpoint da instância de banco de dados Amazon RDS.
  • Para o modo de autenticação, escolha Autenticação do SQL Server.
  • Em Nome de usuário e Senha, insira o usuário principal que você criou na instância do Amazon RDS.

Utilitário do Programa de Cópia

O Bulk Copy Program (bcp) é um utilitário de linha de comando usado para copiar dados em massa entre instâncias do SQL Server. É possível 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 da AWS 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. Você deve criar a tabela antes de executar o 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 o utilitário bcp na documentação do Microsoft SQL Server.