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?

7 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 do Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server.

Breve descrição

Para migrar seus bancos de dados, use um dos seguintes métodos:

  • Backup e restauração nativos do SQL Server
  • AWS Database Migration Service (AWS DMS)
  • Replicação transacional
  • Arquivo de pacote de backup (.bacpac)
  • Assistente de geração e publicação de scripts do SQL Server
  • Assistente de importação e exportação do SQL Server
  • Utilitário do programa de cópia em massa (bcp) do SQL Server

O tempo de migração e o tempo de inatividade dependem do seu método de migração. Para obter mais informações, consulte Práticas recomendadas para migrar ao Amazon RDS para SQL Server.

Resolução

Backup e restauração nativos do SQL Server

O backup e a restauração nativos são mais lentos do que os métodos que usam replicação, mas podem ter menos limitações.

Conclua as etapas a seguir:

  1. Crie um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar o backup da instância on-premises ou do EC2. O bucket do Amazon S3 deve estar na mesma região da AWS que a instância do RDS para SQL Server.

  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 RDS para SQL Server.

  4. Crie um backup da instância on-premises ou do EC2 e, em seguida, mova-o para o bucket do S3.

  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';

    Observação: substitua database_name pelo nome do seu banco de dados, bucket_name pelo nome do seu bucket e file_name_and_extension pelo nome do seu arquivo.

  6. Execute o script a seguir para rastrear o status do seu backup:

    exec msdb.dbo.rds_task_status;

Se a tarefa falhar, verifique se há mensagens de erro na coluna task_info da saída. Consulte as mensagens de erro na tabela de Solução de problemas do Amazon RDS.

Observação: é possível fazer backup e restaurar backups diferenciais. Também é possível restaurar logs para restaurá-los em um ponto no tempo.

AWS DMS

Conclua as etapas a seguir:

  1. Para usar o SQL Server como origem ou destino do AWS DMS, preencha os pré-requisitos e analise as limitações.
  2. Crie uma instância de replicação do AWS DMS.
  3. Use o AWS DMS para criar endpoints de origem e destino.
  4. Crie uma tarefa de migração.

Replicação transacional

É possível configurar a replicação transacional a partir das instâncias on-premises ou do SQL Server no EC2 para uma instância do RDS para SQL Server. No entanto, só é possível tornar a instância do RDS para SQL Server uma Assinante. Além disso, só é possível tornar a instância on-premises ou do SQL Server no EC2 uma Publicadora ou Distribuidora com assinatura por push.

Observação: uma replicação transacional depende do nome de host do EC2, que pode mudar no RDS para SQL Server. Devido a essa limitação, é uma prática recomendada usar uma replicação transacional somente em uma migração única de seus dados para sua instância do RDS for SQL Server.

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 menos 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 Migrate SQL Server databases from an Azure SQL database to Amazon RDS for SQL Server using bacpac method (Migrar bancos de dados do SQL Server de um banco de dados do Azure SQL para o Amazon RDS para SQL Server usando o método bacpac).

Assistente de geração e publicação de scripts do SQL Server

Se seu banco de dados for menor do que 1 GB, é possível usar o Assistente de geração e publicação de scripts. Em 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 do esquema do banco de dados. Para obter mais informações sobre o Assistente de geração e publicação de scripts, consulte How to: Generate a script (SQL Server Management Studio) (Como: Gerar um script (SQL Server Management Studio)) na documentação do Microsoft SQL Server.

Observação: certifique-se de selecionar Save scripts to specific location (Salvar scripts em um local específico), Advanced (Avançado) na página Set Scripting Option (Definir opção de desenvolvimento de scripts). A configuração Advanced (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 do SQL Server

O Assistente de Importação e exportação cria um pacote de integração. O pacote de integração é usado para copiar dados da sua instância on-premises ou do SQL Server no Amazon EC2 para a instância do RDS para SQL Server. É possível filtrar as tabelas específicas que deseja copiar para a instância do RDS para SQL Server.

Antes de executar o Assistente de importação e exportação, verifique se ele pode acessar sua rede e configurar permissões em seu grupo de segurança. Consulte What permissions do I need? (Quais permissões eu preciso?) no site do Microsoft Learn.

Para obter mais informações sobre o Assistente de importação e exportação, consulte How to: Run the SQL Server Import and Export Wizard (Como: Executar o Assistente de importação e exportação do SQL Server) no site do Microsoft Learn.

Ao executar o Assistente de importação e exportação, selecione as seguintes opções para a instância de destino do RDS para SQL Server:

  • Em Server Name (Nome do servidor), insira o nome do endpoint da instância de banco de dados do Amazon RDS.
  • Em Authentication mode (Modo de autenticação), clique em SQL Server Authentication (Autenticação do SQL Server).
  • Em Username (Nome de usuário) e Password (Senha), insira o usuário principal que você criou na instância do RDS para SQL Server.

Utilitário bcp do SQL Server

Use o utilitário de linha de comando para importar grandes conjuntos de dados em massa entre instâncias do SQL Server ou exportar para um arquivo. É 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

Execute o seguinte comando out 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 comando 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

Execute o seguinte comando in para importar todos os registros do arquivo de despejo para a tabela.

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 bcp utility (Utilitário bcp) no site do Microsoft Learn.

AWS OFICIALAtualizada há 9 meses