Todos os produtos
Search
Central de documentação

Data Transmission Service:Migrate self-managed SQL Server to RDS for SQL Server

Última atualização: Sep 22, 2026

O Data Transmission Service (DTS) permite migrar um banco de dados SQL Server autogerenciado para uma instância do 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 Overview of migration solutions.

  • Crie a instância de destino do ApsaraDB RDS for SQL Server. Para saber mais, consulte Create an ApsaraDB RDS for SQL Server instance.

  • O espaço de armazenamento da instância de destino do ApsaraDB RDS for SQL Server deve ser superior ao espaço utilizado pelo banco de dados SQL Server autogerenciado de origem.

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

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

    • Os backups de log de um único banco de dados são realizados mais de uma vez por hora.

    • Um único banco de dados executa mais de 100 operações de Data Definition Language (DDL) por hora.

    • 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 presença desses tipos de tabela no banco de dados de origem:

      1. Verifique se há 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. Verifique se há 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. Verifique se há colunas de chave primária que não estã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. Verifique se há 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. Verifique se há 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. Verifique se há 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. A largura de banda insuficiente reduz a velocidade de migração de dados.

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

  • Ao selecionar e editar tabelas específicas para migração (por exemplo, mapear nomes de tabelas ou colunas), lembre-se de que uma única tarefa migra no máximo 1.000 tabelas. Caso exceda esse limite, a tarefa falhará no envio. Divida as tabelas em várias tarefas ou configure uma tarefa para migrar o banco de dados inteiro.

  • Cada 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.

  • Ao configurar uma tarefa para migrar objetos específicos em vez de um banco de dados inteiro, não migre objetos com o mesmo nome de tabela, mas schemas diferentes, para o mesmo banco de dados de destino na mesma tarefa.

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

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

    • Para migração de dados 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 de dados completa e incremental, retenha 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 pode 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.

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

    • O valor do campo srvname na view sys.sysservers deve ser igual ao valor de retorno da 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 o banco de dados de origem for uma instância do ApsaraDB RDS for SQL Server, o proprietário do banco de dados deve ser sqlsa.

    • Se o banco de dados de origem for a Enterprise Edition, deve ser o SQL Server 2008 ou posterior.

    • Se o banco de dados de origem for a Standard Edition, deve ser o SQL Server 2016 SP1 ou posterior.

    • Se o banco de dados de origem for o 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 possui gargalos de desempenho; portanto, não limpe os logs do banco de dados de origem prematuramente. Caso contrário, a tarefa do DTS pode 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 da tabela. Caso contrário, a tarefa de migração de dados falhará.

    • Na migração exclusivamente completa, 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 a consistência dos dados em tempo real, selecione Schema Migration, Full Data Migration e Incremental Data Migration.

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

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

  • Se o banco de dados de origem for uma instância do ApsaraDB RDS for SQL Server e a tarefa incluir migração incremental, certifique-se de desativar a Transparent Data Encryption (TDE) para garantir a estabilidade da tarefa. Para mais informações, consulte Disable TDE.

  • O uso do comando sp_rename para renomear objetos, como procedimentos armazenados, antes da execução da tarefa de migração de schema pode fazer com que a tarefa não funcione conforme o 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, se você executar as seguintes instruções SQL consecutivamente, a tarefa falhará.

    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 do ApsaraDB RDS for SQL Server na Web edition, 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 a 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 causados pela 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 dos seguintes tipos de dados: 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 à inconsistência de dados ou falha na tarefa.

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

  • Ao 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 no modo de análise híbrida baseada em logs.

  • Ao 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. Certifique-se de que o job do CDC no banco de dados de origem esteja em execução conforme o esperado. 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.

    • Ative o CDC para no máximo 1.000 tabelas em uma única tarefa de migração. Caso contrário, a tarefa pode apresentar alta latência ou ficar 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, as limitações internas do mecanismo do SQL Server podem causar bloqueio temporário de tabelas no banco de dados de origem.

  • Ao 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 do 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, enquanto uma conta privilegiada é necessária para o nível da tabela.

      Nota
      • A conta com mais privilégios (administrador do 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 para todas as especificações. Para bancos de dados adquiridos com base no modelo DTU, o CDC pode ser ativado apenas para camadas de service S3 ou superior.

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

      • Não ative o CDC para tabelas com í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, as 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 e fazendo polling da 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 pode apresentar alta latência ou ficar 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.

    • Não há suporte para operações consecutivas de adição ou remoção de colunas (mais de duas operações DDL ADD COLUMN ou DROP COLUMN em um minuto). Caso contrário, a tarefa pode 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 pode falhar ou pode ocorrer perda de dados.

  • Ao migrar dados entre diferentes versões do SQL Server, verifique a compatibilidade com antecedência.

  • Para garantir relatórios de latência precisos 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 gatilho 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 no nível do banco de dados e no nível da tabela. Para tabelas onde o CDC está ativado, a taxa de alteração de dados não deve exceder 1.000 linhas por segundo (RPS).

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

  • Durante a migração completa, operações INSERT simultâneas podem causar fragmentação nas tabelas de destino. Portanto, o espaço de armazenamento da tabela no banco de dados de destino pode ser maior do que no banco de dados de origem após a migração.

  • Verifique se a precisão usada pelo DTS para migrar colunas do tipo FLOAT ou DOUBLE atende aos seus requisitos de negócios. O DTS usa a função ROUND(COLUMN,PRECISION) para ler valores dessas colunas. Se a precisão não for definida explicitamente, o DTS migra 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 transferir suas cargas de trabalho para a instância de destino, encerre ou libere a tarefa de migração. Como alternativa, 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 incluir migração incremental, não realize operações de reindexação. Isso pode causar falha na tarefa ou resultar em perda de dados.

    Nota

    Não modifique a chave primária de uma tabela com CDC ativado.

  • Se o número de tabelas com CDC ativado em uma única tarefa 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 com antecedência.

    Nota

    Por padrão, um job do CDC pode processar um tamanho máximo de dados de 64 KB para um único campo.

  • Para realizar a migração incremental, desative gatilhos e chaves estrangeiras ativados 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 de forma independente.

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

    Nota

    Apenas os parâmetros da tarefa do DTS são modificados, e não os parâmetros do banco de dados. Os parâmetros que podem ser ajustados incluem aqueles listados em Modify instance parameters.

  • 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 ativar o DTS para sincronização incremental a partir de uma origem SQL Server em produção, realize testes abrangentes de prova de conceito (POC). 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, não há suporte para rollbacks parciais de transação no banco de dados de origem, e eles podem ser ignorados.

Casos especiais

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

  • Se o destino for uma instância do 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 Create a database.

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 está definido como Public IP Address, há cobrança pelo tráfego de internet. Para mais informações, consulte Billing overview.

Migração incremental de dados

Cobrado. Para mais informações, consulte Billing overview.

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 a migração de schema dos seguintes objetos: tabelas, views, gatilhos, sinônimos, procedimentos armazenados SQL, funções SQL, plan guides, tipos definidos pelo usuário, regras, padrões e sequências.

    • O DTS não suporta a migração de schema dos seguintes objetos: assemblies, service brokers, índices de texto completo, catálogos de texto completo, schemas distribuídos, funções distribuídas, procedimentos armazenados Common Language Runtime (CLR), funções CLR com valor escalar, funções CLR com valor de tabela, tabelas internas, sistemas ou funções de agregação.

  • 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 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 de forma suave, 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 SQL statement que adiciona várias colunas ou contém operações DDL e DML pode causar perda de dados.

  • O DTS não suporta operações DDL que envolvem um user-defined type.

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

  • O DTS não suporta operações DDL que usam uma reserved keyword como nome de atributo.

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

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

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

Permissões da conta do 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 do 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 procedimentos armazenados, funções, gatilhos 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 falta dessa ação 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 para o 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 para o 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 seguintes métodos.

    Pelo console do DTS

    1. Acesse o 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 com base no modo e no layout do console do DMS. Para mais informações, consulte Simple mode console e Customize the layout and style of the DMS console.

    1. Acesse o 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, leia atentamente os limites exibidos na parte superior da página. Caso contrário, a tarefa pode falhar ou pode ocorrer inconsistência de dados.

    Categoria

    Parâmetro

    Descrição

    N/A

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Especifique um nome descritivo para fácil 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 added to the system (criada ou salva), selecione a instância desejada na lista suspensa. O sistema configurará automaticamente as informações do banco de dados abaixo.

      Nota

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

    • Se não registrou a instância do 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.

    Access Method

    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 Preparation overview.

    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, usa-se um endereço IP público.

    Port Number

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

    Database Account

    Insira a conta para o banco de dados SQL Server autogerenciado. Para obter informações sobre as permissões necessárias, consulte Database account permissions.

    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ócios.

    • 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 added to the system (criada ou salva), selecione a instância desejada na lista suspensa. O sistema configurará automaticamente as informações do banco de dados abaixo.

      Nota

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

    • Se não registrou a instância do 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.

    Access Method

    Selecione Alibaba Cloud Instance.

    Instance Region

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

    Instance ID

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

    Database Account

    Insira a conta para a instância de destino do ApsaraDB RDS for SQL Server. Para obter informações sobre as permissões necessárias, consulte Database account permissions.

    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ócios.

    • 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

    Certifique-se de adicionar os segmentos de endereço IP do service DTS automática ou manualmente às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso a partir dos servidores do DTS. Para mais informações, consulte Add DTS server IP addresses to a whitelist.

  5. Configure os objetos da tarefa.

    1. Na página Configure Objects, configure os objetos a serem migrados.

      Parâmetro

      Descrição

      Migration Types

      • Para 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. Use também o recurso de mapeamento de nome de objeto 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.

      Method to Migrate Triggers in Source Database

      Selecione um método para migrar gatilhos com base nos seus requisitos. Se os objetos a serem migrados não envolverem gatilhos, não é necessário configurar este parâmetro. Para mais informações, consulte Configure a synchronization or migration method for triggers.

      Nota

      Configure este parâmetro apenas se 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.

          • Fornece 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 gatilho 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 execute instruções SELECT INTO, TRUNCATE ou RENAME COLUMN em tabelas com CDC ativado no banco de dados de origem. Não exclua manualmente gatilhos 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 envolvem 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 do 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 fica 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.

      Defina 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ócios. 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 é iniciada.

        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 Object name mapping.

      • 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 podem ser migradas, ou a migração pode 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 selecionar objetos de migração é schema, tabela e coluna. Caso selecione apenas tabelas ou colunas como objetos de migração, o DTS não migra outros objetos, como views, gatilhos e procedimentos armazenados, para o banco de dados de destino.

      Selected Objects

      • Para alterar o nome de um único objeto de migração na instância de destino, clique com o botão direito do mouse no objeto na caixa Selected Objects. Para mais informações, consulte Map individual schema, table, and column names.

      • Para alterar os nomes de vários objetos de migração na instância de destino, clique em Selected Objects no canto superior direito da caixa Batch Edit. Para mais informações, consulte Map multiple schema, table, and column names.

      Nota
      • O uso do recurso de mapeamento de nome de objeto pode causar falha na migração de outros objetos dependentes.

      • 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 Configure filter conditions.

      • 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. Para tarefas mais estáveis, adquira um dedicated cluster 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 relata um erro e começa imediatamente a tentar reconectar. A duração padrão de nova tentativa é de 720 minutos. Personalize o tempo de nova tentativa para um valor de 10 a 1440 minutos. Defina 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 é retomada automaticamente. Caso contrário, a tarefa falha.

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

      • Como há cobrança pela tarefa durante o período de nova tentativa de conexão, personalize o tempo de nova tentativa com base nas suas necessidades de negócios ou libere a instância do 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 relata um erro e começa imediatamente a tentar repetir a operação. A duração padrão de nova tentativa é de 10 minutos. Personalize o tempo de nova tentativa para um valor de 1 a 1440 minutos. Defina 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 é retomada automaticamente. Caso contrário, a tarefa falha.

      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 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 fica disponível apenas se você selecionar Full Data Migration para Migration Types.

      • Também é possível adjust the full migration speed após a instância de migração estar em execução.

      Enable Throttling for Incremental Data Migration

      Se necessário, defina 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 fica disponível apenas se você selecionar Incremental Data Migration para Migration Types.

      • Também é possível adjust the incremental migration speed após a instância de migração estar em execução.

      Environment Tag

      Selecione uma tag de ambiente para identificar a instância com base nos seus requisitos. Este parâmetro é opcional.

      Configure ETL

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

      Monitoring and Alerting

      Defina se deseja receber alertas e notificações com base nas suas necessidades de negócios.

      • No: Não define um alerta.

      • Yes: Configure alertas definindo um alert threshold e um alert notifications. Se uma migração falhar ou a latência exceder o limiar, o sistema envia 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 Configure data validation.

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

    • visualize os parâmetros de configuração desta instância ao chamar a operação da API, passando o ponteiro do mouse sobre o botão Next: Save Task Settings and Precheck e clicando em Preview OpenAPI parameters na bolha que aparece.

    • Caso não precise visualizar ou já tenha 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ó é iniciada 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 com base na 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 com base na instrução e execute a pré-verificação novamente.

      • Para itens de verificação que podem ser ignorados, confirme os detalhes do alerta clicando em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Ignorar um aviso pode causar problemas como inconsistência de dados e representar riscos para o seu negócio.

  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 é o grupo de recursos padrão (default resource group). Para mais informações, consulte What is 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 Data migration link specifications.

    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, o 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.