Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronização de dados entre instâncias do RDS for SQL Server

Última atualização: Oct 12, 2026

Utilize o DTS para sincronizar dados entre instâncias do ApsaraDB RDS for SQL Server.

Pré-requisitos

  • As instâncias de origem e de destino do ApsaraDB RDS for SQL Server já devem estar criadas. Para verificar as versões compatíveis, consulte {{XREF_0}}. Para criar uma instância, consulte {{XREF_1}}.

    Importante

    No modo híbrido de análise baseada em logs (quando o parâmetro SQL Server Incremental Synchronization Mode está definido como Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables), as seguintes versões e edições do banco de dados de origem são suportadas:

    • Edição Enterprise ou Enterprise Evaluation: 2012, 2014, 2016, 2019, 2022 ou 2025.

    • Edição Standard: 2016, 2019, 2022 ou 2025.

  • A instância de destino do ApsaraDB RDS for SQL Server precisa ter mais espaço de armazenamento do que a instância de origem do ApsaraDB RDS for SQL Server.

  • Ao sincronizar dados de um SQL Server autogerenciado para uma instância do ApsaraDB RDS for SQL Server, recomenda-se utilizar o recurso de backup de banco de dados do ApsaraDB RDS for SQL Server caso alguma das condições abaixo se aplique. Para mais informações, 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.

    • Backups de log são executados mais de uma vez por hora em um único banco de dados.

    • Mais de 100 operações de Linguagem de Definição de Dados (DDL) são realizadas 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:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   
      2. Verificar tabelas sem chave primária:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   
      3. Verificar colunas de chave primária não incluídas no índice clusterizado:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   
      4. Verificar tabelas compactadas no banco de dados de origem:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   
      5. Verificar tabelas que contêm colunas computadas:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   
      6. Verificar tabelas que contêm colunas esparsas:

        USE [<your db name>];
        
        DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
        # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
        
        EXECUTE [sys].[sp_cdc_disable_db];   

Observações de uso

Nota

O DTS não sincroniza chaves estrangeiras do banco de dados de origem para o banco de dados de destino. Consequentemente, operações em cascata e de exclusão no banco de dados de origem não são replicadas no destino.

Tipo

Descrição

