Todos os produtos
Search
Central de documentação

Data Transmission Service:Migrar SQL Server autogerenciado para RDS for SQL Server

Última atualização: Jul 09, 2026

O Data Transmission Service (DTS) permite migrar um banco de dados SQL Server autogerenciado para uma instância ApsaraDB RDS for SQL Server.

Escopo de aplicação

  • O banco de dados SQL Server autogerenciado deve usar uma versão compatível. Para mais informações, consulte Visão geral das soluções de migração.

  • Crie a instância de destino ApsaraDB RDS for SQL Server. Para mais informações, consulte Criar uma instância ApsaraDB RDS for SQL Server.

  • O espaço de armazenamento da instância de destino ApsaraDB RDS for SQL Server deve ser maior que o espaço usado pelo banco de dados SQL Server autogerenciado de origem.

  • Se o banco de dados de origem atender a qualquer uma das condições abaixo, use o recurso de backup do ApsaraDB RDS for SQL Server para migrar os dados. Para mais informações, consulte Migrar dados de um banco de dados autogerenciado para uma instância ApsaraDB RDS for SQL Server.

    • A instância de origem tem mais de 10 bancos de dados.

    • Backups de log ocorrem mais de uma vez por hora em um único banco de dados.

    • Mais de 100 operações de Data Definition Language (DDL) são executadas por hora em um único banco de dados.

    • A taxa de geração de logs de um único banco de dados excede 20 MB/s.

    • É necessário ativar o change data capture (CDC) em mais de 1.000 tabelas.

    • O banco de dados de origem contém tabelas heap, tabelas sem chave primária, tabelas compactadas, tabelas com colunas computadas ou tabelas com colunas esparsas. Execute as instruções SQL a seguir para verificar a existência desses tipos de tabela no banco de dados de origem:

      1. Verificar tabelas heap no banco de dados de origem:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.indexes WHERE index_id = 0);
      2. Verificar tabelas sem chave primária:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id NOT IN (SELECT parent_object_id FROM sys.objects WHERE type = 'PK');
      3. Verificar colunas de chave primária não incluídas no índice clusterizado:

        SELECT s.name schema_name, t.name table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id WHERE t.type = 'U' AND s.name NOT IN('cdc', 'sys') AND t.name NOT IN('systranschemas') AND t.object_id IN ( SELECT pk_colums_counter.object_id AS object_id FROM (select pk_colums.object_id, sum(pk_colums.column_id) column_id_counter from (select sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.is_primary_key = 'true') pk_colums group by object_id) pk_colums_counter inner JOIN ( select cluster_colums.object_id, sum(cluster_colums.column_id) column_id_counter from (SELECT sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.index_id = 1) cluster_colums group by object_id ) cluster_colums_counter ON pk_colums_counter.object_id = cluster_colums_counter.object_id and pk_colums_counter.column_id_counter != cluster_colums_counter.column_id_counter);
      4. Verificar tabelas compactadas no banco de dados de origem:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.objects t, sys.schemas s, sys.partitions p WHERE s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id = p.object_id AND p.data_compression != 0;
      5. Verificar tabelas com colunas computadas:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_computed = 1);
      6. Verificar tabelas com colunas esparsas:

        SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_sparse = 1);

Precauções

Tipo

Descrição

