Migre o esquema, os dados completos e os dados incrementais de um banco de dados SQL do Azure para o ApsaraDB RDS for SQL Server usando o console do ApsaraDB RDS ou o console do Data Transmission Service (DTS). As fontes compatíveis incluem Azure SQL Database, Azure SQL Managed Instance e SQL Server em Azure Virtual Machines.
Escolha um método de migração
|
Console do RDS (migração completa para a nuvem) |
Console do DTS |
|
|
Migration types |
Esquema, dados completos e dados incrementais (padrão, não configurável) |
Configurável: esquema, dados completos e incrementais ou qualquer combinação |
|
Configuração avançada |
Limitação de taxa e verificação de dados |
Limitação de taxa, ETL, monitoramento e alertas, configurações de nova tentativa, cluster dedicado |
|
Mais indicado para |
Migrações iniciais com requisitos padrão |
Migrações que exigem tipos de migração personalizados ou controle refinado |
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do RDS for SQL Server com armazenamento disponível maior que o tamanho total dos dados de source. Consulte Crie uma instância do ApsaraDB RDS for SQL Server.
-
Conectado o banco de dados SQL do Azure à Alibaba Cloud para que o DTS possa acessá-lo. Consulte Connect Azure databases to Alibaba Cloud.
NotaPara SQL Server em Azure Virtual Machines: a Enterprise Edition requer SQL Server 2008 ou posterior. A Standard Edition requer SQL Server 2016 SP1 ou posterior. O SQL Server 2017 não é compatível.
Limitações
Banco de dados de source
Limite de 10 bancos de dados por tarefa de migração. Para mais de 10 bancos de dados, configure várias tarefas.
Azure SQL Database: apenas um banco de dados pode ser migrado por tarefa.
Instâncias somente leitura não podem ser usadas como banco de dados de source.
A largura de banda de saída no servidor de source deve ser suficiente; caso contrário, a velocidade de migração diminui.
As tabelas a serem migradas devem ter restrições PRIMARY KEY ou UNIQUE com todos os campos únicos; caso contrário, o destino poderá conter registros duplicados.
Durante a migração de esquema e a migração de dados completos, não execute instruções DDL. A tarefa falhará se houver alterações de esquema durante a migração.
Na migração apenas de dados completos (sem incrementais), não grave no banco de dados de source. Para garantir a consistência dos dados, selecione a migração de esquema, a migração de dados completos e a migração de dados incrementais juntas.
Recomendamos ativar
READ_COMMITTED_SNAPSHOTno banco de dados de source durante a migração de dados completos para evitar conflitos de bloqueio compartilhado e inconsistência de dados.
Retenção de logs de dados
Migração apenas incremental: retenha os logs de dados por mais de 24 horas.
Migração completa + incremental: retenha os logs de dados por pelo menos 7 dias. Após a conclusão da migração completa, reduza a retenção para mais de 24 horas.
Se os logs de dados não forem retidos pela duração necessária, o Service Level Agreement (SLA) do DTS não garante a confiabilidade ou o desempenho do service.
Limites de CDC
O DTS ativa o CDC no banco de dados de source durante a fase de pré-verificação, causando bloqueios de tabela que duram alguns segundos.
Migração incremental: o número de tabelas de source com Change Data Capture (CDC) ativado não pode exceder 1.000. Se o número de tabelas com CDC ativado a serem migradas em uma única tarefa exceder 1.000, a pré-verificação falhará.
O CDC armazena dados incrementais por 3 dias por padrão. Ajuste a retenção com:
exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>;onde<time>está em minutos. Se os dados incrementais diários excederem 10 milhões de registros, defina<time>como 1.440.Se um único campo em uma tabela com CDC ativado exceder 64 KB, execute o seguinte comando antes de iniciar a tarefa:
EXEC sp_configure 'max text repl size', -1;Não adicione ou remova colunas mais de duas vezes por minuto em tabelas com CDC ativado.
Não modifique instâncias de CDC no banco de dados de source durante a migração; a tarefa poderá falhar ou ocorrer perda de dados.
A migração de dados incrementais tem uma latência de aproximadamente 10 segundos.
O DTS não consegue migrar operações DDL relacionadas a chaves primárias de tabelas com CDC ativado.
Os módulos de coleta de dados incrementais de várias instâncias de migração de dados que compartilham um banco de dados SQL Server de source são independentes entre si.
Objetos do banco de dados de source criados pelo DTS
No modo de Sincronização Incremental Baseada em Logs do Banco de Dados de Source, o DTS cria um gatilho chamado dts_cdc_sync_ddl, uma tabela de heartbeat chamada dts_sync_progress e uma tabela de histórico DDL chamada dts_cdc_ddl_history no banco de dados de source. No modo de sincronização incremental híbrida com análise baseada em logs, o DTS cria os mesmos objetos e também ativa o CDC para o banco de dados de source e tabelas específicas. Defina o máximo de registros por segundo para tabelas com CDC ativado como 1.000.
Banco de dados de destino
Desative gatilhos e chaves estrangeiras no banco de dados de destino para qualquer tarefa que inclua migração de dados incrementais. Não é possível executar operações de reindexação no banco de dados de destino durante a migração de dados incrementais. Caso contrário, a tarefa poderá falhar ou ocorrer perda de dados.
O DTS não migra chaves estrangeiras (incluindo operações em cascata e de exclusão) do banco de dados de source.
Se o nome do banco de dados não estiver em conformidade com as convenções de nomenclatura do ApsaraDB RDS for SQL Server, crie manualmente o banco de dados na instância de destino antes de configurar a tarefa. Consulte Criar um banco de dados.
Após a migração de dados completos, o tablespace de destino fica maior que o de source devido à fragmentação de INSERT concorrente.
Tipos de dados não compatíveis
O DTS não migra: CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY, GEOGRAPHY.
Precisão de FLOAT e DOUBLE
O DTS recupera valores FLOAT e DOUBLE usando ROUND(COLUMN,PRECISION). Precisão padrão: 38 dígitos para FLOAT, 308 dígitos para DOUBLE. Verifique se esses padrões atendem aos seus requisitos antes de iniciar.
Retomada de tarefa com falha
O DTS tenta automaticamente repetir tarefas com falha por até 7 dias. Antes de alternar as cargas de trabalho para o destino, pare ou libere quaisquer tarefas com falha, ou revogue as permissões de gravação das contas do DTS para evitar que os dados de source substituam os do destino.
Se uma tarefa do DTS falhar ao ser executada, o suporte técnico do DTS tentará restaurar a tarefa dentro de 8 horas. Durante a restauração, a tarefa poderá ser reiniciada e seus parâmetros poderão ser modificados.
Impacto no desempenho
Antes de migrar dados, avalie o impacto da migração no desempenho do banco de dados de source e do cluster de destino. Recomendamos migrar os dados fora dos horários de pico. Durante a migração de dados completos, o DTS utiliza os recursos de leitura e gravação dos bancos de dados de source e destino, o que pode aumentar a carga dos servidores de banco de dados.
Faturamento
|
Tipo de migração |
Taxa da instância |
Taxa de tráfego de Internet |
|
Migração de esquema e dados completos |
Gratuita |
Cobrada quando o Access Method do destino está definido como Public IP Address. Consulte Visão geral do faturamento. |
|
Migração de dados incrementais |
Cobrada (pagamento conforme o uso). Consulte Visão geral do faturamento. |
— |
Permissões necessárias
Banco de dados SQL do Azure (source)
|
Tipo de migração |
Permissão necessária |
|
Migração de esquema |
|
|
Migração de dados completos |
|
|
Migração de dados incrementais |
Função |
A conta de administrador do servidor fornecida pelo console do Azure SQL Database atende a todos os requisitos de permissão listados acima.
Suporte a CDC por modelo de preços:
Modelo vCore: todas as especificações suportam CDC.
Modelo DTU: apenas especificações S3 ou superiores suportam CDC.
RDS for SQL Server (destino)
Todos os tipos de migração (esquema, completa, incremental): permissões de leitura e gravação.
Crie uma conta padrão ou privilegiada no console do ApsaraDB RDS e modifique as permissões da conta conforme necessário.
Método 1: Usar o console do RDS
Abra a lista de instâncias do ApsaraDB RDS, selecione a região de destino e clique em ID da instância.
No painel de navegação à esquerda, clique em Data Migration And Sync.
-
Clique em One-stop Cloud e configure as informações dos bancos de dados de source e destino.
Parâmetros do banco de dados de source
Parâmetro
Descrição
Task Name
Um nome descritivo para a tarefa. Não precisa ser único.
Database Type
O padrão é SQL Server. Nenhuma ação necessária.
Type
Selecione Azure.
Access Method
Selecione Public IP Address ou Express Connect, VPN Gateway, or Smart Access Gateway com base em como o banco de dados do Azure se conecta à Alibaba Cloud. Para Azure SQL Managed Instance, selecione Public IP Address.
Instance Region
Para Public IP Address: a região onde reside o banco de dados SQL do Azure (selecione a região mais próxima se a região exata não estiver disponível). Para Express Connect, VPN Gateway, or Smart Access Gateway: a região da virtual private cloud (VPC) da Alibaba Cloud conectada ao banco de dados do Azure.
Connected VPC
A VPC da Alibaba Cloud conectada ao banco de dados do Azure. Disponível apenas quando o Access Method é Express Connect, VPN Gateway, or Smart Access Gateway.
Domain Name or IP
O nome de domínio ou endereço IP do banco de dados SQL do Azure. Especifique o nome de domínio sempre que possível.
Port Number
A porta de service do banco de dados SQL do Azure.
Database Account
A conta do banco de dados SQL do Azure. Para Azure SQL Database, use o formato
<Administrator username>@<Server name>. Por exemplo, se a conta de administrador fortestusere o nome do servidor fordtstest(executeSELECT @@SERVERNAME AS ServerNamepara consultar o nome do servidor), insiratestuser@dtstest.Database Password
A senha da conta do banco de dados.
Encryption
Selecione Non-encrypted se o SSL não estiver ativado. Selecione SSL-encrypted se o SSL estiver ativado (o DTS confia no certificado do servidor por padrão).
Parâmetros do banco de dados de destino
Parâmetro
Descrição
Database Type
O padrão é SQL Server. Nenhuma ação necessária.
Access Method
O padrão é Alibaba Cloud Instance. Nenhuma ação necessária.
Instance Region
A região da instância do ApsaraDB RDS for SQL Server (somente leitura).
Instance ID
O ID da instância de destino (somente leitura).
Database Account
A conta da instância de destino com as permissões necessárias.
Database Password
A senha da conta do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted com base na configuração do banco de dados de destino.
-
Clique em Test Connectivity And Proceed.
ImportanteAdicione os blocos CIDR do servidor DTS mostrados na caixa de diálogo à lista de permissões do seu banco de dados SQL do Azure. Adding DTS IP addresses pode introduzir riscos de segurança. Implemente medidas de segurança apropriadas, como fortalecer políticas de senha e restringir o acesso a portas.
-
Escolha um plano de migração:
Full And Incremental Data Migration: clique em Configure Objects e continue para a próxima etapa.
Qualquer outro plano: siga as etapas em View Migration Documentation na parte inferior da página.
-
Na página Configure Objects, configure os objetos a serem migrados.
Parâmetro
Descrição
Method to Migrate Triggers in Source Database
Controla quando os gatilhos são migrados. Selecione Manual Migration para evitar inconsistência de dados causada pela migração de gatilhos antes da conclusão da migração incremental. Se não precisar migrar gatilhos, mantenha a configuração padrão. Consulte Configure trigger synchronization or migration.
Source Objects
Selecione os objetos e clique em
para adicioná-los aos Selected Objects. Selecionar tabelas ou colunas exclui visualizações, gatilhos e procedimentos armazenados.Selected Objects
Clique com o botão direito em um objeto para renomeá-lo (usando mapeamento de nomes de objetos), adicionar condições de filtro WHERE ou selecionar operações SQL específicas para migrar. Para remover um objeto, selecione-o e clique em
. Observe que renomear um objeto pode fazer com que objetos dependentes falhem na migração. -
(Opcional) Expanda Advanced Settings para configurar limitação de taxa ou verificação de dados.
Parâmetro
Descrição
Enable Throttling for Full Data Migration
Limita o uso de recursos durante a migração completa. Configure QPS to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s).
Enable Throttling for Incremental Data Migration
Limita o uso de recursos durante a migração incremental. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s).
Data Verification Mode
Selecione Full Data Verification para verificar valores de hash com amostragem de 100%. Configure Maximum number of rows of data read per second by full verification e The maximum number of bytes read per second by full verification Byte/s para limitar a taxa de verificação. Defina ambos como 0 para desativar a limitação.
-
Clique em Next: Save Task Settings and Precheck. O DTS executa uma pré-verificação antes de iniciar a tarefa de migração. Se itens da pré-verificação falharem:
Clique em View Details ao lado de cada item com falha, solucione o problema e clique em Precheck Again.
Para itens de alerta que podem ser ignorados: clique em Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar alertas pode resultar em inconsistência de dados.
Para visualizar os parâmetros da OpenAPI para esta tarefa, passe o mouse sobre o botão e clique em Preview OpenAPI parameters antes de prosseguir.
Aguarde até que a Success Rate atinja 100%, então clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure a classe da instância e conclua a compra. Marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms, depois clique em Buy and Start > OK.
Parâmetro
Descrição
Resource Group
O grupo de recursos para a instância de migração. O padrão é o default resource group. Consulte O que é Resource Management?
Instance Class
A classe da instância determina a velocidade da migração. Consulte Classes de instância de instâncias de migração de dados.
Monitore o progresso na página Data Migration. A tabela a seguir descreve os possíveis status da tarefa:
|
Status |
Descrição |
|
Running |
A migração incremental está ativa. A tarefa é executada continuamente e não para automaticamente. |
|
Completed |
A tarefa foi concluída com sucesso. Aparece apenas para tarefas sem migração incremental. |
Método 2: Usar o console do DTS
No painel de navegação à esquerda, clique em Data Migration e selecione a região.
-
Clique em Create Task e configure as informações dos bancos de dados de source e destino.
Parâmetros do banco de dados de source
Parâmetro
Descrição
Task Name
Um nome descritivo para a tarefa. Não precisa ser único.
Select Existing Connection
Selecione um banco de dados de source registrado anteriormente em DTS Database Connection Management para pular a entrada manual.
Database Type
Selecione SQL Server.
Access Method
Selecione Public IP Address ou Express Connect, VPN Gateway, or Smart Access Gateway. Para Azure SQL Managed Instance, selecione Public IP Address.
Instance Region
Para Public IP Address: a região do banco de dados SQL do Azure (selecione a mais próxima se indisponível). Para Express Connect, VPN Gateway, or Smart Access Gateway: a região da VPC da Alibaba Cloud conectada ao banco de dados do Azure.
Replicate Data Across Alibaba Cloud Accounts
Selecione No ao migrar dentro da mesma conta da Alibaba Cloud. Disponível apenas quando o Access Method é Express Connect, VPN Gateway, or Smart Access Gateway.
Connected VPC
A VPC da Alibaba Cloud conectada ao banco de dados do Azure. Disponível apenas quando o Access Method é Express Connect, VPN Gateway, or Smart Access Gateway.
Domain Name or IP
O nome de domínio ou endereço IP do banco de dados SQL do Azure. Especifique o nome de domínio sempre que possível.
Port Number
A porta de service do banco de dados SQL do Azure.
Database Account
A conta do banco de dados SQL do Azure. Para Azure SQL Database, use o formato
<Administrator username>@<Server name>. Por exemplo, para a conta de administradortestusere servidordtstest(executeSELECT @@SERVERNAME AS ServerNamepara consultar), insiratestuser@dtstest.Database Password
A senha da conta do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted com base na configuração do banco de dados de source.
Parâmetros do banco de dados de destino
Parâmetro
Descrição
Select Existing Connection
Selecione um banco de dados de destino registrado anteriormente em DTS Database Connection Management para pular a entrada manual.
Database Type
Selecione SQL Server.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
A região da instância de destino do ApsaraDB RDS for SQL Server.
Instance ID
O ID da instância de destino.
Database Account
A conta da instância de destino com as permissões necessárias.
Database Password
A senha da conta do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted com base na configuração do banco de dados de destino.
-
Clique em Test Connectivity And Proceed.
ImportanteAdicione os blocos CIDR do servidor DTS mostrados na caixa de diálogo à lista de permissões do seu banco de dados SQL do Azure. Adding DTS IP addresses pode introduzir riscos de segurança. Implemente medidas de segurança apropriadas, como fortalecer políticas de senha e restringir o acesso a portas.
-
Na página Configure Objects, configure os objetos e tipos de migração.
Parâmetro
Descrição
Migration Types
Selecione os tipos de migração: Schema Migration, Full Data Migration e/ou Incremental Data Migration. Para migração sem tempo de inatividade, selecione todos os três. Se Schema Migration não for selecionado, crie os bancos de dados e tabelas de destino manualmente e use o mapeamento de nomes de objetos conforme necessário. Se Incremental Data Migration não for selecionado, não grave no banco de dados de source durante a migração.
Method to Migrate Triggers in Source Database
Disponível quando tanto Schema Migration quanto Incremental Data Migration estão selecionados. Selecione Manual Migration para evitar inconsistência de dados. Consulte Configure trigger synchronization or migration.
SQL Server Incremental Synchronization Mode
Selecione Polling and querying CDC instances for incremental synchronization. Disponível apenas quando Incremental Data Migration está selecionado.
The maximum number of tables for which CDC is enabled that DTS supports.
Mantenha o valor padrão.
Processing Mode of Conflicting Tables
Precheck and Report Errors (padrão): falha na pré-verificação se as tabelas de destino compartilharem nomes com as tabelas de source. Ignore Errors and Proceed: pula a verificação. Use com cautela — durante a migração completa, registros de chave primária duplicados são retidos no destino; durante a migração incremental, eles são sobrescritos. Diferenças de esquema podem causar migração parcial ou falha na tarefa.
Capitalization of Object Names in Destination Instance
Controla a capitalização de nomes de banco de dados, tabelas e colunas no destino. O padrão é DTS default policy. Consulte Especificar a capitalização de nomes de objetos na instância de destino.
Source Objects
Selecione os objetos e clique em
para adicioná-los aos Selected Objects. Selecionar tabelas ou colunas exclui visualizações, gatilhos e procedimentos armazenados.Selected Objects
Clique com o botão direito em um objeto para renomeá-lo, adicionar filtros WHERE ou selecionar operações SQL específicas. Para remover um objeto, selecione-o e clique em
. -
Clique em Next: Advanced Settings para configurar parâmetros avançados.
Parâmetro
Descrição
Dedicated Cluster for Task Scheduling
Por padrão, o DTS usa o cluster compartilhado. Adquira um cluster dedicado para maior estabilidade. Consulte O que é um cluster dedicado do DTS.
Retry Time for Failed Connections
Duração em que o DTS tenta novamente após uma falha de conexão. Intervalo: 10–1.440 minutos. Padrão: 720 minutos. Defina para pelo menos 30 minutos. Se a conexão for restaurada dentro desta janela, o DTS retoma a tarefa. Nota: várias tarefas que compartilham um banco de dados de source ou destino usam o tempo de nova tentativa configurado mais recentemente. O DTS cobra pela instância durante as novas tentativas.
Retry Time for Other Issues
Duração em que o DTS tenta novamente após falhas em operações DDL ou DML. Intervalo: 1–1.440 minutos. Padrão: 10 minutos. Defina um valor maior que 10 minutos. Deve ser menor que Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Disponível quando Full Data Migration está selecionado. Configure QPS to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s).
Enable Throttling for Incremental Data Migration
Disponível quando Incremental Data Migration está selecionado. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s).
Environment Tag
Uma tag opcional para identificar a instância do DTS.
Configure ETL
Selecione Yesconfigurações de notificação de alerta para ativar extração, transformação e carga (ETL) e inserir instruções de processamento de dados. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. Selecione No para pular.
Monitoring and Alerting
Selecione Yes para receber notificações quando a tarefa falhar ou a latência da migração exceder um limiar. Configure limiares de alerta e definições de notificação. Consulte Configurar monitoramento e alertas.
Clique em Next Step: Data Verification para configurar a verificação de dados. Consulte Configure data verification.
-
Clique em Next: Save Task Settings and Precheck. Se itens da pré-verificação falharem:
Clique em View Details ao lado de cada item com falha, solucione o problema e clique em Precheck Again.
Para itens de alerta que podem ser ignorados: clique em Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar alertas pode resultar em inconsistência de dados.
Para visualizar os parâmetros da OpenAPI para esta tarefa, passe o mouse sobre o botão e clique em Preview OpenAPI parameters antes de prosseguir.
Aguarde até que a Success Rate atinja 100%, então clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure a classe da instância e conclua a compra. Marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms, depois clique em Buy and Start > OK.
Parâmetro
Descrição
Resource Group
O grupo de recursos para a instância de migração. O padrão é o default resource group.
Instance Class
Determina a velocidade da migração. Consulte Classes de instância de instâncias de migração de dados.
Monitore o progresso na página Data Migration. A tabela a seguir descreve os possíveis status da tarefa:
|
Status |
Descrição |
|
Running |
A migração incremental está ativa. A tarefa é executada continuamente e não para automaticamente. |
|
Completed |
A tarefa foi concluída com sucesso. Aparece apenas para tarefas sem migração incremental. |
Apêndice 1: Operações SQL compatíveis na migração de dados incrementais
Operações DML
INSERT, UPDATE, DELETE
Se um UPDATE modificar apenas campos grandes, o DTS não o migrará.
Operações DDL
Operações DDL compatíveis:
CREATE TABLE (não compatível para tabelas particionadas ou tabelas que contêm funções)
ALTER TABLE (apenas ADD COLUMN e DROP COLUMN)
DROP TABLE
CREATE INDEX e DROP INDEX
Operações DDL que não são migradas:
DDL transacional (adição de várias colunas em uma única instrução ou instruções combinando DDL e DML)
DDL com tipos definidos pelo usuário
DDL online
DDL em objetos com nomes de palavras-chave reservadas
DDL executado por procedimentos armazenados do sistema
TRUNCATE TABLE
Apêndice 2: Objetos compatíveis na migração de esquema
Tipos de objetos compatíveis: tabela, visualização, gatilho, sinônimo, procedimento armazenado SQL, função SQL, guia de plano, tipo definido pelo usuário, regra, padrão, sequência.
Não compatíveis: assemblies, service brokers, índices de texto completo, catálogos de texto completo, esquemas distribuídos, funções distribuídas, procedimentos armazenados CLR, funções de valor escalar CLR, funções de valor de tabela CLR, tabelas internas, sistemas, funções de agregação.
Perguntas frequentes
Posso selecionar quais objetos verificar ao configurar uma tarefa de migração no console do ApsaraDB RDS?
Não. Os objetos verificados são sempre os mesmos objetos selecionados para migração.
Qual método de verificação é usado para tarefas configuradas no console do ApsaraDB RDS?
O DTS verifica valores de hash de todos os dados migrados com uma taxa de amostragem de 100%, comparando todos os registros nos bancos de dados de source e destino.