Limitações do banco de dados de origem

  • As tabelas selecionadas para sincronização devem possuir chave primária ou restrição única. Caso contrário, podem ocorrer dados duplicados no banco de dados de destino.

  • Se uma tarefa de sincronização envolver mais de 5.000 tabelas no nível de tabela e exigir edições de objetos, como mapeamento de nomes de colunas, divida as tabelas em múltiplas tarefas.

  • Uma única tarefa de sincronização suporta no máximo 10 bancos de dados. Exceder esse limite pode comprometer a estabilidade e o desempenho. Nessa situação, distribua as tabelas em várias tarefas.

  • Não há suporte para sincronização de tabelas otimizadas para memória.

  • Ao configurar a tarefa para sincronizar objetos específicos em vez de todo o banco de dados, não é possível sincronizar objetos com o mesmo nome de tabela, mas schemas diferentes, para o mesmo banco de dados de destino dentro dessa tarefa.

  • O Data Transmission Service (DTS) utiliza a função fn_log para obter logs do banco de dados de origem. Essa função apresenta gargalos de desempenho. Evite limpar prematuramente os logs do banco de dados de origem, pois isso pode causar falha na tarefa.

  • Logs de transação:

    • Ative os logs de transação, defina o modelo de recuperação como Full e garanta que um backup físico completo tenha sido concluído.

    • Para tarefas de sincronização incremental, o DTS exige que os logs de transação do banco de dados de origem sejam retidos por pelo menos 24 horas. Em tarefas que incluem sincronização completa e incremental, a retenção deve ser de no mínimo 7 dias. Após a conclusão da sincronização completa, altere o período de retenção para 24 horas ou mais. Se o DTS não conseguir acessar os logs devido a um período de retenção insuficiente, a tarefa poderá falhar. Em casos extremos, isso pode resultar em inconsistência ou perda de dados. Problemas decorrentes de retenção de logs inferior ao exigido pelo DTS não são cobertos pelo acordo de nível de serviço (SLA).

  • Para ativar o Change Data Capture (CDC) nas tabelas do banco de dados de origem, é necessário atender às condições abaixo. Caso contrário, a pré-verificação falhará.

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

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

    • Para bancos de dados na edição Enterprise, a versão deve ser SQL Server 2008 ou superior.

    • Para bancos de dados na edição Standard, a versão deve ser SQL Server 2016 SP1 ou superior.

    • Caso o banco de dados de origem seja SQL Server 2017 (edição Standard ou Enterprise), atualize-o para uma versão mais recente.

  • Operações DDL não são sincronizadas se o banco de dados de origem for uma instância somente leitura.

  • Quando o banco de dados de origem é um Azure SQL Database, cada instância de sincronização pode replicar dados de apenas um banco de dados.

  • Desative o recurso Transparent Data Encryption (TDE) se o banco de dados de origem for uma instância do ApsaraDB RDS for SQL Server, garantindo assim a estabilidade da sincronização. Para mais detalhes, consulte {{XREF_2}}.

  • O uso do comando sp_rename para alterar nomes de objetos, como stored procedures, antes da execução da tarefa de sincronização de schema pode gerar resultados inesperados ou falhas.

    Nota

    Recomenda-se utilizar o comando ALTER para renomear objetos no banco de dados.

  • No modo híbrido de análise de logs, evite executar múltiplas operações de adição ou remoção de colunas em curto intervalo (menos de 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('');
  • Evite executar operações DDL que alterem schemas de bancos de dados ou tabelas durante a sincronização de schema ou a sincronização completa. Tais ações provocam falha na tarefa.

    Nota

    Durante a sincronização completa, o DTS consulta o banco de dados de origem, criando bloqueios de metadados que podem impedir operações DDL nesse banco.

  • Se o banco de dados de origem for uma instância Web Edition do ApsaraDB RDS for SQL Server, selecione Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) no parâmetro SQL Server Incremental Synchronization Mode durante a configuração da tarefa.

  • Mantenha o parâmetro de modo de processamento de transações READ_COMMITTED_SNAPSHOT ativado no banco de dados de origem durante a sincronização completa para evitar que bloqueios compartilhados afetem a escrita de dados. A desativação pode causar inconsistência de dados e falhas na instância. Exceções resultantes não são cobertas pelo SLA do DTS.