Limites do banco de dados de origem

  • O servidor do banco de dados de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade da migração de dados.

  • As tabelas a serem migradas devem ter chave primária ou restrição única, e as colunas dessa chave ou restrição devem ser únicas. Caso contrário, pode ocorrer duplicação de dados no banco de dados de destino.

  • Ao selecionar tabelas específicas para migração e precisar editá-las (por exemplo, mapear nomes de tabelas ou colunas), uma única tarefa de migração suporta no máximo 1.000 tabelas. Se esse limite for excedido, a tarefa falhará no envio. Divida as tabelas em várias tarefas ou configure uma tarefa para migrar o banco de dados inteiro.

  • Uma única tarefa de migração suporta no máximo 10 bancos de dados. Exceder esse limite pode causar problemas de estabilidade e desempenho. Divida a migração em várias tarefas, se necessário.

  • Se você configurar uma tarefa para migrar objetos específicos em vez de um banco de dados inteiro, não será possível migrar objetos com o mesmo nome de tabela, mas schemas diferentes, para o mesmo banco de dados de destino dentro de uma única tarefa.

  • Para migração incremental de dados, os logs de transação devem atender aos seguintes requisitos:

    • O registro de transações deve estar ativado, o modo de backup deve estar definido como Full e um backup físico completo deve ter sido concluído com sucesso.

    • Para migração apenas incremental, o Data Transmission Service (DTS) exige a retenção dos logs de transação do banco de dados de origem por mais de 24 horas. Se a tarefa incluir migração completa e incremental, mantenha os logs por pelo menos sete dias. Após a conclusão da migração completa, reduza o período de retenção para mais de 24 horas. Caso contrário, a tarefa do DTS poderá falhar devido à indisponibilidade dos logs de transação. Em casos extremos, pode ocorrer inconsistência ou perda de dados. Problemas causados por retenção insuficiente de logs não são cobertos pelo Service Level Agreement (SLA) do DTS.

  • Se você ativar o CDC (change data capture) nas tabelas de origem a serem migradas, elas devem atender às condições a seguir. Caso contrário, a pré-verificação falhará.

    • O valor do campo srvname na view sys.sysservers deve ser igual ao valor retornado pela função SERVERPROPERTY.

    • Se o banco de dados de origem for um SQL Server autogerenciado, o proprietário do banco de dados deve ser sa. Se for uma instância ApsaraDB RDS for SQL Server, o proprietário deve ser sqlsa.

    • Para bancos de dados Enterprise Edition, a versão deve ser SQL Server 2008 ou posterior.

    • Para bancos de dados Standard Edition, a versão deve ser SQL Server 2016 SP1 ou posterior.

    • Se o banco de dados de origem for SQL Server 2017 (Standard ou Enterprise Edition), atualize-o para uma versão mais recente.

  • O DTS usa a função fn_log para obter logs do banco de dados de origem. Essa função apresenta gargalos de desempenho; portanto, não limpe os logs do banco de dados de origem prematuramente. Caso contrário, a tarefa do DTS poderá falhar.

  • Limites de operações no banco de dados de origem:

    • Durante as fases de migração de schema e migração completa de dados, não execute operações DDL que alterem a estrutura do banco de dados ou das tabelas. Caso contrário, a tarefa de migração de dados falhará.

    • Se realizar apenas a migração completa de dados, não grave novos dados na instância de origem. Caso contrário, os dados nos bancos de origem e destino ficarão inconsistentes. Para garantir consistência de dados em tempo real, selecione Migração de Schema, Migração Completa de Dados e Migração Incremental de Dados.

  • Se o banco de dados de origem for uma instância somente leitura, o DTS não migrará operações DDL.

  • Se o banco de dados de origem for um Azure SQL Database, uma instância de migração poderá migrar apenas um banco de dados.

  • Se o banco de dados de origem for uma instância ApsaraDB RDS for SQL Server e a tarefa incluir migração incremental, garanta que o Transparent Data Encryption (TDE) esteja desativado para assegurar a estabilidade da tarefa. Para mais informações, consulte Desativar TDE.

  • Usar o comando sp_rename para renomear objetos como stored procedures antes da execução da tarefa de migração de schema pode fazer com que a tarefa não funcione conforme esperado ou falhe.

    Nota

    Use o comando ALTER para renomear objetos de banco de dados.

  • No modo de análise híbrida baseada em logs, o banco de dados de origem não suporta operações consecutivas de adição ou remoção de colunas com intervalo inferior a 10 minutos. Por exemplo, executar as instruções SQL abaixo consecutivamente causará falha na tarefa.

    ALTER TABLE test_table DROP COLUMN Flag;
    ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
  • Se o banco de dados de 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) ao configurar a tarefa.

  • Durante a migração completa de dados, ative o parâmetro READ_COMMITTED_SNAPSHOT no banco de dados de origem para evitar que contenção de bloqueios compartilhados afete a gravação de dados. Caso contrário, pode ocorrer inconsistência de dados ou falha na tarefa. Problemas decorrentes da não ativação desse parâmetro não são cobertos pelo SLA do DTS.

