Este tópico descreve como usar o Data Transmission Service (DTS) para migrar dados entre instâncias do ApsaraDB RDS. O DTS oferece suporte à migração de esquema, migração completa de dados e migração incremental de dados. Combine esses três tipos de migração para transferir seu banco de dados sem interrupção do service.
Pré-requisitos
As instâncias de origem e de destino do ApsaraDB RDS devem executar um dos seguintes mecanismos de banco de dados:
|
Banco de dados de origem |
Banco de dados de destino |
|
RDS MySQL ApsaraDB RDS for MariaDB |
RDS MySQL ApsaraDB RDS for MariaDB |
|
ApsaraDB RDS for SQL Server |
ApsaraDB RDS for SQL Server |
|
ApsaraDB RDS for PostgreSQL |
ApsaraDB RDS for PostgreSQL |
Este tópico aborda operações no console legado do DTS. Para obter instruções sobre o novo console, consulte Migrate data between RDS MySQL instances, Migrate data between ApsaraDB RDS for MariaDB instances, Migrate data between ApsaraDB RDS for PostgreSQL instances e Migrate data between ApsaraDB RDS for SQL Server instances.
Precauções
A migração de dados não afeta os dados no banco de dados de origem. Durante o processo, o DTS lê os dados da origem e os replica para o destino, sem excluir nenhuma informação da fonte. Para mais detalhes sobre o funcionamento da migração de dados, consulte How data migration works.
Durante uma migração completa de dados, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e de destino, o que aumenta a carga de trabalho deles. Se seus bancos de dados tiverem baixo desempenho, especificações reduzidas ou alta carga (por exemplo, se o banco de dados de origem tiver muitas consultas SQL lentas ou tabelas sem chaves primárias, ou se ocorrerem deadlocks no banco de dados de destino), o aumento de carga pode sobrecarregar os bancos de dados ou até causar interrupções no service. Execute a migração de dados em horários de baixa demanda, como quando a utilização da CPU de ambos os bancos de dados estiver abaixo de 30%.
Caso uma tabela de origem não possua chave primária ou restrição única e contenha dados não exclusivos, poderão ser criados dados duplicados no banco de dados de destino.
Ao realizar apenas uma migração completa de dados, não grave novos dados na instância do ApsaraDB RDS de origem durante a migração para garantir a consistência dos dados.
Para uma tarefa de migração com falha, o DTS tenta retomá-la automaticamente. Ao fazer o cutover para a instância de destino, pare ou libere a tarefa de migração primeiro. Isso evita que a tarefa seja retomada automaticamente, o que poderia sobrescrever dados na instância de destino com dados do banco de dados de origem.
-
O DTS cria bancos de dados automaticamente na instância do ApsaraDB RDS de destino. Se um nome de banco de dados não estiver em conformidade com as convenções de nomenclatura para instâncias do ApsaraDB RDS, crie o banco de dados na instância de destino antes de configurar a tarefa de migração.
NotaPara obter informações sobre as convenções de nomenclatura e como criar um banco de dados, consulte Create a database and an account.
-
Se você estiver migrando dados entre instâncias do ApsaraDB RDS for PostgreSQL, observe que, após o cutover para a instância de destino, as novas sequences não começarão a incrementar a partir do valor máximo das sequences no banco de dados de origem. Antes do cutover, consulte o valor máximo das sequences relevantes no banco de dados de origem e defina esses valores como valores iniciais para as sequences correspondentes no banco de dados de destino. Execute o seguinte comando para consultar os valores das sequences no banco de dados de origem:
do language plpgsql $$ declare nsp name; rel name; val int8; begin for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S' loop execute format($_$select last_value from %I.%I$_$, nsp, rel) into val; raise notice '%', format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1); end loop; end; $$;
Faturamento
|
Tipo de migração |
Taxa de configuração da tarefa |
Taxa de tráfego pela Internet |
|
Migração de esquema e migração completa de dados |
Gratuito. |
O DTS cobra uma taxa de tráfego pela Internet quando o Access Method do banco de dados de destino está definido como Public IP Address. Billing overview. |
|
Migração incremental de dados |
Pago. Billing overview. |
Tipos de migração
-
Migração de esquema
O DTS migra os esquemas dos objetos de migração para a instância de destino.
-
Migração completa de dados
O DTS migra todos os dados existentes dos objetos especificados da instância do ApsaraDB RDS de origem para a instância do ApsaraDB RDS de destino.
-
Migração incremental de dados
Além da migração completa de dados, o DTS sincroniza atualizações incrementais da instância do ApsaraDB RDS de origem para a instância do ApsaraDB RDS de destino. A migração incremental de dados permite migrar dados sem interromper suas aplicações autogerenciadas.
Operações SQL para migração incremental
|
Cenário de migração |
Tipo de operação |
Operação SQL |
|
DML |
INSERT, UPDATE, DELETE, REPLACE |
|
DDL |
|
|
|
Migração entre instâncias do ApsaraDB RDS for SQL Server |
DML |
INSERT, UPDATE, DELETE Nota
Instruções UPDATE que atualizam apenas colunas de objeto grande (LOB) não são sincronizadas. |
|
DDL |
|
|
|
Migração entre instâncias do ApsaraDB RDS for PostgreSQL |
DML |
INSERT, UPDATE, DELETE |
|
DDL |
|
Permissões da conta do banco de dados
|
Cenário de migração |
Banco de dados |
Migração de esquema |
Migração completa de dados |
Migração incremental de dados |
|
Instância de origem |
SELECT |
SELECT |
REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW e SELECT |
|
Instância de destino |
Permissões de leitura e gravação |
Permissões de leitura e gravação |
Permissões de leitura e gravação |
|
|
Migração entre instâncias do ApsaraDB RDS for SQL Server |
Instância de origem |
SELECT |
SELECT |
Permissões de proprietário nos objetos a serem migrados. Nota
Uma conta privilegiada atende a esses requisitos. |
|
Instância de destino |
Permissões de leitura e gravação |
Permissões de leitura e gravação |
Permissões de leitura e gravação |
|
|
Migração entre instâncias do ApsaraDB RDS for PostgreSQL |
Instância de origem |
Permissão USAGE em pg_catalog |
Permissão SELECT nos objetos a serem migrados |
rds_superuser Nota
|
|
Instância de destino |
Permissões CREATE e USAGE nos objetos a serem migrados |
Permissões de proprietário no banco de dados autorizado, incluindo INSERT, UPDATE e DELETE. Nota
Uma conta padrão para o ApsaraDB RDS for PostgreSQL atende aos requisitos de permissão. |
Permissões de proprietário no banco de dados autorizado, incluindo INSERT, UPDATE e DELETE. Nota
Uma conta padrão para o ApsaraDB RDS for PostgreSQL atende aos requisitos de permissão. |
Procedimento
-
Faça login no console do Data Transmission Service (DTS).
NotaSe você for redirecionado automaticamente para o console do Data Management (DMS), clique em
no canto inferior direito e, em seguida, clique em
para retornar ao console clássico do DTS. No painel de navegação à esquerda, clique em Data Migration.
Na parte superior da página Migration Tasks, selecione a região onde a instância de destino está localizada.
No canto superior direito da página, clique em Create Data Migration Task.
-
Configure os bancos de dados de origem e de destino.
Seção
Parâmetro
Descrição
N/A
Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos alterar esse nome para algo descritivo, facilitando a identificação. O nome da tarefa não precisa ser único.
Source Database
Instance Type
Selecione RDS Instance.
Instance Region
Selecione a região onde a instância do ApsaraDB RDS de origem está localizada.
RDS Instance ID
Selecione o ID da instância do ApsaraDB RDS de origem.
NotaAs instâncias de origem e de destino do ApsaraDB RDS podem ser iguais ou diferentes. Use o DTS para migrar dados dentro de uma única instância do ApsaraDB RDS ou entre duas instâncias diferentes do ApsaraDB RDS.
Database Name
Insira o nome do banco de dados a ser migrado da instância do ApsaraDB RDS for PostgreSQL.
NotaEste parâmetro é exibido e obrigatório apenas quando a instância do ApsaraDB RDS executa o mecanismo PostgreSQL.
Database Account
Insira a conta do banco de dados para a instância do ApsaraDB RDS de origem. Para mais informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
NotaApós inserir as informações do banco de dados de origem, clique em Test Connectivity ao lado de Database Password para verificar se as informações estão corretas. Se as informações estiverem corretas, a mensagem Passed será exibida. Caso a mensagem Failed apareça, clique em Diagnose ao lado da mensagem Failed e ajuste as informações do banco de dados de origem conforme as instruções.
Connection Method
Selecione Non-encrypted ou SSL-encrypted. Se selecionar SSL-encrypted, ative primeiro a criptografia SSL para a instância do ApsaraDB RDS. Para mais informações, consulte Enable SSL encryptionEnable SSL encryption.
NotaEste parâmetro é exibido e obrigatório apenas quando a instância do ApsaraDB RDS executa o mecanismo MySQL.
O parâmetro Encryption tem suporte apenas nas regiões da China continental e China (Hong Kong).
Destination Database
Instance Type
Selecione RDS Instance.
Instance Region
Selecione a região onde a instância do ApsaraDB RDS de destino está localizada.
RDS Instance ID
Selecione o ID da instância do ApsaraDB RDS de destino.
NotaAs instâncias de origem e de destino do ApsaraDB RDS podem ser iguais ou diferentes. Use o DTS para migrar dados dentro de uma única instância do ApsaraDB RDS ou entre duas instâncias diferentes do ApsaraDB RDS.
Database Name
Insira o nome do banco de dados de destino na instância do ApsaraDB RDS for PostgreSQL. O nome pode ser diferente do nome do banco de dados de origem.
NotaEste parâmetro é exibido e obrigatório apenas quando a instância do ApsaraDB RDS executa o mecanismo PostgreSQL.
Database Account
Insira a conta do banco de dados para a instância do ApsaraDB RDS de destino. Para mais informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
NotaApós inserir as informações do banco de dados de destino, clique em Test Connectivity após Database Password para verificar se as informações inseridas estão corretas. Se as informações estiverem corretas, uma mensagem Passed será exibida. Caso uma mensagem Failed apareça, clique em Diagnose após Failed e ajuste as informações do banco de dados de destino conforme as instruções.
Connection Method
Selecione Non-encrypted ou SSL-encrypted. Se selecionar SSL-encrypted, ative primeiro a criptografia SSL para a instância do ApsaraDB RDS. Para mais informações, consulte Enable SSL encryptionEnable SSL encryption.
NotaEste parâmetro é exibido e obrigatório apenas quando a instância do ApsaraDB RDS executa o mecanismo MySQL.
O parâmetro Encryption tem suporte apenas nas regiões da China continental e China (Hong Kong).
-
Após concluir a configuração, clique em Set Whitelist and Next no canto inferior direito da página.
O DTS adiciona automaticamente os endereços IP dos servidores do DTS na região correspondente à lista de permissões da sua instância do ApsaraDB RDS. Para mais informações sobre os blocos de endereços IP dos servidores do DTS, consulte IP address blocks of DTS servers.
AvisoAdicionar os blocos CIDR públicos dos servidores do DTS, seja automaticamente ou manualmente, pode introduzir riscos de segurança. Ao usar este product, você reconhece e aceita esses riscos potenciais. Você é responsável por implementar medidas básicas de segurança, incluindo, mas não se limitando a, usar senhas fortes, restringir portas abertas, usar autenticação para chamadas internas de API, revisar e restringir regularmente segmentos de rede desnecessários ou conectar-se por meio de redes privadas como Express Connect, VPN Gateway ou Smart Access Gateway.
-
Selecione os tipos e objetos de migração.
Parâmetro
Descrição
Migration Type
Selecione os tipos de migração com base nos requisitos do seu negócio e nos recursos suportados pelo mecanismo de banco de dados.
-
Para realizar apenas uma migração completa de dados, selecione Schema Migration e Full Data Migration.
-
Para migrar dados sem interrupção do service, selecione Schema Migration, full data migration e incremental data migration.
NotaSe você não selecionar Incremental Data Migration, não grave novos dados na instância do ApsaraDB RDS de origem durante a migração para garantir a consistência dos dados.
Migration Objects
Na caixa Migration Objects, clique em os objetos que deseja migrar e, em seguida, clique em o ícone
para movê-los para a caixa Selected Objects.Nota-
É possível selecionar objetos no nível de banco de dados, tabela ou coluna. Se selecionar apenas tabelas ou colunas, outros objetos como visualizações, gatilhos e procedimentos armazenados não serão migrados.
-
Por padrão, os nomes dos objetos no banco de dados de destino são iguais aos do banco de dados de origem. Para renomear um objeto no banco de dados de destino, utilize o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Object name mapping.
-
O uso do recurso de mapeamento de nomes de objetos pode causar falha na migração de objetos dependentes.
Map or Rename
Para renomear objetos de migração no banco de dados de destino, utilize o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Object name mapping.
Retry Duration for Unstable Connections
Quando a conexão com o banco de dados de origem ou de destino estiver instável, o DTS tentará reconectar por 720 minutos (12 horas) por padrão. Esse período pode ser personalizado. Se o DTS conseguir reconectar dentro do tempo especificado, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
NotaA instância do DTS é cobrada durante o período de tentativa de reconexão. Recomendamos personalizar a duração da nova tentativa com base nas necessidades do seu negócio ou liberar a instância do DTS o mais rápido possível após a liberação das instâncias de origem e de destino.
-
-
Após concluir essas configurações, clique em Pre-check and Start no canto inferior direito da página.
NotaO DTS realiza uma verificação prévia antes do início da tarefa. A tarefa só poderá começar após passar nessa verificação.
-
Se a verificação prévia falhar, clique em o ícone
ao lado do item com falha para visualizar os detalhes.Corrija os problemas com base nos detalhes e execute a verificação prévia novamente.
Para avisos que não exigem correção, selecione Ignore ou Ignore and Rerun Precheck para executar a verificação prévia novamente.
Depois que a tarefa passar na verificação prévia, clique em Next.
Na página Confirm Order, selecione uma Instance Class e marque a caixa de seleção Data Transmission Service (Pay-As-You-Go) Terms of Service.
-
Clique em Buy and Start. A tarefa de migração será iniciada.
-
Migração completa de dados
Não pare a tarefa manualmente. Aguarde a conclusão automática para evitar perda de dados.
-
Migração incremental de dados
A tarefa não para automaticamente. Pare-a manualmente quando estiver pronto.
NotaRecomendamos parar a tarefa em horários de baixa demanda ou quando estiver pronto para alternar suas cargas de trabalho para a instância de destino.
Aguarde até que o status da tarefa mude para Incremental Data Migration e mostre Undelayed. Em seguida, pare de gravar dados no banco de dados de origem por alguns minutos. O status de Incremental Data Migration pode apresentar latência.
Aguarde até que o status de Incremental Data Migration retorne para Undelayed. Depois, pare a tarefa de migração manualmente. O progresso da migração de esquema e da migração completa de dados mostrará 100%. Para pausar a tarefa de migração, selecione a tarefa e clique em Pause na barra de operações em lote na parte inferior.
-