Outras limitações

  • Não há suporte para sincronização dos seguintes tipos de dados: CURSOR, ROWVERSION, SQL_VARIANT, HIERARCHYID, POLYGON, GEOMETRY e GEOGRAPHY.

  • O DTS não realiza sincronização completa ou incremental se não for possível gravar dados em um campo TIMESTAMP no banco de dados de destino. Isso pode levar a inconsistência de dados ou falha na tarefa.

  • Verifique previamente a compatibilidade ao sincronizar dados entre versões diferentes de bancos de dados.

  • A conta de banco de dados usada na tarefa precisa ter permissões de Owner no banco de dados de destino para sincronizar triggers da origem.

  • Ao selecionar Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported) para SQL Server Incremental Synchronization Mode na etapa Configure Objects, as tabelas sincronizadas devem ter um índice clusterizado que inclua as colunas de chave primária. Tabelas heap, tabelas sem chave primária, tabelas compactadas, tabelas com colunas computadas e tabelas com colunas esparsas não são suportadas. Essas restrições não se aplicam ao modo híbrido de análise de logs.

    Nota

    Para saber como verificar esses tipos de tabela, consulte {{XREF_3}}.

  • Se você escolher Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing) para SQL Server Incremental Synchronization Mode na etapa Configure Objects, as seguintes limitações também se aplicam:

    • A sincronização incremental do DTS depende do componente CDC. Garanta que os jobs de CDC no banco de dados de origem estejam funcionando corretamente para evitar falhas na tarefa.

    • Por padrão, o componente CDC armazena dados incrementais por 3 dias. Utilize o comando exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; para ajustar o período de retenção conforme necessário.

      Nota
      • <time> especifica o tempo em minutos.

      • Recomenda-se definir <time> como 1440 se uma única tabela no banco de dados de origem gerar, em média, mais de 10 milhões de instruções SQL de alteração incremental por dia.

    • A pré-verificação do DTS para sincronização incremental ativa o CDC no banco de dados e nas tabelas de origem. Devido a limitações do mecanismo do SQL Server, esse processo pode causar breves bloqueios no banco de dados de origem.

    • Limite a ativação do CDC a no máximo 1.000 tabelas por tarefa de sincronização. Exceder esse limite pode causar latência ou instabilidade.

  • Ao selecionar Polling and querying CDC instances for incremental synchronization para SQL Server Incremental Synchronization Mode na etapa Configure Objects, observe também as seguintes limitações:

    • A conta do banco de dados de origem utilizada pela instância DTS deve ter permissão para ativar o CDC. Uma conta com a função sysadmin é necessária para ativar o CDC no nível do banco de dados. Já para ativar o CDC no nível da tabela, é necessária uma conta com privilégios elevados.

      Nota
      • A conta de maior privilégio (administrador do servidor) fornecida no console do Azure SQL Database atende a esse requisito. Para bancos de dados no modelo de compra baseado em vCore, todas as camadas de serviço suportam CDC. No modelo baseado em DTU, a camada de serviço deve ser S3 ou superior para haver suporte a CDC.

      • A conta de altos privilégios do Amazon RDS for SQL Server atende a este requisito e permite ativar o CDC no nível do banco de dados para stored procedures.

      • Tabelas com índices columnstore clusterizados não suportam CDC.

      • A pré-verificação do DTS para sincronização incremental ativa o CDC no banco de dados e nas tabelas de origem. Devido a limitações do mecanismo do SQL Server, esse processo pode causar breves bloqueios no banco de dados de origem.

    • O DTS consulta a instância CDC de cada tabela no banco de dados de origem para obter dados incrementais. Portanto, sincronize no máximo 1.000 tabelas para evitar latência ou instabilidade na tarefa.

    • Os dados incrementais armazenados pelo componente CDC são retidos por 3 dias por padrão. Recomenda-se executar o comando exec console.sys.sp_cdc_change_job @job_type = 'cleanup', @retention= <time>; para definir um período de retenção adequado.

    • Nota
      • <time> especifica o tempo em minutos.

      • Recomenda-se definir <time> como 1440 se a média diária de instruções SQL de alteração incremental para uma única tabela no banco de dados de origem exceder 10 milhões.

    • Não é suportada a execução consecutiva de operações DDL para adicionar ou remover colunas (mais de duas operações desse tipo em um minuto), o que pode causar falha na tarefa.

    • Modificar a instância CDC no banco de dados de origem não é suportado e pode resultar em falha na tarefa ou perda de dados.

  • Para garantir monitoramento preciso da latência na sincronização incremental, o DTS cria objetos específicos no banco de dados de origem conforme o modo escolhido. No modo de análise de logs, são criados o trigger dts_cdc_sync_ddl, a tabela de heartbeat dts_sync_progress e a tabela de histórico DDL dts_cdc_ddl_history. No modo híbrido, além desses mesmos objetos, o DTS ativa o CDC no nível do banco de dados e em algumas tabelas. A taxa de alterações de dados nas tabelas com CDC ativado não deve ultrapassar 1.000 RPS.

  • Avalie o desempenho dos bancos de dados de origem e destino antes de iniciar a sincronização e execute a tarefa fora dos horários de pico. A inicialização completa consome recursos de leitura e escrita em ambos os bancos, podendo aumentar a carga.

  • A inicialização completa realiza operações INSERT concorrentes, o que pode fragmentar as tabelas no banco de dados de destino. Como resultado, o espaço ocupado pelas tabelas na instância de destino pode ser maior do que na origem após a inicialização.

  • Durante a sincronização via DTS, não grave dados no banco de dados de destino por nenhuma outra fonte além do próprio DTS. Gravações externas podem causar inconsistência entre origem e destino. Por exemplo, usar o Data Management (DMS) para operações DDL online enquanto outros dados são gravados no destino pode resultar em perda de dados.

  • Evite reconstruir índices durante a sincronização para prevenir falhas na tarefa ou perda de dados.

    Nota

    Não é possível executar operações DDL relacionadas à chave primária em tabelas com CDC ativado.

  • A pré-verificação falhará se o número de tabelas com CDC ativado em uma única tarefa exceder The maximum number of tables for which CDC is enabled that DTS supports..

  • Para gravar mais de 64 KB de dados em um único campo de uma tabela com CDC ativado, ajuste previamente a configuração do banco de dados de origem usando o comando exec sp_configure 'max text repl size', -1;.

    Nota

    Por padrão, um job de CDC processa campos com tamanho máximo de 64 KB.

  • Desative triggers e chaves estrangeiras existentes no banco de dados de destino antes de iniciar a sincronização incremental, caso contrário a tarefa falhará.

  • O recurso Modify Objects to be Synchronized não permite remover bancos de dados da tarefa.

  • Instâncias de sincronização que utilizam o mesmo banco de dados SQL Server como origem possuem módulos independentes de captura de dados incrementais.

  • Em caso de falha na tarefa, a equipe de suporte do DTS tentará restaurá-la em até oito horas, podendo reiniciar a tarefa ou ajustar seus parâmetros.

    Nota

    Apenas parâmetros da tarefa DTS são modificados, não os do banco de dados. Os parâmetros passíveis de ajuste estão listados em {{XREF_4}}.

  • O SQL Server é um banco de dados comercial e de código fechado. Devido a características conhecidas ou desconhecidas de seu formato de log, problemas podem surgir durante a captura (CDC) e análise de alterações incrementais pelo DTS. Antes de usar o DTS para sincronização ou migração incremental de uma origem SQL Server em produção, realize testes abrangentes de prova de conceito (POC). Seus testes devem cobrir todos os cenários de alteração de negócios, modificações de schema e estresse sob carga máxima. Garantir que a lógica de negócios em produção seja idêntica à testada na fase de POC é fundamental para a operação estável e eficiente do DTS.

  • Transações parcialmente revertidas na origem não são suportadas durante a sincronização incremental e podem ser perdidas.