Outros limites

  • O DTS não suporta a migração de dados dos seguintes tipos: CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY e GEOGRAPHY.

  • Se não for possível gravar dados em uma coluna do tipo TIMESTAMP no banco de dados de destino, o DTS não suportará a migração completa ou incremental. Isso pode levar a inconsistência de dados ou falha na tarefa.

  • Para migrar triggers do banco de dados de origem, a conta de banco de dados usada na tarefa de migração deve ter permissões de Owner no banco de dados de destino.

  • Se você definir Configure Objects como SQL Server Incremental Synchronization Mode na etapa Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported), as tabelas a serem migradas devem ter um índice clusterizado que inclua a coluna de chave primária. Nesse modo, o DTS não suporta a migração de tabelas heap, tabelas sem chaves primárias, tabelas compactadas, tabelas com colunas computadas ou tabelas com colunas esparsas. Essas limitações não se aplicam ao modo de análise híbrida baseada em logs.

  • Se você definir Configure Objects como SQL Server Incremental Synchronization Mode na etapa Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing), os seguintes limites também se aplicam:

    • O DTS depende do componente CDC para a migração incremental. Garanta que o job de CDC no banco de dados de origem esteja em execução normal. Caso contrário, a tarefa do DTS falhará.

    • Por padrão, o componente CDC armazena dados incrementais por três dias. Ajuste o período de retenção executando o comando exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>;.

      Nota
      • <time> especifica o período de retenção em minutos.

      • Se a média diária de alterações SQL incrementais para uma única tabela exceder 10 milhões, defina <time> como 1440.

    • Em uma única tarefa de migração, ative o CDC em no máximo 1.000 tabelas. Caso contrário, a tarefa poderá apresentar alta latência ou tornar-se instável.

    • O módulo de pré-verificação de uma tarefa de migração incremental do DTS ativa o CDC no banco de dados de origem. Durante esse processo, limitações internas do mecanismo do SQL Server podem causar bloqueio temporário de tabelas no banco de dados de origem.

  • Se você definir Configure Objects como SQL Server Incremental Synchronization Mode na etapa Polling and querying CDC instances for incremental synchronization, os seguintes limites também se aplicam:

    • A conta do banco de dados de origem usada pela instância DTS deve ter permissões para ativar o CDC. Uma conta com a função sysadmin é necessária para ativar o CDC no nível do banco de dados. Uma conta privilegiada é necessária para ativar o CDC no nível da tabela.

      Nota
      • A conta com maiores privilégios (administrador de servidor) fornecida pelo console do Azure SQL Database atende aos requisitos. Para bancos de dados adquiridos com base no modelo vCore, o CDC pode ser ativado em todas as especificações. Para bancos adquiridos com base no modelo DTU, o CDC só pode ser ativado em camadas de serviço S3 ou superior.

      • A conta privilegiada de uma instância Amazon RDS for SQL Server atende aos requisitos e suporta a ativação de CDC no nível do banco de dados via stored procedures.

      • Não é possível ativar o CDC em tabelas que possuem um índice columnstore clusterizado.

      • O módulo de pré-verificação de uma tarefa de migração incremental do DTS ativa o CDC no banco de dados de origem. Durante esse processo, limitações internas do mecanismo do SQL Server podem causar bloqueio temporário de tabelas no banco de dados de origem.

    • O DTS obtém dados incrementais consultando periodicamente a instância de CDC de cada tabela no banco de dados de origem. Migre no máximo 1.000 tabelas do banco de dados de origem. Caso contrário, a tarefa poderá apresentar alta latência ou tornar-se instável.

    • Por padrão, o componente CDC armazena dados incrementais por três dias. Ajuste o período de retenção executando o comando exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>;.

      Nota
      • <time> especifica o período de retenção em minutos.

      • Se a média diária de alterações SQL incrementais para uma única tabela exceder 10 milhões, defina <time> como 1440.

    • Operações consecutivas de adição ou remoção de colunas não são suportadas (mais de duas operações DDL ADD COLUMN ou DROP COLUMN em um minuto). Caso contrário, a tarefa poderá falhar.

    • Não modifique as instâncias de CDC do banco de dados de origem. Caso contrário, a tarefa de migração de dados poderá falhar ou ocorrer perda de dados.

  • Ao migrar dados entre versões diferentes do SQL Server, verifique a compatibilidade antecipadamente.

  • Para garantir relatórios precisos de latência na migração incremental, o DTS cria objetos no banco de dados de origem. No modo de análise baseada em logs, o DTS cria um trigger dts_cdc_sync_ddl, uma tabela de heartbeat dts_sync_progress e uma tabela de armazenamento de DDL dts_cdc_ddl_history. No modo de análise híbrida baseada em logs, o DTS cria os mesmos objetos e também ativa o CDC nos níveis de banco de dados e de tabela. Para tabelas com CDC ativado, a taxa de alteração de dados não deve exceder 1.000 linhas por segundo (RPS).

  • Antes de migrar os dados, avalie o desempenho dos bancos de dados de origem e de destino e realize a migração fora do horário de pico. Durante a migração completa, o DTS consome recursos de leitura e gravação em ambos os bancos, o que pode aumentar a carga deles.

  • Durante a migração completa, operações INSERT concorrentes podem causar fragmentação nas tabelas de destino, fazendo com que o espaço de armazenamento das tabelas no banco de destino seja maior do que no banco de origem após a migração.

  • Verifique se a precisão usada pelo DTS para migrar colunas dos tipos de dados FLOAT ou DOUBLE atende aos seus requisitos de negócio. O DTS usa a função ROUND(COLUMN,PRECISION) para ler valores dessas colunas. Se nenhuma precisão for definida explicitamente, o DTS migrará valores FLOAT com precisão de 38 dígitos e valores DOUBLE com precisão de 308 dígitos.

  • O DTS tenta retomar uma tarefa com falha por até sete dias. Antes de alternar suas cargas de trabalho de negócios para a instância de destino, encerre ou libere a tarefa de migração. Alternativamente, revogue as permissões de gravação da conta do DTS na instância de destino usando o comando revoke para evitar que uma tarefa retomada sobrescreva os dados de destino.

  • Se a tarefa de migração incluir migração incremental de dados, não execute operações de reindexação. Isso pode causar falha na tarefa ou resultar em perda de dados.

    Nota

    Não é possível modificar a chave primária de uma tabela para a qual o CDC está ativado.

  • Se o número de tabelas com CDC ativado em uma única tarefa de migração exceder o valor definido no parâmetro The maximum number of tables for which CDC is enabled that DTS supports., a pré-verificação falhará.

  • Se a tarefa incluir migração incremental e um único campo em uma tabela com CDC ativado a ser gravado contiver mais de 64 KB de dados, execute o comando exec sp_configure 'max text repl size', -1; para ajustar a configuração do banco de dados de origem antecipadamente.

    Nota

    Por padrão, um job de CDC processa no máximo 64 KB de dados para um único campo.

  • Para realizar a migração incremental de dados, desative triggers e chaves estrangeiras habilitados no banco de dados de destino. Caso contrário, a tarefa falhará.

  • Quando várias instâncias de migração usam o mesmo banco de dados SQL Server de origem, seus módulos de coleta de dados incrementais operam independentemente.

  • Se uma tarefa falhar, a equipe de suporte do DTS tentará restaurá-la em até oito horas. Durante a restauração, eles podem reiniciar a tarefa ou ajustar seus parâmetros.

    Nota

    Apenas os parâmetros da tarefa DTS são modificados — não os parâmetros do banco de dados. Os parâmetros que podem ser ajustados incluem aqueles listados em Modificar parâmetros da instância.

  • O SQL Server é um banco de dados comercial e de código fechado cujo formato de log pode causar problemas inevitáveis durante o CDC incremental e a análise no DTS. Antes de habilitar o DTS para sincronização incremental a partir de uma origem SQL Server em ambiente de produção, realize testes abrangentes de prova de conceito (POC) que cubram todos os cenários de alteração de negócios, ajustes de schema e testes de estresse de carga máxima. A consistência entre a lógica do seu ambiente de produção e a fase de POC é essencial para operações estáveis do DTS.

  • Durante a migração incremental de dados, rollbacks parciais de transações no banco de dados de origem não são suportados e podem ser ignorados.

