O Data Transmission Service (DTS) permite migrar dados de uma instância ApsaraDB MyBase for SQL Server para uma instância ApsaraDB RDS for SQL Server com tempo de inatividade mínimo. Este guia orienta você na configuração de uma tarefa de migração que combina migração de esquema, migração completa de dados e migração incremental de dados.
Escopo de aplicação
Antes de começar, certifique-se de que:
A instância de destino ApsaraDB RDS for SQL Server já foi criada. Para versões de mecanismo compatíveis, consulte Visão geral dos cenários de migração de dados. Para criar uma instância, consulte Criar uma instância ApsaraDB RDS for SQL Server
A instância de destino possui mais espaço de armazenamento disponível do que o tamanho total dos dados da instância de origem
Se você definir o SQL Server Incremental Synchronization Mode como Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables, o modo híbrido de análise baseada em log será utilizado. As seguintes versões de banco de dados de origem são suportadas:
Edição Enterprise ou Enterprise Evaluation: SQL Server 2012, 2014, 2016, 2019, 2022 ou 2025
Edição Standard: SQL Server 2016, 2019, 2022 ou 2025
Quando dividir em várias tarefas
Divida a migração em múltiplas tarefas se alguma das condições abaixo se aplicar à instância de origem:
A instância de origem contém mais de 10 bancos de dados
Um único banco de dados faz backup de logs em intervalos menores que 1 hora
Um único banco de dados executa mais de 100 instruções DDL por hora
Logs são gravados a uma taxa de 20 MB/s para um único banco de dados
É necessário ativar o Change Data Capture (CDC) para mais de 1.000 tabelas
Faturamento
|
Tipo de migração |
Taxa de configuração da tarefa |
Taxa de tráfego de internet |
|
Migração de esquema e migração completa de dados |
Gratuita |
Gratuita |
|
Migração incremental de dados |
Cobrada. Consulte Visão geral do faturamento. |
— |
Escolha um tipo de migração
O DTS oferece suporte a três tipos de migração. Combine-os conforme suas necessidades.
|
Tipo de migração |
Função |
Quando usar |
|
Migração de esquema |
Migra os esquemas dos objetos selecionados da origem para o destino |
Selecione sempre como primeira etapa |
|
Migração completa de dados |
Migra todos os dados existentes da origem para o destino |
Obrigatória para a migração inicial |
|
Migração incremental de dados |
Migra continuamente as alterações de dados após a conclusão da migração completa |
Selecione para minimizar o tempo de inatividade e manter os serviços ativos durante a migração |
Para detalhes completos sobre o suporte à migração de esquema, consulte Objetos suportados e não suportados.
O DTS não migra chaves estrangeiras. Operações de cascata e exclusão definidas no banco de dados de origem não são transferidas para o destino.
Limitações
Revise estas limitações antes de configurar a tarefa.
Requisitos do banco de dados de origem
O servidor onde o banco de dados de origem está implantado deve ter largura de banda de saída suficiente. Caso contrário, a velocidade de migração de dados diminuirá.
As tabelas a serem migradas devem ter restrições
PRIMARY KEYouUNIQUE, e todos os campos devem ser únicos. Caso contrário, o banco de dados de destino poderá conter registros duplicados.Uma única tarefa de migração pode migrar até 1.000 tabelas quando você renomeia tabelas ou colunas durante a migração. Para mais de 1.000 tabelas, configure várias tarefas ou migre no nível do banco de dados em vez do nível da tabela.
Uma única tarefa de migração pode migrar até 10 bancos de dados. Para mais de 10 bancos de dados, configure várias tarefas.
Para migração incremental de dados, certifique-se também de que:
O recurso de registro de dados está ativado. O modo de backup deve estar definido como Full e um backup físico completo deve ter sido realizado.
-
Período de retenção de logs: A retenção insuficiente de logs pode causar falha na tarefa ou resultar em inconsistência ou perda de dados. O não cumprimento desses requisitos também anula o acordo de nível de serviço (SLA) do DTS.
Apenas migração incremental: reter logs por mais de 24 horas
Migração completa + incremental: reter logs por pelo menos 7 dias. Após a conclusão da migração completa, defina a retenção para mais de 24 horas
Para tabelas com CDC ativado, as seguintes condições devem ser atendidas (caso contrário, a pré-verificação falhará):
O campo
srvnamena viewsys.sysserversdeve corresponder ao valor retornado pela funçãoSERVERPROPERTYO proprietário do banco de dados deve ser
sa(SQL Server autogerenciado) ousqlsa(ApsaraDB RDS for SQL Server)Edição Enterprise: SQL Server 2008 ou posterior
Edição Standard: SQL Server 2016 SP1 ou posterior
Edição Standard ou Enterprise executando SQL Server 2017: atualize para uma versão posterior
Limites adicionais do banco de dados de origem:
Não execute instruções DDL que alterem esquemas de banco de dados ou tabelas durante a migração de esquema e a migração completa de dados. Isso causa falha na tarefa de migração.
Se você realizar apenas a migração completa de dados (sem incremental), não grave no banco de dados de origem durante a migração. Para evitar inconsistência de dados, selecione todos os três tipos de migração: migração de esquema, migração completa de dados e migração incremental de dados.
Não limpe os logs do banco de dados de origem antes que a tarefa seja concluída. O DTS usa a função
fn_logpara recuperar logs, o que apresenta gargalos de desempenho. Limpar logs prematuramente pode causar falha na tarefa.Instâncias de origem somente leitura não oferecem suporte à migração de operações DDL.
-
No modo híbrido de análise baseada em log, não realize múltiplas operações de adição ou remoção de colunas na mesma tabela dentro de 10 minutos. Por exemplo, a seguinte sequência executada dentro de 10 minutos causa um erro:
ALTER TABLE test_table DROP COLUMN Flag; ALTER TABLE test_table ADD Remark nvarchar(50) not null default(''); Se a origem for uma instância ApsaraDB RDS for SQL Server executando a edição Web, defina o SQL Server Incremental Synchronization Mode como Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).
Outras limitações
O DTS não migra os seguintes tipos de dados:
TEXT,CURSOR,ROWVERSION,SQL_VARIANT,HIERACHYID,GEOMETRY.Se você usar o modo Incremental Synchronization Based on Logs of Source Database (não híbrido), as tabelas devem ter índices clusterizados contendo colunas de chave primária. Tabelas heap, tabelas sem chaves primárias, tabelas compactadas e tabelas com colunas computadas não são suportadas. Para visualizar tabelas heap, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas, consulte o FAQ.
Migre dados apenas entre versões de banco de dados compatíveis.
Se as tabelas com CDC ativado em uma única tarefa de migração excederem 1.000, a pré-verificação falhará.
Recomendamos definir o número máximo de registros por segundo como 1.000 para as tabelas nas quais o CDC está ativado no banco de dados de origem.
A migração incremental de dados exige a desativação de gatilhos e chaves estrangeiras no banco de dados de destino.
Realize a migração fora do horário de pico. A migração completa de dados utiliza recursos de leitura e gravação tanto na origem quanto no destino, o que aumenta a carga nos servidores de banco de dados. Operações INSERT simultâneas durante a migração completa também causam fragmentação de tabela no destino, tornando o tablespace de destino maior que o da origem.
O DTS usa
ROUND(COLUMN,PRECISION)para recuperar valores de colunasFLOATeDOUBLE. Precisão padrão: 38 dígitos paraFLOAT, 308 dígitos paraDOUBLE. Verifique se essas configurações de precisão atendem aos seus requisitos antes de iniciar a migração.O DTS tenta automaticamente repetir tarefas de migração com falha por até 7 dias. Antes de alternar as cargas de trabalho para o banco de dados de destino, pare ou libere quaisquer tarefas com falha — ou revogue as permissões de gravação das contas do DTS no destino. Caso contrário, a tarefa retomada poderá sobrescrever dados no destino com dados da origem.
Não execute operações de reindexação durante a migração incremental de dados. Isso pode causar falha na tarefa e resultar em perda de dados. O DTS também não consegue migrar operações DDL em chaves primárias para tabelas com CDC ativado.
O DTS cria automaticamente o banco de dados de destino na instância RDS. Se o nome do banco de dados não estiver em conformidade com as convenções de nomenclatura do ApsaraDB RDS,
crie o banco de dados manualmente
antes de configurar a tarefa de migração.
Objetos suportados e não suportados
Migração de esquema: objetos suportados
Tabela, view, gatilho, sinônimo, procedimento armazenado SQL, função SQL, plano guia, tipo definido pelo usuário, regra, padrão e sequência.
Migração de esquema: objetos não suportados
Assemblies, service brokers, índices de texto completo, catálogos de texto completo, esquemas distribuídos, funções distribuídas, procedimentos armazenados Common Language Runtime (CLR), funções escalares CLR, funções com valor de tabela CLR, tabelas internas, objetos de sistema e funções de agregação.
Operações SQL suportadas para migração incremental de dados
| Tipo de operação | Instruções SQL suportadas |
|---|---|
| DML | INSERT, UPDATE, DELETE. Nota
Operações |
| DDL | ALTER TABLE (apenas ADD COLUMN, DROP COLUMN, RENAME COLUMN); CREATE TABLE, CREATE INDEX (tabelas particionadas e tabelas com funções não são migradas); DROP TABLE; RENAME TABLE; TRUNCATE TABLE |
Operações DDL transacionais não são migradas. Por exemplo, uma operação SQL que contenha DDL em múltiplas colunas, ou que misture DDL e DML, não é migrada. Pode ocorrer perda de dados.
Operações DDL contendo tipos definidos pelo usuário não são migradas.
Operações DDL online não são migradas.
No modo híbrido de análise baseada em log, todas as operações DDL comuns são migradas.
Permissões necessárias
| Banco de dados | Migração de esquema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Instância de origem | Permissões de leitura nos objetos a serem migrados | Permissão owner no banco de dados de origem |
Consulte Criar uma conta e Modificar permissões da conta. |
| Instância de destino | Permissões de leitura e gravação no banco de dados de destino (permissão owner recomendada) |
||
Configure a tarefa de migração
Etapa 1: Acesse a página Data Migration Tasks
Faça login no console do Data Management (DMS).
Na barra de navegação superior, passe o ponteiro sobre DTS e escolha DTS (DTS) > Data Migration.
A navegação real pode variar dependendo do layout do console DMS. Consulte
e
Personalizar o layout e o estilo do console DMS
. Alternativamente, acesse diretamente a
página Data Migration do novo console DTS
.
Etapa 2: Selecione a região
Na lista suspensa no lado direito de Data Migration Tasks, selecione a região onde sua instância de migração reside.
No novo console DTS, selecione a região no canto superior esquerdo.
Etapa 3: Configure os bancos de dados de origem e destino
Clique em Create Task e configure os seguintes parâmetros.
Após configurar os bancos de dados de origem e destino, leia os Limits exibidos na parte superior da página. Pular esta etapa pode causar falha na tarefa ou resultar em inconsistência de dados.
Banco de dados de origem
|
Parâmetro |
Descrição |
|
Task Name |
Um nome descritivo para a tarefa. O DTS gera um nome automaticamente, mas especificar um nome significativo facilita a identificação da tarefa. Não precisa ser único. |
|
Select an existing DMS database instance (opcional) |
Se você já registrou uma instância de banco de dados DMS, selecione-a aqui. O DTS preenche automaticamente os parâmetros abaixo. Caso contrário, configure os parâmetros manualmente. |
|
Database Type |
Selecione SQL Server. |
|
Access Method |
Selecione Alibaba Cloud Instance. Instâncias ApsaraDB MyBase for SQL Server conectam-se ao DTS usando este método de acesso. |
|
Instance Region |
A região onde a instância ApsaraDB MyBase for SQL Server de origem reside. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No para migração na mesma conta. |
|
RDS Instance ID |
O ID da instância ApsaraDB MyBase for SQL Server de origem. |
|
Database Account |
A conta do banco de dados para a instância de origem. Consulte Permissões necessárias. |
|
Database Password |
A senha da conta do banco de dados. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select an existing DMS database instance (opcional) |
Se você já registrou uma instância de banco de dados DMS, selecione-a aqui. O DTS preenche automaticamente os parâmetros abaixo. Caso contrário, configure os parâmetros manualmente. |
|
Database Type |
Selecione SQL Server. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
A região onde a instância ApsaraDB RDS for SQL Server de destino reside. |
|
Instance ID |
O ID da instância ApsaraDB RDS for SQL Server de destino. |
|
Database Account |
A conta do banco de dados para a instância de destino. Consulte Permissões necessárias. |
|
Database Password |
A senha da conta do banco de dados. |
Etapa 4: Testar a conectividade
Clique em Test Connectivity and Proceed.
O DTS adiciona automaticamente seus blocos CIDR de servidor à lista de permissões de endereços IP da instância de banco de dados Alibaba Cloud. Para bancos de dados autogerenciados em instâncias Elastic Compute Service (ECS), o DTS adiciona blocos CIDR às regras do grupo de segurança do ECS — mas você deve verificar se a instância ECS consegue acessar o banco de dados. Se o banco de dados for executado em várias instâncias ECS, adicione manualmente os blocos CIDR do DTS ao grupo de segurança de cada instância ECS. Para bancos de dados autogerenciados em data centers ou ambientes de nuvem de terceiros, adicione manualmente os blocos CIDR do DTS à lista de permissões de endereços IP do banco de dados. Para a lista completa de blocos CIDR, consulte Adicionar os blocos CIDR dos servidores DTS.
Adicionar blocos CIDR do DTS à sua lista de permissões ou grupo de segurança introduz riscos de segurança. Antes de prosseguir, tome medidas preventivas: fortaleça a segurança de nomes de usuário e senhas, limite portas expostas, autentique chamadas de API e audite regularmente as regras de lista de permissões e grupos de segurança para remover blocos CIDR não autorizados. Você também pode conectar o banco de dados ao DTS através do Express Connect, VPN Gateway ou Smart Access Gateway.
Etapa 5: Selecione objetos e configure o modo de sincronização
|
Parâmetro |
Descrição |
|
Migration Types |
Selecione os tipos de migração para o seu cenário. Para migração completa sem tempo de inatividade, selecione Schema Migration, Full Data Migration e Incremental Data Migration. Para migração com janela de manutenção, selecione apenas Schema Migration e Full Data Migration — mas não grave no banco de dados de origem durante a migração. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: falha na pré-verificação se o destino contiver tabelas com os mesmos nomes das tabelas de origem. Use o mapeamento de nomes de objetos para renomear tabelas conflitantes. Ignore Errors and Proceed: ignora a pré-verificação para nomes de tabelas idênticos. Durante a migração completa, registros conflitantes no destino são mantidos (não sobrescritos). Durante a migração incremental, registros conflitantes são sobrescritos. Use com cautela. |
|
SQL Server Incremental Synchronization Mode |
Consulte Escolha um modo de sincronização abaixo. |
|
Source Objects |
Selecione objetos na seção Source Objects e clique no ícone de seta para a direita para movê-los para Selected Objects. Você pode selecionar colunas, tabelas ou esquemas. Selecionar tabelas ou colunas exclui views, gatilhos e procedimentos armazenados. |
|
Selected Objects |
Para renomear um único objeto, clique com o botão direito nele e consulte Mapear o nome de um único objeto. Para renomear vários objetos de uma vez, clique em Batch Edit. Consulte Mapear vários nomes de objetos de uma vez. Para filtrar linhas com condições SQL, clique com o botão direito em um objeto e especifique as condições. Consulte Usar condições SQL para filtrar dados. Para selecionar quais operações SQL replicar para um objeto específico, clique com o botão direito no objeto e selecione as operações. |
Renomear um objeto com o recurso de mapeamento de nomes de objetos pode fazer com que outros objetos dependentes dele falhem na migração.
Escolha um modo de sincronização
Selecione o SQL Server Incremental Synchronization Mode com base no seu banco de dados de origem e tipos de tabela.
|
Modo |
Vantagens |
Desvantagens |
|
Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (análise híbrida baseada em log) |
Suporta tabelas heap, tabelas sem chaves primárias, tabelas compactadas e tabelas com colunas computadas. Maior estabilidade e suporte completo a DDL. |
O DTS cria |
|
Incremental Synchronization Based on Logs of Source Database (tabelas heap não suportadas) |
Não modifica as configurações do banco de dados de origem. |
Não suporta tabelas heap, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas. As tabelas devem ter índices clusterizados contendo colunas de chave primária. |
|
Polling and querying CDC instances for incremental synchronization |
Suporta migração do Amazon RDS SQL Server, Azure SQL Database e Google Cloud SQL for SQL Server. Usa o componente CDC nativo para estabilidade com menos largura de banda de rede. |
A conta DTS deve ter permissão para ativar o CDC. A migração incremental leva aproximadamente 10 segundos para iniciar. Pode apresentar problemas de estabilidade e desempenho ao migrar várias tabelas em vários bancos de dados. |
No modo híbrido de análise baseada em log, o DTS também ativa o CDC para o banco de dados de origem e tabelas específicas.
Etapa 6: Configure definições avançadas
Clique em Next: Advanced Settings e configure os seguintes parâmetros.
Configurações de verificação de dados
Para ativar a verificação de dados após a migração, consulte Ativar verificação de dados.
Configurações avançadas
|
Parâmetro |
Descrição |
|
Dedicated Cluster for Task Scheduling |
Por padrão, o DTS agenda tarefas para um cluster compartilhado. Para usar um cluster dedicado, adquira um primeiro. Consulte O que é um cluster dedicado DTS? |
|
Set Alerts |
Selecione Yes para receber notificações quando a tarefa falhar ou a latência de migração exceder um limiar. Configure o limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas. |
|
Retry Time for Failed Connections |
Tempo durante o qual o DTS tenta reconectar após uma falha de conexão depois que a tarefa inicia. Valores válidos: 10–1.440 minutos. Padrão: 720. Recomendamos definir o parâmetro com um valor maior que 30. Se o DTS reconectar dentro deste período, a tarefa será retomada. Caso contrário, a tarefa falhará. Se várias tarefas compartilharem o mesmo banco de dados de origem ou destino, o menor tempo de nova tentativa terá precedência. O DTS cobra pela instância durante as novas tentativas. |
|
Retry Time for Other Issues |
Tempo durante o qual o DTS tenta repetir operações DDL ou DML com falha. Valores válidos: 1–1.440 minutos. Padrão: 10. Recomendamos definir o parâmetro com um valor maior que 10. Deve ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Selecione Yes para limitar a carga de leitura/gravação durante a migração completa. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration e BPS of Full Data Migration conforme necessário. Disponível apenas quando Full Data Migration estiver selecionado. |
|
Enable Throttling for Incremental Data Migration |
Selecione Yes para limitar a carga durante a migração incremental. Configure RPS of Incremental Data Migration e BPS of Incremental Data Migration conforme necessário. Disponível apenas quando Incremental Data Migration estiver selecionado. |
|
Environment Tag |
Marque a instância como Regular ou Production Environment com base no seu ambiente. |
|
Configure ETL |
Selecione Yes para ativar o recurso de extração, transformação e carga (ETL) e inserir instruções de processamento de dados. Consulte Configurar ETL e O que é ETL? |
Etapa 7: Execute a pré-verificação
Clique em Next: Save Task Settings and Precheck.
Para visualizar os parâmetros da API para esta configuração de tarefa, passe o mouse sobre
Next: Save Task Settings and Precheck
e clique em
Preview OpenAPI parameters
.
O DTS executa uma pré-verificação antes do início da migração. A tarefa só pode prosseguir após a aprovação na pré-verificação.
Se um item de verificação falhar, clique em View Details, resolva o problema e clique em Precheck Again.
-
Se um item de verificação mostrar um alerta:
Se o alerta não puder ser ignorado, clique em View Details, corrija o problema e execute a pré-verificação novamente.
Se o alerta puder ser ignorado com segurança, clique em Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar um alerta pode resultar em inconsistência de dados.
Etapa 8: Adquirir a instância
Aguarde até que Success Rate atinja 100% e clique em Next: Purchase Instance.
Na página Purchase Instance, configure o seguinte:
| Seção | Parâmetro | Descrição |
|---|---|---|
| New Instance Class | Resource Group Settings | O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é Resource Management? |
| Instance Class | A classe da instância determina a velocidade de migração. Selecione com base no volume de dados e no cronograma. Consulte Especificações das instâncias de migração de dados. |
Etapa 9: Iniciar a migração
Leia e marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start e clique em OK na caixa de diálogo.
A tarefa aparecerá na lista de tarefas. Monitore o progresso a partir dela.
Próximos passos
Depois que a tarefa de migração for concluída e a latência da migração incremental cair para perto de zero:
Interrompa as gravações no banco de dados de origem.
Aguarde até que a latência da migração incremental atinja 0 segundos.
Altere as strings de conexão da sua aplicação para a instância ApsaraDB RDS for SQL Server de destino.
Verifique a consistência dos dados entre a origem e o destino.
Pare ou libere a tarefa de migração do DTS.