Casos especiais

Quando a instância de origem é um ApsaraDB RDS for SQL Server, o DTS cria a conta rdsdt_dtsacct nessa instância para realizar a sincronização. Não exclua essa conta nem altere sua senha enquanto a tarefa estiver em execução, sob risco de falha. Para mais informações, consulte {{XREF_5}}.

Faturamento

Tipo de sincronização

Preço

Sincronização de schema e sincronização completa de dados

Gratuito.

Sincronização incremental de dados

Pago. Para mais informações, consulte {{XREF_6}}.

Topologias de sincronização

  • Sincronização unidirecional um para um

  • Sincronização unidirecional um para muitos

  • Sincronização unidirecional em cascata

  • Sincronização unidirecional muitos para um

Para descrições detalhadas de cada topologia e seus casos de uso, consulte {{XREF_7}}.

Operações SQL suportadas

Tipo de operação

Instrução SQL

DML

INSERT, UPDATE e DELETE

Nota

O DTS não sincroniza instruções UPDATE que atualizam apenas um campo grande.

DDL

  • CREATE TABLE

  • ALTER TABLE

    Suporte limitado a ADD COLUMN e DROP COLUMN.

  • DROP TABLE

  • CREATE INDEX e DROP INDEX

Nota
  • Operações DDL transacionais não são sincronizadas. Por exemplo, uma única instrução SQL que adiciona múltiplas colunas ou combina operações DDL e DML pode causar perda de dados.

  • Operações DDL envolvendo tipos definidos pelo usuário não são sincronizadas.

  • Não há suporte para sincronização de operações Online DDL.

  • Operações DDL que usam palavras-chave reservadas como nomes de atributos não são sincronizadas.

  • Operações DDL executadas por stored procedures do sistema não são sincronizadas.

  • Operações TRUNCATE TABLE não são sincronizadas.

  • Partições ou funções dentro de uma definição de tabela não são sincronizadas.