Casos especiais

  • Se a origem for uma instância ApsaraDB RDS for SQL Server, o DTS cria uma conta de sistema chamada rdsdt_dtsacct na instância para a migração de dados. Não exclua essa conta nem altere sua senha enquanto a tarefa estiver em execução. Caso contrário, a tarefa poderá falhar. Para mais informações, consulte Contas de sistema.

  • Se o destino for uma instância ApsaraDB RDS for SQL Server, o DTS cria o banco de dados automaticamente. No entanto, se o nome do banco de dados não seguir as convenções de nomenclatura do ApsaraDB RDS for SQL Server, crie o banco de dados na instância de destino antes de configurar a tarefa de migração. Para mais informações, consulte Criar um banco de dados.

Faturamento

Tipo de migração

Taxa de configuração da instância

Taxa de tráfego de Internet

Migração de schema e migração completa de dados

Gratuito.

Quando o parâmetro Access Method do banco de dados de destino estiver definido como Public IP Address, haverá cobrança de tráfego de Internet. Para mais informações, consulte Visão geral do faturamento.

Migração incremental de dados

Pago. Para mais informações, consulte Visão geral do faturamento.

Tipos de migração

  • Migração de schema

    O DTS migra as definições de schema dos objetos de migração do banco de dados de origem para o banco de dados de destino.

    • O DTS suporta migração de schema para os seguintes objetos: tabelas, views, triggers, sinônimos, stored procedures SQL, funções SQL, plan guides, tipos definidos pelo usuário, regras, padrões e sequências.

    • O DTS não suporta migração de schema para os seguintes objetos: assemblies, service brokers, índices full-text, catálogos full-text, schemas distribuídos, funções distribuídas, stored procedures Common Language Runtime (CLR), funções escalares CLR, funções com valor de tabela CLR, tabelas internas, sistemas ou funções agregadas.

  • Migração completa

    O DTS migra todos os dados históricos dos objetos de migração especificados do banco de dados de origem para o banco de dados de destino.

  • Migração incremental

    Após a conclusão da migração completa, o DTS migra as atualizações incrementais de dados do banco de dados de origem para o banco de dados de destino. A migração incremental permite migrar dados suavemente sem interromper suas aplicações autogerenciadas.

