Você pode sincronizar dados de uma instância ApsaraDB RDS for SQL Server para uma instância AnalyticDB for PostgreSQL, centralizando a análise de dados corporativos.
Pré-requisitos
-
Você já realizou created an ApsaraDB RDS for SQL Server instance. Para informações sobre as versões compatíveis, consulte Synchronization solution overview.
ImportanteA instância de origem ApsaraDB RDS for SQL Server deve execute SQL Server 2012, 2014, 2016, 2017 ou 2019.
Você já realizou created an AnalyticDB for PostgreSQL instance.
Cada tabela sincronizada a partir da instância de origem ApsaraDB RDS for SQL Server deve ter uma chave primária.
As tabelas de destino na instância AnalyticDB for PostgreSQL devem ter uma chave primária ou um índice único.
Considerações
Durante uma migração completa de dados, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e destino, aumentando a carga sobre eles. Se os seus bancos de dados apresentam desempenho limitado, especificações baixas ou cargas de trabalho elevadas (por exemplo, consultas SQL lentas ou tabelas sem chave primária no banco de origem, ou deadlocks no banco de destino), o aumento de carga pode sobrecarregá-los ou até causar interrupções no service. Realize a migração de dados em horários de baixa demanda, como quando a utilização de CPU de ambos os bancos de dados estiver abaixo de 30%.
O DTS crie uma tabela de heartbeat chamada
dts_log_heart_beatno banco de dados de origem para monitoramento de latência.-
O DTS oferece suporte à sincronização inicial de esquema para os seguintes tipos de objeto: Schema, Table, View, Function e Procedure.
AvisoComo esta é uma tarefa de sincronização heterogênea, os tipos de dados podem não ter correspondência direta. Avalie o impacto do mapeamento de tipos de dados no seu negócio antes de prosseguir. Para mais informações, consulte Data type mappings for initial schema synchronization.
A sincronização é compatível no nível de tabela (tabelas append-optimized não são compatíveis). Você pode modifique os mapeamentos de colunas. Ao utilizar mapeamento de colunas para sincronização parcial de tabela, ou quando os esquemas das tabelas de origem e destino diferem, os dados das colunas de origem ausentes na tabela de destino são perdidos.
Os seguintes tipos de dados não podem ser sincronizados: TIMESTAMP, CURSOR, ROWVERSION, HIERARCHYID, SQL_VARIANT, SPATIAL GEOMETRY, SPATIAL GEOGRAPHY e TABLE.
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de esquema e sincronização completa de dados |
Gratuito. |
|
Sincronização incremental de dados |
Cobrada. Para mais informações, consulte Billing overview. |
Operações SQL compatíveis
-
Operações DDL: ADD COLUMN
NotaOperações DDL transacionais não podem ser sincronizadas.
Operações DML: INSERT, UPDATE, DELETE
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissões necessárias |
Método de autorização |
|
Instância ApsaraDB RDS for SQL Server |
Permissões de Owner no banco de dados selecionado para sincronização. |
|
|
Instância AnalyticDB for PostgreSQL |
Nota
Você também pode utilizar a conta inicial da instância AnalyticDB for PostgreSQL. |
Procedimento
-
Adquira uma tarefa de sincronização. Para mais informações, consulte Purchase procedure.
NotaAo realizar a compra, selecione a instância de origem como SQL Server, a instância de destino como AnalyticDB for PostgreSQL e a topologia de sincronização como One-way Synchronization.
Acesse o console do DTS.
No painel de navegação à esquerda, clique em Data Synchronization.
No topo da página Synchronization Tasks, selecione a região onde a instância de destino está localizada.
Localize a tarefa de sincronização de dados e clique em Configure Synchronization Channel.
-
Configure as instâncias de origem e destino.
Categoria
Configuração
Descrição
N/D
Synchronization Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos usar um nome descritivo para facilitar a identificação. O nome não precisa ser exclusivo.
Source Instance Details
Instance Type
Selecione RDS Instance.
Instance Region
A região da instância de origem selecionada durante a compra. Essa configuração não pode ser alterada.
Instance ID
Selecione o ID da instância de origem ApsaraDB RDS for SQL Server.
Database Account
Insira a conta de banco de dados da instância ApsaraDB RDS for SQL Server. Para mais informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta de banco de dados.
Connection Method
Selecione Non-encrypted ou SSL-encrypted conforme suas necessidades. Ao selecione SSL-encrypted, ative primeiro a criptografia SSL na instância RDS. Para mais informações, consulte Configure SSL encryption.
NotaA configuração Encryption está disponível apenas nas regiões da China continental e China (Hong Kong).
Destination Instance Details
Instance Type
Selecione AnalyticDB for PostgreSQL.
Instance Region
A região da instância de destino selecionada durante a compra. Essa configuração não pode ser alterada.
Instance ID
Selecione o ID da instância de destino AnalyticDB for PostgreSQL.
Database Name
Insira o nome do banco de dados de destino que contém as tabelas a sincronizar.
Database Account
Insira a conta de banco de dados da instância AnalyticDB for PostgreSQL. Para mais informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta de banco de dados.
-
No canto inferior direito da página, clique em Set Whitelist and Next.
Se o banco de dados de origem ou destino for uma instância de banco de dados Alibaba Cloud, como uma instância ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB, o DTS adiciona automaticamente os blocos CIDR dos servidores DTS à lista de permissões de endereços IP da instância. Se o banco de dados de origem ou destino for um banco de dados autogerenciado hospedado em uma instância Elastic Compute Service (ECS), o DTS adiciona automaticamente os blocos CIDR dos servidores DTS às regras do grupo de segurança da instância ECS, e você deve garantir que a instância ECS consiga acessar o banco de dados. Se o banco de dados autogerenciado estiver hospedado em várias instâncias ECS, adicione manualmente os blocos CIDR dos servidores DTS às regras do grupo de segurança de cada instância ECS. Se o banco de dados de origem ou destino for um banco de dados autogerenciado implantado em um data center ou fornecido por um provedor de cloud terceirizado, adicione manualmente os blocos CIDR dos servidores DTS à lista de permissões de endereços IP do banco de dados para permitir o acesso pelo DTS. Para mais informações, consulte Whitelist DTS server IP addresses.
AvisoAdicionar os blocos CIDR de IP público dos servidores DTS, seja automática ou manualmente, pode apresentar riscos de segurança. Ao utilizar este product, você reconhece e aceita esses riscos potenciais. Implemente proteções básicas de segurança, incluindo, mas não se limitando a: fortalecer a segurança de senhas, restringir portas abertas para blocos CIDR, utilizar autenticação na comunicação interna de API, e revisar e restringir periodicamente blocos CIDR desnecessários. Como alternativa, conecte-se ao banco de dados por uma rede interna, como uma linha dedicada, um VPN Gateway ou um Smart Access Gateway.
-
Configure a política de sincronização e os objetos.
Configuração
Descrição
Synchronization types
Por padrão, Initial Schema Synchronization, Full Data Synchronization e Incremental Data Synchronization já estão selecionados. Após a conclusão da pré-verificação, o DTS sincroniza os esquemas e os dados existentes dos objetos selecionados para o banco de dados de destino, servindo como base para a sincronização incremental.
Processing mode for existing destination tables
-
Precheck and Report Errors: o DTS verifica se existem tabelas de destino com os mesmos nomes das tabelas de origem. A pré-verificação é aprovada se nenhuma tabela correspondente for encontrada. Caso exista uma tabela correspondente, a pré-verificação falha e a tarefa não é iniciada.
NotaSe o banco de dados de destino já contiver uma tabela com o mesmo nome que não pode ser excluída ou renomeada, renomeie a tabela de destino. Para mais informações, consulte Rename a synchronization object in the destination instance.
-
Ignore Errors and Proceed: ignora a verificação de tabelas com nomes idênticos no banco de dados de destino.
AvisoSelecione Ignore Errors and Proceed pode causar inconsistência de dados. Por exemplo:
-
Se os esquemas forem iguais e um registro de destino tiver a mesma chave primária que um registro de origem, o registro de destino é preservado e o registro de origem não é sincronizado.
-
Quando os esquemas diferem, a sincronização inicial de dados pode falhar ou sincronizar apenas um subconjunto de colunas.
-
Table merging
-
Yes: em cenários OLTP, o sharding é frequentemente utilizado para melhorar os tempos de resposta. O AnalyticDB for PostgreSQL armazena grandes volumes de dados em uma única tabela, simplificando as consultas. A mesclagem de tabelas permite sincronizar várias tabelas de origem com o mesmo esquema em uma única tabela do AnalyticDB for PostgreSQL.
Nota-
Após selecione várias tabelas de origem, utilize o recurso de mapeamento de nomes de objetos para mapeá-las a uma única tabela no AnalyticDB for PostgreSQL. Para mais informações, consulte Rename a synchronization object in the destination instance.
-
Adicione uma coluna
__dts_data_sourcedo tipo TEXT à tabela de destino para rastrear a origem dos dados. O DTS grava valores no formato<DTS data synchronization instance ID>:<source database name>.<source schema name>.<source table name>, comodts****:dtstestdata.testschema.customer1. -
A mesclagem de tabelas é um recurso no nível da tarefa e não pode ser aplicada a tabelas individuais. Se precisar mesclar algumas tabelas e outras não, crie duas tarefas de sincronização separadas.
-
-
No: esta é a opção padrão.
Operation types
Selecione os tipos de operação a sincronizar conforme as necessidades do seu negócio. Por padrão, todos os tipos de operação já estão selecionados.
Synchronization objects
Na caixa Source Objects, clique em nos objetos que deseja sincronizar e, em seguida, clique em no ícone
para movê-los para a caixa Selected Objects.Como este é um cenário de sincronização heterogênea, apenas tabelas podem ser sincronizadas. Outros objetos, como views, triggers e stored procedures, não são compatíveis.
Nota-
Por padrão, os nomes dos objetos sincronizados permanecem inalterados. Para utilizar nomes diferentes na instância de destino, consulte Rename a synchronization object in the destination instance.
-
Ao defina Merge Tables como Yes, utilize o recurso de mapeamento de nomes de objetos para mapear as tabelas de origem selecionadas a um único nome de tabela no AnalyticDB for PostgreSQL.
Add quotation marks to object names
Especifique se os nomes dos objetos de destino devem ser colocados entre aspas. Ao selecione Yes e caso alguma das condições a seguir seja atendida, o DTS adiciona aspas aos nomes dos objetos de destino durante a sincronização de esquema e a sincronização incremental de dados:
-
O ambiente do banco de dados de origem diferencia maiúsculas de minúsculas e utiliza nomes com caixa mista.
-
O nome da tabela de origem não começa com uma letra ou contém caracteres além de letras, números e caracteres especiais compatíveis.
NotaApenas sublinhados (_), cerquilhas (#) e cifrões ($) são aceitos como caracteres especiais.
-
O nome do esquema, da tabela ou da coluna a ser sincronizado é uma palavra-chave, uma palavra reservada ou um caractere inválido no banco de dados de destino.
NotaAo adicionar aspas, utilize os nomes entre aspas ao consultar os objetos após a sincronização.
Edite mapped names
Altere os nomes dos objetos sincronizados na instância de destino. Para mais informações, consulte Map databases, tables, and columns.
Connection retry duration
Se o DTS não conseguir se conectar à instância de origem ou destino, ele tenta reconectar por 720 minutos (12 horas) por padrão. Também é possível especifique uma duração personalizada para as novas tentativas. Se o DTS restabelecer a conexão com a instância de origem ou destino dentro da duração especificada, a tarefa de sincronização é retomada automaticamente. Caso contrário, a tarefa falha.
NotaVocê é cobrado pelo tempo de execução da tarefa durante as novas tentativas de conexão. Personalize a duração das novas tentativas de acordo com as necessidades do seu negócio ou libere a instância DTS assim que as instâncias de origem e destino forem liberadas.
-
-
Configure o tipo de tabela, as colunas de chave primária e a chave de distribuição para as tabelas de destino no AnalyticDB for PostgreSQL.
NotaPara mais informações sobre colunas de chave primária e chave de distribuição, consulte Table constraints e Table distribution key.
-
Após concluir as configurações anteriores, clique em Precheck and Start no canto inferior direito da página.
NotaAntes de a tarefa de sincronização ser iniciada oficialmente, uma pré-verificação é executada. A tarefa só pode ser iniciada após a aprovação da pré-verificação.
-
Se a pré-verificação falhar, clique em no ícone
ao lado de um item de verificação específico para visualize os detalhes da falha.Siga as instruções para corrigir o problema e execute a pré-verificação novamente.
Caso não precise corrigir os itens de aviso, selecione Ignore, Ignore Warning Items and Rerun Precheck para ignorar os itens de aviso e execute a pré-verificação novamente.
Após a caixa de diálogo Precheck exibir Precheck Passed, feche a caixa de diálogo Precheck. A tarefa de sincronização será iniciada.
-
Aguarde a tarefa concluir a inicialização e insira no status Synchronizing.
Você pode visualize o status da tarefa de sincronização de dados na página Data Synchronization.
Perguntas frequentes
P: Como encontrar as tabelas de destino na instância AnalyticDB for PostgreSQL?
R: Durante a sincronização inicial de esquema, o DTS sincroniza os objetos para o banco de dados de destino com base no esquema do banco de dados de origem. Neste exemplo, as tabelas customer e Student podem ser encontradas no esquema dbo do banco de dados dtstestdata na instância de destino.