Procedimento

  1. Acesse a página de lista de tarefas de sincronização da região de destino. Utilize um dos dois métodos abaixo:

    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 Synchronization.

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

    Pelo console do DMS

    Nota

    As operações reais podem variar dependendo do modo e layout do console DMS. Para mais detalhes, consulte {{XREF_8}} e {{XREF_9}}.

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

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

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

  2. Clique em Create Task para abrir 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 destino, leia atentamente os limites exibidos no topo da página. O descumprimento dessas restrições pode causar falha na tarefa ou inconsistência de dados.

    Seção

    Parâmetro

    Descrição

    N/A

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Recomenda-se 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 esteja {{XREF_10}} (recém-criada ou salva), selecione-a na lista suspensa. As informações serão configuradas automaticamente.

      Nota

      No console do DMS, este item de configuração chama-se Select a DMS database instance..

    • Caso a instância não tenha sido adicionada ao sistema ou você prefira não usar uma instância já cadastrada, configure manualmente as informações abaixo.

    Database Type

    Selecione SQL Server.

    Connection Type

    Selecione Alibaba Cloud Instance.

    Instance Region

    Selecione a região da instância de origem do ApsaraDB RDS for SQL Server.

    Instance ID

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

    Database Account

    Insira a conta do banco de dados da instância de origem do ApsaraDB RDS for SQL Server. A conta deve ter permissões de owner sobre os objetos a serem sincronizados. Uma conta privilegiada atende a esse requisito.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

    Encryption

    Escolha entre Non-encrypted ou SSL-encrypted.

    • Se a criptografia SSL não estiver ativada no banco de dados de origem, selecione Non-encrypted.

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

    Destination Database

    Select Existing Connection

    • Para usar uma instância de banco de dados que esteja {{XREF_11}} (recém-criada ou salva), selecione-a na lista suspensa. As informações serão configuradas automaticamente.

      Nota

      No console do DMS, este item de configuração chama-se Select a DMS database instance..

    • Caso a instância não tenha sido adicionada ao sistema ou você prefira não usar uma instância já cadastrada, configure manualmente as informações abaixo.

    Database Type

    Selecione SQL Server.

    Connection Type

    Selecione Alibaba Cloud Instance.

    Instance Region

    Selecione a região da instância de destino do ApsaraDB RDS for SQL Server.

    Instance ID

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

    Database Account

    Insira a conta do banco de dados da instância de destino do ApsaraDB RDS for SQL Server. A conta deve ter permissões de owner sobre os objetos a serem sincronizados.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

    Encryption

    Escolha entre Non-encrypted ou SSL-encrypted.

    • Se a criptografia SSL não estiver ativada no banco de dados de destino, selecione Non-encrypted.

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

  4. Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.

    Nota
    • Certifique-se de que os blocos CIDR de endereços IP dos servidores DTS foram adicionados às configurações de segurança dos bancos de dados de origem e destino para permitir o acesso. Isso pode ser feito automática ou manualmente. Para mais informações, consulte {{XREF_12}}.

    • Se o banco de dados de origem ou destino for autogerenciado (onde o Access Method não é Alibaba Cloud Instance), clique também em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers.

  5. Configure os objetos da tarefa.

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

      Parâmetro

      Descrição

      Synchronization Types

      Incremental Data Synchronization vem selecionado. Por padrão, você também deve selecionar Schema Synchronization e Full Data Synchronization. Após a pré-verificação, o DTS executa uma sincronização completa dos objetos selecionados da instância de origem para o cluster de destino, servindo como base para a sincronização incremental subsequente.

      Method to Migrate Triggers in Source Database

      Escolha um método para sincronizar triggers conforme sua necessidade. Se não houver triggers para sincronizar, ignore este parâmetro. Para mais informações, consulte {{XREF_13}}.

      Nota

      Este parâmetro só fica disponível quando Schema Synchronization estiver selecionado em Synchronization Types.

      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:

          • Compatível com cenários que envolvem tabelas heap, tabelas sem chave primária, tabelas compactadas e tabelas com colunas computadas no banco de dados de origem.

          • Alta estabilidade do link. Este modo obtém instruções DDL completas e oferece suporte abrangente a 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 DDL dts_cdc_ddl_history no banco de dados de origem. Além disso, ativa o CDC no nível do banco de dados e em algumas tabelas.

          • Não é possível executar instruções SELECT INTO, TRUNCATE, RENAME COLUMN ou modificação de tipo de coluna em tabelas com CDC ativado no banco de dados de origem. O trigger criado pelo DTS não pode ser excluído manualmente.

            Nota

            Tabelas contendo tipos geometry, geography ou hierarchyid não suportam ativação de CDC.

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

        • Vantagens:

          Modo não intrusivo ao banco de dados de origem.

        • Desvantagens:

          Incompatível com cenários que envolvem tabelas heap, tabelas sem chave primária, tabelas compactadas ou tabelas com colunas computadas no banco de dados de origem.

      • Polling and querying CDC instances for incremental synchronization:

        • Vantagens:

          • Suporta sincronizaçã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.

          • Utiliza o componente nativo Change Data Capture (CDC) do SQL Server para obter dados incrementais, tornando a sincronização mais estável e consumindo menos largura de banda de rede.

        • Desvantagens:

          • A conta do banco de dados de origem usada pela instância DTS precisa ter permissão para ativar o CDC. Existe um atraso de aproximadamente 10 segundos na sincronização incremental.

          • Em cenários com múltiplos bancos de dados e tabelas, podem ocorrer riscos de estabilidade e problemas de desempenho.

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

      Esta configuração limita o número de tabelas nas quais o CDC pode ser ativado na instância de sincronização atual. O valor padrão é 1.000.

      Nota

      Este parâmetro não estará disponível se SQL Server Incremental Synchronization Mode estiver definido 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 existe uma tabela com o mesmo nome no banco de dados de destino. Se não existir, a pré-verificação é aprovada. Se existir, a pré-verificação falha e a tarefa não inicia.

        Nota

        Caso não seja possível excluir ou renomear a tabela homônima no destino, mapeie-a para um nome diferente. Para mais informações, consulte {{XREF_14}}.

      • Ignore Errors and Proceed: Ignora a verificação de nomes de tabelas duplicados no banco de dados de destino.

        Aviso

        Selecionar Ignore Errors and Proceed pode causar inconsistência de dados e colocar seu negócio em risco. Por exemplo:

        • Se os schemas das tabelas forem idênticos e um registro no destino tiver a mesma chave primária ou única de um registro na origem:

          • Durante a sincronização completa, o DTS mantém o registro no cluster de destino e o registro correspondente da origem não é sincronizado.

          • Durante a sincronização incremental, o registro da origem sobrescreve o registro no destino.

        • Se os schemas das tabelas forem diferentes, a sincronização inicial pode falhar, resultando em sincronização parcial de colunas ou falha total. Prossiga com cautela.

      Source Objects

      Na caixa Source Objects, clique em um objeto para sincronizar e depois clique em 向右 para movê-lo para a caixa Selected Objects.

      Nota

      É possível selecionar bancos de dados, tabelas e colunas como objetos de sincronização. Ao selecionar tabelas ou colunas, outros objetos como views, triggers e stored procedures não serão sincronizados para o destino.

      Selected Objects

      • Para renomear um único objeto de sincronização na instância de destino, clique com o botão direito no objeto dentro da caixa Selected Objects. Para mais detalhes sobre renomeação, consulte {{XREF_15}}.

      • Para alterar em lote os nomes de vários objetos na instância de destino, clique em Batch Edit no canto superior direito da caixa Selected Objects. Para mais informações, consulte {{XREF_16}}.

      Nota
      • Para selecionar as operações SQL a serem sincronizadas no nível de banco de dados ou tabela, clique com o botão direito em um objeto na caixa Selected Objects e marque as operações desejadas na caixa de diálogo exibida.

      • Para filtrar dados usando cláusulas WHERE, clique com o botão direito em uma tabela na caixa Selected Objects e especifique as condições de filtro na caixa de diálogo. Para mais informações, consulte {{XREF_17}}.

      • O uso do recurso de mapeamento de nomes de objetos pode causar falha na sincronização de outros objetos dependentes do objeto renomeado.

    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, sem necessidade de seleção. Para maior estabilidade, adquira um cluster dedicado para executar tarefas de sincronização. Para mais informações, consulte {{XREF_18}}.

      Retry Time for Failed Connections

      Se a conexão com o banco de dados de origem ou destino falhar após o início da tarefa, o DTS reportará um erro e iniciará imediatamente novas tentativas. A duração padrão de tentativa é de 720 minutos. Você pode personalizar esse valor entre 10 e 1.440 minutos, recomendando-se no mínimo 30 minutos. Se a reconexão for bem-sucedida dentro desse período, a tarefa será retomada automaticamente; caso contrário, ela falhará.

      Nota
      • Se múltiplas instâncias DTS (por exemplo, Instância A e Instância B) compartilharem a mesma origem ou destino, e o tempo de nova tentativa de rede for definido como 30 minutos para a Instância A e 60 minutos para a Instância B, o menor valor (30 minutos) prevalecerá para ambas.

      • Como o DTS cobra pelo tempo de execução da tarefa durante as tentativas de reconexão, recomenda-se personalizar a duração conforme a necessidade do negócio ou liberar a instância DTS assim que as instâncias de banco de dados de origem e destino forem liberadas.

      Retry Time for Other Issues

      Se ocorrerem problemas não relacionados à conectividade (como exceções na execução de DDL ou DML) após o início da tarefa, o DTS reportará um erro e iniciará tentativas contínuas. A duração padrão é de 10 minutos, personalizável entre 1 e 1.440 minutos, recomendando-se no mínimo 10 minutos. Se as operações forem bem-sucedidas dentro desse período, a tarefa será retomada automaticamente; caso contrário, ela falhará.

      Importante

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

      Enable Throttling for Full Data Synchronization

      Durante a fase de sincronização completa, o DTS consome recursos de leitura e escrita dos bancos de dados de origem e destino, aumentando a carga. Para reduzir esse impacto, defina limites de taxa configurando os parâmetros Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s).

      Nota
      • Esta opção só está disponível quando Synchronization Types inclui Full Data Synchronization.

      • Também é possível {{XREF_19}} após a instância de sincronização estar em execução.

      Enable Throttling for Incremental Data Synchronization

      Defina limites de taxa também para a sincronização incremental. Para aliviar a pressão no banco de dados de destino, configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s).

      Environment Tag

      Selecione uma tag de ambiente para identificar a instância. Esta configuração pode ser ignorada neste exemplo.

      Configure ETL

      Decida se deseja ativar o recurso de extração, transformação e carga (ETL). Para mais informações, consulte {{XREF_20}}. Valores válidos:

      • Yes: Ativa o recurso ETL. Insira as instruções de processamento de dados no editor de código. Para mais detalhes, consulte {{XREF_21}}.

      • No: Desativa o recurso ETL.

      Monitoring and Alerting

      Defina se deseja configurar alertas. Caso a sincronização falhe ou a latência ultrapasse o limiar especificado, uma notificação será enviada ao contato de alerta.

      • No: Nenhum alerta configurado.

      • Yes: Configure alertas definindo um limiar e especificando um alert notification. Para mais informações, consulte {{XREF_22}}.

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

      Para utilizar o recurso de validação de dados, consulte as instruções de configuração em {{XREF_23}}.

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

    • Para visualizar os parâmetros da API referentes a esta instância, passe o mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters no balão exibido.

    • Após consultar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.

    Nota
    • Antes de iniciar o job de sincronização, o DTS executa uma pré-verificação. O job só começa após a aprovação de todos os itens.

    • Se a pré-verificação falhar, clique em View Details no item reprovado. Corrija o problema conforme indicado e execute a pré-verificação novamente.

    • Se a pré-verificação retornar um aviso:

      • Caso um item de verificação falhe e não possa ser ignorado, clique em View Details ao lado do item. Siga as instruções para corrigir o problema e execute a pré-verificação novamente.

      • Para itens que podem ser ignorados, clique sequencialmente em Confirm Alert Details, Ignore, OK e Precheck Again para pular o aviso e refazer a pré-verificação. Ignorar avisos pode causar inconsistência de dados e riscos ao negócio.

  7. Adquira a instância.

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

    2. Na página Purchase, selecione o método de faturamento e a especificação do link para a instância de sincronização. A tabela abaixo detalha esses parâmetros.

      Categoria

      Parâmetro

      Descrição

      New Instance Class

      Método de faturamento

      • Assinatura: Pagamento realizado na criação da instância. Ideal para necessidades de longo prazo e mais econômico que o pagamento conforme o uso. Quanto maior a duração da assinatura, maior o desconto.

      • Pagamento conforme o uso: Cobrança horária. Adequado para necessidades de curto prazo. Libere a instância logo após o uso para economizar.

      Configuração do grupo de recursos

      Grupo de recursos ao qual a instância pertence. O padrão é o grupo de recursos padrão. Para mais informações, consulte {{XREF_24}}.

      Especificação do link

      O DTS oferece especificações de sincronização com diferentes níveis de desempenho, o que afeta a taxa de transferência. Escolha a especificação adequada ao seu cenário de negócios. Para mais informações, consulte {{XREF_25}}.

      Duração da assinatura

      No modo assinatura, selecione a duração e a quantidade. Opções mensais de 1 a 9 meses ou anuais de 1, 2, 3 ou 5 anos.

      Nota

      Esta opção só aparece quando o método de faturamento é Subscription.

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

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

      Acompanhe o progresso da tarefa na página Data Synchronization.