Operações SQL para migração incremental de dados

Tipo

Instrução SQL

DML

INSERT, UPDATE, DELETE

Nota

O DTS não suporta instruções UPDATE que atualizam apenas campos grandes.

DDL

  • CREATE TABLE

  • ALTER TABLE

    Inclui apenas ADD COLUMN e DROP COLUMN.

  • DROP TABLE

  • CREATE INDEX, DROP INDEX

Nota
  • O DTS não suporta transactional DDL. Por exemplo, uma única instrução SQL que adiciona múltiplas colunas ou contém operações DDL e DML pode causar perda de dados.

  • O DTS não suporta operações DDL que envolvam um tipo definido pelo usuário.

  • O DTS não suporta operações online DDL.

  • O DTS não suporta operações DDL que usem uma palavra-chave reservada como nome de atributo.

  • O DTS não suporta operações DDL executadas a partir de uma stored procedure de sistema.

  • O DTS não suporta operações TRUNCATE TABLE.

  • O DTS não suporta partitions ou definições de table definition que contenham funções.

Permissões da conta de banco de dados

Banco de dados

Migração de schema

Migração completa de dados

Migração incremental de dados

Banco de dados SQL Server autogerenciado

Permissão SELECT

Permissão SELECT

sysadmin

Instância ApsaraDB RDS for SQL Server

permissões de leitura e gravação

Para criar e autorizar uma conta de banco de dados, consulte os seguintes tópicos:

Processo de migração de dados

Para evitar falhas de migração devido a dependências de objetos, o DTS migra schemas e dados do banco de dados SQL Server de origem na seguinte ordem:

  1. Migração de schema para tabelas, views, sinônimos, tipos definidos pelo usuário, regras, padrões e plan guides.

  2. Migração completa de dados.

  3. Migração de schema para stored procedures, funções, triggers e chaves estrangeiras.

  4. Migração incremental de dados.

Pré-requisitos

Nota

Para realizar uma migração incremental, configure as definições de log e crie índices clusterizados no seu banco de dados SQL Server autogerenciado antes de configurar a tarefa de migração de dados.

Importante

Se precisar migrar vários bancos de dados, repita as etapas 1 a 3 para cada banco de dados. A não observância disso pode resultar em inconsistência de dados.

  1. Execute o seguinte comando no seu banco de dados SQL Server autogerenciado para alterar o modelo de recuperação do banco de dados de origem para o modelo de recuperação completa.

    use master;
    GO
    ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO

    Parâmetros:

    <database_name>: O nome do banco de dados de origem.

    Exemplo:

    use master;
    GO
    ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE;
    GO
  2. Execute o seguinte comando para criar um backup lógico do banco de dados de origem. Pule esta etapa se já existir um backup lógico.

    BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>';
    GO

    Parâmetros:

    • <database_name>: O nome do banco de dados de origem.

    • <physical_backup_device_name>: O caminho e o nome do arquivo de backup.

    Exemplo:

    BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak';
    GO
  3. Execute o seguinte comando para fazer backup do log de transações do banco de dados de origem.

    BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init;
    GO

    Parâmetros:

    • <database_name>: O nome do banco de dados de origem.

    • <physical_backup_device_name>: O caminho e o nome do arquivo de backup.

    Exemplo:

    BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init;
    GO

