O Data Transmission Service (DTS) sincroniza dados de uma instância do ApsaraDB RDS for SQL Server para uma instância do ApsaraDB RDS for MySQL.
Pré-requisitos
Uma instância do RDS SQL Server. Para ver as versões compatíveis, consulte {{XREF_0}}. Para criar uma instância, consulte {{XREF_1}}.
Uma instância de destino do ApsaraDB RDS for MySQL criada. Para mais informações, consulte {{XREF_2}}.
A instância de destino do ApsaraDB RDS for MySQL deve ter mais espaço de armazenamento do que a instância de ApsaraDB RDS for SQL Server de origem.
-
Recomendamos dividir uma tarefa de sincronização em várias tarefas se a instância de origem atender a qualquer uma das seguintes condições:
A instância de origem tem mais de 10 bancos de dados.
São executados backups de log mais de uma vez por hora para 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 log para um único banco de dados excede 20 MB/s.
Você precisa ativar o change data capture (CDC) em mais de 1.000 tabelas.
Limitações
Durante a sincronização de schema, o DTS sincroniza chaves estrangeiras do banco de dados de origem para o banco de dados de destino.
Durante a sincronização completa e incremental de dados, o DTS desativa temporariamente as verificações de restrição e as operações de cascata de chave estrangeira no nível da sessão. Pode ocorrer inconsistência de dados se você executar operações de atualização ou exclusão em cascata no banco de dados de origem durante a execução da tarefa.
|
Tipo |
Descrição |
|
Limitações do banco de dados de origem |
|
|
Outras limitações |
|
|
Casos especiais |
Quando a instância de origem é um ApsaraDB RDS for SQL Server, o DTS cria uma conta |
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de schema e sincronização completa de dados |
Gratuito. |
|
Sincronização incremental de dados |
Cobrado. Para mais informações, consulte {{XREF_8}}. |
Topologias de sincronização
Sincronização unidirecional um para um
Sincronização unidirecional um para muitos
Sincronização unidirecional muitos para um
Para uma introdução a essas topologias de sincronização e seu uso, consulte {{XREF_9}}.
Operações SQL suportadas
Tipo de operação | Instrução SQL |
DML | INSERT, UPDATE e DELETE |
DDL |
Nota
|
Permissões necessárias para contas de banco de dados
|
Instância de banco de dados |
Permissões necessárias |
Ações |
|
Instância de origem do ApsaraDB RDS for SQL Server |
Permissões de proprietário nos objetos a serem sincronizados. |
|
|
Instância de destino do ApsaraDB RDS for MySQL |
Permissões de leitura e gravação no banco de dados de destino. |
Procedimento
-
Acesse a página da lista de tarefas de sincronização da região de destino. Você pode usar um dos dois métodos a seguir:
Pelo console do DTS
Faça login no Data Transmission Service (DTS) console.
No painel de navegação à esquerda, clique em Data Synchronization.
No canto superior esquerdo da página, selecione a região onde a instância de sincronização está localizada.
Pelo console do DMS
NotaAs operações reais podem variar com base no modo e no layout do console do DMS. Para mais informações, consulte {{XREF_14}} e {{XREF_15}}.
Faça login no Data Management (DMS).
Na barra de menu superior, escolha .
À direita de Data Synchronization Tasks, selecione a região onde a instância de sincronização está localizada.
Clique em Create Task para abrir a página de configuração da tarefa.
-
Configure os bancos de dados de origem e de destino.
Categoria
Parâmetro
Descrição
N/D
Task Name
O DTS gera automaticamente um nome de tarefa. Recomendamos especificar um nome descritivo para fácil identificação. O nome não precisa ser único.
Source Database
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.
Replicate Data Across Alibaba Cloud Accounts
Para este exemplo, estamos sincronizando dados na mesma conta Alibaba Cloud. Selecione No.
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 proprietário nos objetos a serem sincronizados.
Database Password
Insira a senha correspondente à conta do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted.
-
Se a criptografia SSL não estiver ativada 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. O DTS confia no certificado do servidor por padrão.
Destination Database
Database Type
Selecione MySQL.
Connection Type
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região da instância de destino do ApsaraDB RDS for MySQL.
Replicate Data Across Alibaba Cloud Accounts
Para este exemplo, estamos sincronizando dados na mesma conta Alibaba Cloud. Selecione No.
RDS Instance ID
Selecione o ID da instância de destino do ApsaraDB RDS for MySQL.
Database Account
Insira a conta do banco de dados da instância de destino do ApsaraDB RDS for MySQL. A conta deve ter permissões de leitura e gravação.
Database Password
Insira a senha correspondente à conta do banco de dados.
Connection Method
Selecione Non-encrypted ou SSL-encrypted conforme necessário. Se você selecionar SSL-encrypted, deverá ativar a criptografia SSL para a instância do RDS for MySQL antecipadamente. Para mais informações, consulte {{XREF_16}}.
-
-
Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.
NotaCertifique-se de que os blocos CIDR de endereços IP dos servidores do DTS foram adicionados às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso dos servidores do DTS. Isso pode ser feito automática ou manualmente. Para mais informações, consulte {{XREF_17}}.
Se o banco de dados de origem ou de destino for um banco de dados autogerenciado (onde o Access Method não é Alibaba Cloud Instance), você também deve clicar em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers.
-
Configure os objetos da tarefa.
-
Na página Configure Objects, configure os objetos a serem sincronizados.
Parâmetro
Descrição
Synchronization Types
Incremental Data Synchronization está selecionado. Por padrão, você também deve selecionar Schema Synchronization e Full Data Synchronization. Após a conclusão da pré-verificação, o DTS executa uma sincronização completa de dados dos objetos selecionados da instância de origem para o cluster de destino. Isso serve como dados de linha de base para a sincronização incremental de dados subsequente.
Schema Mapping Mode of Source and Destination Databases
Selecione um modo de mapeamento de schema com base nas necessidades do seu negócio para mapear schemas entre os bancos de dados de origem e de destino.
AvisoVários schemas no banco de dados de origem não podem ter tabelas com o mesmo nome. Caso contrário, podem ocorrer inconsistência de dados ou falha na tarefa.
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 com tabelas heap, tabelas sem chaves primárias, tabelas compactadas e tabelas com colunas computadas no banco de dados de origem.
-
Alta estabilidade de link. Este modo pode obter instruções DDL completas e fornece suporte abrangente para cenários DDL.
-
-
Desvantagens:
-
O DTS cria um trigger dts_cdc_sync_ddl, uma tabela de heartbeat dts_sync_progress e uma tabela de armazenamento 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 para algumas tabelas.
-
Você não pode executar instruções SELECT INTO, TRUNCATE, RENAME COLUMN ou de modificação de tipo de coluna em tabelas que têm o CDC ativado no banco de dados de origem. O trigger criado pelo DTS no banco de dados de origem não pode ser excluído manualmente.
NotaTabelas que contêm tipos geometry, geography ou hierarchyid não suportam a ativação do CDC.
-
-
-
Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):
-
Vantagens:
Este modo não é intrusivo para o banco de dados de origem.
-
Desvantagens:
Não suporta cenários com tabelas heap, tabelas sem chaves primárias, 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.
-
Este modo usa o componente nativo Change Data Capture (CDC) do SQL Server para obter dados incrementais. Isso torna a sincronização incremental mais estável e consome menos largura de banda de rede.
-
-
Desvantagens:
-
A conta do banco de dados de origem usada pela instância do DTS deve ter permissão para ativar o CDC. Existe um atraso de aproximadamente 10 segundos para a sincronização incremental de dados.
-
Em cenários que envolvem a sincronização de vários bancos de dados e tabelas, pode haver riscos de problemas de estabilidade e 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 dentro da instância de sincronização atual. O valor padrão é 1.000.
NotaEste 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 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 de sincronização de dados não inicia.
NotaSe você não puder excluir ou renomear a tabela com o mesmo nome no banco de dados de destino, poderá mapeá-la para um nome de tabela diferente. Para mais informações, consulte {{XREF_18}}.
-
Ignore Errors and Proceed: Ignora a verificação de nomes de tabela duplicados no banco de dados de destino.
AvisoSelecionar 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 iguais e um registro no banco de dados de destino tiver o mesmo valor de chave primária ou única que um registro no banco de dados de origem:
-
Durante a sincronização completa, o DTS mantém o registro no cluster de destino. O registro correspondente do banco de dados de origem não é sincronizado.
-
Durante a sincronização incremental, o registro do banco de dados de origem substitui o registro no banco de dados de destino.
-
-
Se os schemas das tabelas forem diferentes, a sincronização inicial de dados pode falhar. Isso pode resultar na sincronização de apenas dados parciais de colunas ou em uma falha completa de sincronização. Prossiga com cautela.
-
Capitalization of Object Names in Destination Instance
Você pode configurar a política de diferenciação de maiúsculas e minúsculas para nomes de objetos de banco de dados, tabelas e colunas que são sincronizados com a instância de destino. Por padrão, a DTS default policy está selecionada. Você também pode optar por usar as políticas padrão dos bancos de dados de origem e de destino. Para mais informações, consulte {{XREF_19}}.
Source Objects
Na caixa Source Objects, clique em um objeto a ser sincronizado e, em seguida, clique em
para movê-lo para a caixa Selected Objects.NotaVocê pode selecionar objetos no nível do banco de dados, tabela ou coluna. Se você selecionar tabelas ou colunas como objetos de sincronização, outros objetos, como views, triggers e stored procedures, não serão sincronizados com o banco de dados de destino.
Selected Objects
-
Para renomear um único objeto de sincronização na instância de destino, clique com o botão direito do mouse no objeto na caixa Selected Objects. Para mais informações sobre como renomear objetos, consulte {{XREF_20}}.
-
Para alterar os nomes de vários objetos de sincronização na instância de destino em lote, clique em Batch Edit no canto superior direito da caixa Selected Objects. Para mais informações, consulte {{XREF_21}}.
NotaPara selecionar as operações SQL a serem sincronizadas para um banco de dados ou tabela específica, clique com o botão direito do mouse no objeto na caixa Selected Objects e selecione as operações SQL desejadas na caixa de diálogo que aparece.
Para filtrar dados usando condições WHERE, clique com o botão direito do mouse na tabela a ser sincronizada na caixa Selected Objects e especifique as condições de filtro na caixa de diálogo que aparece. Para mais informações, consulte {{XREF_22}}.
Se você renomear um objeto, os objetos dependentes poderão falhar na sincronização.
-
-
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, e você não precisa selecionar um cluster. Para um desempenho mais estável, você pode adquirir um cluster dedicado para executar tarefas de sincronização do DTS. Para mais informações, consulte {{XREF_23}}.
Retry Time for Failed Connections
Após o início de uma tarefa de sincronizaçã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ê também pode especificar uma duração personalizada de 10 a 1.440 minutos. Recomendamos definir a duração para 30 minutos ou mais. Se o DTS se reconectar com sucesso ao banco de dados dentro da duração especificada, a tarefa de sincronização será retomada automaticamente. Caso contrário, a tarefa falhará.
Nota-
Se você tiver várias instâncias do DTS (por exemplo, Instância A e Instância B) que compartilham a mesma origem ou destino, e definir o tempo de nova tentativa de rede como 30 minutos para a Instância A e 60 minutos para a Instância B, a duração mais curta de 30 minutos será usada para ambas.
-
Como o DTS cobra pelo tempo de execução da tarefa durante o período de nova tentativa de conexão, recomendamos personalizar a duração da nova tentativa com base nas necessidades do seu negócio ou liberar 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 sincronização, se ocorrerem outros problemas de não conectividade com o banco de dados de origem ou de destino (como exceções de execução DDL ou DML), o DTS relatará um erro e iniciará imediatamente operações contínuas de nova tentativa. A duração padrão de nova tentativa é de 10 minutos. Você também pode personalizar a duração da nova tentativa dentro do intervalo de 1 a 1.440 minutos. Recomendamos definir para 10 minutos ou mais. Se as operações relevantes forem bem-sucedidas dentro da duração de nova tentativa definida, a tarefa de sincronização será retomada automaticamente. Caso contrário, a tarefa falhará.
ImportanteO valor para Retry Time for Other Issues deve ser menor que o valor para Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Durante a etapa de sincronização completa, o DTS consome recursos de leitura e gravação dos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Para reduzir a carga nos bancos de dados de origem e de destino, você pode definir um limite de taxa para a tarefa de sincronização completa 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-
Este item de configuração está disponível apenas quando Synchronization Types está definido como Full Data Synchronization.
-
Você também pode {{XREF_24}} após a instância de sincronização estar em execução.
Enable Throttling for Incremental Data Synchronization
Você também pode definir um limite de taxa para a tarefa de sincronização incremental. Para aliviar a pressão no banco de dados de destino, defina RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s).
Environment Tag
Você pode selecionar uma tag de ambiente para identificar a instância. Neste exemplo, nenhuma tag é selecionada.
Configure ETL
Escolha se deseja ativar o recurso de extração, transformação e carga (ETL). Para mais informações, consulte {{XREF_25}} Valores válidos:
-
Yes: Ativa o recurso ETL. Insira instruções de processamento de dados no editor de código. Para mais informações, consulte {{XREF_26}}.
-
No: Desativa o recurso ETL.
Monitoring and Alerting
Especifique se deseja configurar alertas. Se a sincronização falhar ou a latência exceder o limiar especificado, uma notificação será enviada para um contato de alerta.
-
No: Nenhum alerta é configurado.
-
Yes: Configure alertas definindo um limiar de alerta e especificando um notificação de alerta. Para mais informações, consulte {{XREF_27}}.
-
-
Clique em Next: Data Validation para configurar uma tarefa de validação de dados.
Se você quiser usar o recurso de validação de dados, consulte {{XREF_28}} para obter instruções de configuração.
-
-
Salve a tarefa e execute uma pré-verificação.
Para visualizar os parâmetros da API para configurar esta instância, passe o mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica.
Se você terminou de visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.
NotaAntes do início do job de sincronização, o DTS executa uma pré-verificação. O job só pode iniciar após a aprovação de todos os itens de pré-verificação.
Se a pré-verificação falhar, clique em View Details para o item com falha. Corrija o problema conforme instruído e, em seguida, execute a pré-verificação novamente.
-
Se a pré-verificação retornar um aviso:
Se um item de verificação falhar e não puder ser ignorado, clique em View Details ao lado do item. Siga as instruções para corrigir o problema e, em seguida, execute a pré-verificação novamente.
Para itens de verificação que podem ser ignorados, você pode clicar em Confirm Alert Details, Ignore, OK e Precheck Again em sequência para ignorar o aviso e executar a pré-verificação novamente. Se você optar por ocultar o item de aviso, isso pode causar problemas como inconsistência de dados e apresentar riscos ao seu negócio.
-
Adquira a instância.
Quando a Success Rate for de 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione o método de faturamento e a especificação de link para a instância de sincronização de dados. A tabela a seguir descreve esses parâmetros em detalhes.
Categoria
Parâmetro
Descrição
New Instance Class
Método de faturamento
-
Assinatura: Você paga ao criar a instância. Isso é adequado 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: Você é cobrado por hora. Isso é adequado para necessidades de curto prazo. Você pode liberar a instância imediatamente após o uso para economizar custos.
Configuração do grupo de recursos
O grupo de recursos ao qual a instância pertence. O padrão é o grupo de recursos padrão. Para mais informações, consulte {{XREF_29}}.
Especificação do link
O DTS fornece especificações de sincronização com diferentes níveis de desempenho. A especificação do link de sincronização afeta a taxa de sincronização. Você pode escolher uma especificação com base no seu cenário de negócio. Para mais informações, consulte {{XREF_30}}.
Duração da assinatura
No modo de assinatura, selecione a duração e a quantidade para a instância de assinatura. Você pode escolher uma assinatura mensal de 1 a 9 meses, ou uma assinatura anual de 1, 2, 3 ou 5 anos.
NotaEsta opção está disponível apenas quando o método de faturamento é Subscription.
-
Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Clique em Buy and Start. Na caixa de diálogo OK, clique em OK.
Você pode visualizar o progresso da tarefa na página Data Synchronization.