Verificar status do CDC

Esta seção explica como verificar o status do CDC ou desativá-lo.

Nota

Substitua as variáveis pelos valores reais antes de executar as instruções SQL abaixo.

  • Para verificar o status do CDC no banco de dados:

    USE [<your db name>];
    
    DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
    # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
    
    EXECUTE [sys].[sp_cdc_disable_db];   
  • Para verificar o status de um job do CDC:

    USE [<your db name>];
    
    DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
    # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
    
    EXECUTE [sys].[sp_cdc_disable_db];   
  • Para confirmar que o CDC está funcionando corretamente:

    • Verifique o uso do espaço de log.

      USE [<your db name>];
      
      DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
      # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
      
      EXECUTE [sys].[sp_cdc_disable_db];   
    • Confirme se o serviço SQL Server Agent está operando normalmente. Para detalhes, consulte SQL Server Agent.

    • Verifique se o CDC está lendo o log corretamente. Falhas na leitura podem fazer o DTS tentar novamente ou encerrar a tarefa.

      USE [<your db name>];
      
      DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
      # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
      
      EXECUTE [sys].[sp_cdc_disable_db];   
  • Para desativar o CDC em um banco de dados:

    USE [<your db name>];
    
    DROP TRIGGER [dts_cdc_sync_ddl] ON database; 
    # You must drop this trigger to disable CDC. Ignore this statement if the trigger does not exist.
    
    EXECUTE [sys].[sp_cdc_disable_db];