Procedimento

  1. Acesse a página da lista de tarefas de migração da região de destino usando um dos métodos a seguir.

    Pelo console do DTS

    1. Faça login no console do Data Transmission Service (DTS).

    2. No painel de navegação à esquerda, clique em Data Migration.

    3. No canto superior esquerdo da página, selecione a região onde a instância de migração está localizada.

    Pelo console do DMS

    Nota

    As operações reais podem variar dependendo do modo e do layout do console do DMS. Para mais informações, consulte Console do modo simples e Personalizar o layout e o estilo do console do DMS.

    1. Faça login no console do Data Management (DMS).

    2. Na barra de menu superior, escolha Data + AI > Data Transmission (DTS) > Data Migration.

    3. À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.

  2. Clique em Create Task para acessar a página de configuração da tarefa.

  3. Configure os bancos de dados de origem e de destino.

    Aviso

    Após selecionar as instâncias de origem e de destino, recomendamos ler atentamente os limites exibidos na parte superior da página. Caso contrário, a tarefa poderá falhar ou ocorrer inconsistência de dados.

    Categoria

    Parâmetro

    Descrição

    N/A

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser único.

    Source Database

    Select Existing Connection

    • Para usar uma instância de banco de dados que foi adicionada ao sistema (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.

      Nota

      No console do DMS, este parâmetro é denominado Select a DMS database instance..

    • Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.

    Database Type

    Selecione SQL Server.

    Connection Type

    Selecione Public IP Address.

    Nota

    Se o seu banco de dados de origem for autogerenciado, conclua as preparações necessárias. Para mais informações, consulte Visão geral da preparação.

    Instance Region

    Selecione a região onde o banco de dados SQL Server autogerenciado está localizado.

    Hostname or IP Address

    Insira o endpoint do banco de dados SQL Server autogerenciado. Neste exemplo, é usado um endereço IP público.

    Port Number

    Insira a porta de serviço do banco de dados SQL Server autogerenciado. O valor padrão é 1433.

    Database Account

    Insira a conta do banco de dados SQL Server autogerenciado. Para informações sobre as permissões necessárias, consulte Permissões da conta de banco de dados.

    Database Password

    Insira a senha da conta do banco de dados.

    Encryption

    Selecione Non-encrypted ou SSL-encrypted com base nos seus requisitos de negócio.

    • Se a criptografia SSL estiver desativada para o banco de dados de origem, selecione Non-encrypted.

    • Se a criptografia SSL estiver ativada para o banco de dados de origem, selecione SSL-encrypted. Por padrão, o DTS confia no certificado do servidor.

    Destination Database

    Select Existing Connection

    • Para usar uma instância de banco de dados que foi adicionada ao sistema (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.

      Nota

      No console do DMS, este parâmetro é denominado Select a DMS database instance..

    • Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.

    Database Type

    Selecione SQL Server.

    Connection Type

    Selecione Alibaba Cloud Instance.

    Instance Region

    Selecione a região onde a instância de destino ApsaraDB RDS for SQL Server está localizada.

    Instance ID

    Selecione o ID da instância de destino ApsaraDB RDS for SQL Server.

    Database Account

    Insira a conta da instância de destino ApsaraDB RDS for SQL Server. Para informações sobre as permissões necessárias, consulte Permissões da conta de banco de dados.

    Database Password

    Insira a senha da conta do banco de dados.

    Encryption

    Selecione Non-encrypted ou SSL-encrypted com base nos seus requisitos de negócio.

    • Se a criptografia SSL estiver desativada para o banco de dados de destino, selecione Non-encrypted.

    • Se a criptografia SSL estiver ativada para o banco de dados de destino, selecione SSL-encrypted. Por padrão, o DTS confia no certificado do servidor.

  4. Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página. Na caixa de diálogo CIDR Blocks of DTS Servers que aparece, clique em Test Connectivity.

    Nota

    Garanta que os segmentos de endereço IP do serviço DTS sejam adicionados automática ou manualmente às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso dos servidores DTS. Para mais informações, consulte Adicionar endereços IP de servidores DTS a uma lista de permissões.

  5. Configure os objetos da tarefa.

    1. Na página Configure Objects, configure os objetos que deseja migrar.

      Parâmetro

      Descrição

      Migration Types

      • Se precisar realizar apenas uma migração completa, selecione Schema Migration e Full Data Migration.

      • Para realizar uma migração sem tempo de inatividade, selecione Schema Migration, Full Data Migration e Incremental Data Migration.

      Nota
      • Se não selecionar Schema Migration, garanta que exista um banco de dados e tabelas para receber os dados no banco de dados de destino. Também é possível usar o recurso de mapeamento de nomes de objetos na caixa Selected Objects, conforme necessário.

      • Se não selecionar Incremental Data Migration, não grave novos dados na instância de origem durante a migração de dados para garantir a consistência dos dados.

      Method to Migrate Triggers in Source Database

      Selecione um método para migrar triggers com base nos seus requisitos. Se os objetos a serem migrados não envolverem triggers, não é necessário configurar este parâmetro. Para mais informações, consulte Configurar um método de sincronização ou migração para triggers.

      Nota

      Este parâmetro só pode ser configurado se você selecionar Migration Types e Schema Migration para Incremental Data Migration.

      SQL Server Incremental Synchronization Mode

      • Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing):

        • Vantagens:

          • Suporta cenários que envolvem tabelas heap de origem, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas.

          • Oferece alta estabilidade de link. Este modo pode obter instruções DDL completas e suporta uma ampla gama de cenários DDL.

        • Desvantagens:

          • O DTS cria o trigger dts_cdc_sync_ddl, a tabela de heartbeat dts_sync_progress e a tabela de armazenamento de DDL dts_cdc_ddl_history no banco de dados de origem. Ele também ativa o CDC no nível do banco de dados e o CDC para algumas tabelas.

          • Não é possível executar instruções SELECT INTO, TRUNCATE ou RENAME COLUMN em tabelas com CDC ativado no banco de dados de origem. Não é possível excluir manualmente triggers criados pelo DTS no banco de dados de origem.

      • Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):

        • Vantagem:

          Este modo não é intrusivo para o banco de dados de origem.

        • Desvantagem:

          Este modo não suporta cenários que envolvam tabelas heap de origem, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas.

      • Polling and querying CDC instances for incremental synchronization:

        • Vantagens:

          • Suporta migração completa e incremental quando o banco de dados de origem é Amazon RDS for SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure SQL Server on Virtual Machine ou Google Cloud SQL for SQL Server.

          • Este modo usa o componente CDC nativo do SQL Server para obter dados incrementais, o que melhora a estabilidade da migração incremental e reduz o uso de largura de banda de rede.

        • Desvantagens:

          • A conta do banco de dados de origem usada pela instância DTS deve ter permissões para ativar o CDC. A migração incremental de dados tem uma latência de cerca de 10 segundos.

          • Ao migrar várias tabelas em vários bancos de dados, você pode encontrar problemas de estabilidade e desempenho.

      Nota

      Este parâmetro está disponível apenas se você selecionar Migration Types para Incremental Data Migration.

      The maximum number of tables for which CDC is enabled that DTS supports.

      Você pode definir um limite para o número de tabelas com CDC ativado para a instância de migração atual com base nos seus requisitos de negócio. O valor padrão é 1.000.

      Nota

      Este parâmetro não está disponível se você definir SQL Server Incremental Synchronization Mode como Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).

      Processing Mode of Conflicting Tables

      • Precheck and Report Errors: Verifica se existem tabelas com os mesmos nomes no banco de dados de destino. Se não existirem tabelas com os mesmos nomes, a pré-verificação é aprovada. Se existirem tabelas com os mesmos nomes, um erro é relatado durante a pré-verificação e a tarefa de migração de dados não inicia.

        Nota

        Se uma tabela no banco de dados de destino tiver o mesmo nome, mas não puder ser facilmente excluída ou renomeada, altere o nome da tabela no banco de dados de destino. Para mais informações, consulte Mapeamento de nomes de objetos.

      • Ignore Errors and Proceed: Ignora a verificação de tabelas com os mesmos nomes.

        Aviso

        Selecionar Ignore Errors and Proceed pode causar inconsistência de dados e riscos aos negócios. Por exemplo:

        • Se os schemas das tabelas forem consistentes e um registro no banco de dados de destino tiver o mesmo valor de chave primária que um registro no banco de dados de origem:

          • Durante a migração completa, o DTS mantém o registro no banco de dados de destino. O registro do banco de dados de origem não é migrado.

          • Durante a migração incremental, o DTS não mantém o registro no banco de dados de destino. O registro do banco de dados de origem sobrescreve o registro no banco de dados de destino.

        • Se os schemas das tabelas forem inconsistentes, apenas algumas colunas de dados poderão ser migradas, ou a migração poderá falhar. Prossiga com cautela.

      Source Objects

      Na caixa Source Objects, clique nos objetos a serem migrados e, em seguida, clique em Right arrow para movê-los para a caixa Selected Objects.

      Nota

      A granularidade para seleção de objetos de migração é schema, tabela e coluna. Se você selecionar apenas tabelas ou colunas como objetos de migração, outros objetos como views, triggers e stored procedures não serão migrados para o banco de dados de destino.

      Selected Objects

      Nota
      • Se você usar o recurso de mapeamento de nomes de objetos, a migração de outros objetos que dependem dos objetos mapeados poderá falhar.

      • Para filtrar dados usando uma cláusula WHERE, clique com o botão direito do mouse em uma tabela na caixa Selected Objects e defina a condição de filtro na caixa de diálogo que aparece. Para mais informações, consulte Configurar condições de filtro.

      • Para selecionar as operações SQL a serem migradas no nível do banco de dados ou da tabela, clique com o botão direito do mouse no objeto desejado na caixa Selected Objects e selecione as operações SQL necessárias na caixa de diálogo que aparece.

    2. 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 agenda tarefas em um cluster compartilhado. Não é necessário selecionar um. Se desejar tarefas mais estáveis, adquira um cluster dedicado para executar tarefas de migração do DTS.

      Retry Time for Failed Connections

      Após o início da tarefa de migração, se a conexão com o banco de dados de origem ou de destino falhar, o DTS relatará um erro e iniciará imediatamente a tentativa de reconexão. A duração padrão de nova tentativa é de 720 minutos. Você pode personalizar o tempo de nova tentativa para um valor entre 10 e 1440 minutos. Recomendamos definir a duração para mais de 30 minutos. Se o DTS se reconectar aos bancos de dados de origem e de destino dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.

      Nota
      • Para várias instâncias DTS que compartilham a mesma origem ou destino, o tempo de nova tentativa de rede é determinado pela configuração da última tarefa criada.

      • Como há cobrança pela tarefa durante o período de nova tentativa de conexão, recomendamos personalizar o tempo de nova tentativa com base nas necessidades do seu negócio, ou liberar a instância DTS o mais rápido possível após a liberação das instâncias de banco de dados de origem e de destino.

      Retry Time for Other Issues

      Após o início da tarefa de migração, se ocorrer um problema que não seja de conectividade, como uma exceção de execução DDL ou DML, no banco de dados de origem ou de destino, o DTS relatará um erro e iniciará imediatamente a tentativa de repetir a operação. A duração padrão de nova tentativa é de 10 minutos. Você pode personalizar o tempo de nova tentativa para um valor entre 1 e 1440 minutos. Recomendamos definir a duração para mais de 10 minutos. Se as operações relacionadas forem bem-sucedidas dentro da duração de nova tentativa especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.

      Importante

      O valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.

      Enable Throttling for Full Data Migration

      Durante a migração completa, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Se necessário, ative o limitador de velocidade para a tarefa de migração completa. Defina Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) para reduzir a carga no banco de dados de destino.

      Nota
      • Este item de configuração está disponível apenas se você selecionar Full Data Migration para Migration Types.

      • Você também pode ajustar a velocidade da migração completa depois que a instância de migração estiver em execução.

      Enable Throttling for Incremental Data Migration

      Se necessário, também é possível definir limites de velocidade para a tarefa de migração incremental. Defina RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s) para reduzir a carga no banco de dados de destino.

      Nota
      • Este item de configuração está disponível apenas se você selecionar Incremental Data Migration para Migration Types.

      • Você também pode ajustar a velocidade da migração incremental depois que a instância de migração estiver em execução.

      Environment Tag

      Selecione uma tag de ambiente para identificar a instância conforme necessário. Este parâmetro é opcional.

      Configure ETL

      Escolha se deseja ativar o recurso de extração, transformação e carregamento (ETL). Para mais informações, consulte O que é ETL? Valores válidos:

      Monitoring and Alerting

      Selecione se deseja definir alertas e receber notificações de alerta com base nas necessidades do seu negócio.

      • No: Não define alerta.

      • Yes: Configure alertas definindo um limiar de alerta e um notificações de alerta. Se uma migração falhar ou a latência exceder o limiar, o sistema enviará uma notificação de alerta.

    3. Clique em Next: Data Validation para configurar uma tarefa de validação de dados.

      Para mais informações sobre o recurso de validação de dados, consulte Configurar validação de dados.

  6. Salve a tarefa e execute uma pré-verificação.

    • Para visualizar os parâmetros de configuração desta instância ao chamar a operação da API, passe o ponteiro do mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters no balão que aparece.

    • Se não precisar visualizar ou já tiver terminado de visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.

    Nota
    • Antes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só inicia após ser aprovada na pré-verificação.

    • Se a pré-verificação falhar, clique em View Details ao lado do item de verificação com falha, corrija o problema conforme a instrução e execute a pré-verificação novamente.

    • Se um aviso for relatado durante a pré-verificação:

      • Para itens de verificação que não podem ser ignorados, clique em View Details ao lado do item com falha, corrija o problema conforme a instrução e execute a pré-verificação novamente.

      • Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Se optar por ignorar um aviso, isso pode causar problemas como inconsistência de dados e representar riscos aos seus negócios.

  7. Adquira a instância.

    1. Quando a Success Rate for de 100%, clique em Next: Purchase Instance.

    2. Na página Purchase, selecione a especificação de link para a instância de migração de dados. Para mais informações, consulte a tabela a seguir.

      Categoria

      Parâmetro

      Descrição

      New Instance Class

      Resource Group Settings

      Selecione o grupo de recursos ao qual a instância pertence. O valor padrão é default resource group. Para mais informações, consulte O que é Resource Management?

      Instance Class

      O DTS fornece especificações de migração com diferentes níveis de desempenho. A especificação do link afeta a velocidade da migração. Selecione uma especificação com base no seu cenário de negócios. Para mais informações, consulte Especificações de link de migração de dados.

    3. Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Clique em Buy and Start. Na caixa de diálogo OK que aparece, clique em OK.

      Visualize o progresso da tarefa de migração na página de lista Data Migration Tasks.

      Nota
      • Se a tarefa de migração não incluir migração incremental, ela será interrompida automaticamente após a conclusão da migração completa. Após a interrupção da tarefa, seu Status muda para Completed.

      • Se a tarefa de migração incluir migração incremental, ela não será interrompida automaticamente. A tarefa de migração incremental continua em execução. Enquanto a tarefa de migração incremental estiver em execução, o Status da tarefa será Running.