O Data Transmission Service (DTS) sincroniza dados de um banco de dados Oracle autogerenciado para um cluster PolarDB for MySQL sem interromper suas aplicações locais.
Pré-requisitos
Antes de começar, certifique-se de ter:
Um cluster PolarDB for MySQL com armazenamento disponível superior ao tamanho total do banco de dados Oracle de origem. Consulte Purchase a pay-as-you-go cluster e Purchase a subscription cluster
Um banco de dados no cluster PolarDB for MySQL de destino para receber os dados sincronizados. Consulte Create a database
O banco de dados Oracle de origem em execução no modo ARCHIVELOG, com arquivos de log arquivados acessíveis e um período de retenção adequado configurado. Consulte Managing Archived Redo Log Files
O log suplementar ativado no banco de dados Oracle de origem, com
SUPPLEMENTAL_LOG_DATA_PKeSUPPLEMENTAL_LOG_DATA_UIdefinidos comoYes. Consulte Supplemental LoggingConhecimento sobre os recursos e as limitações do DTS para origens Oracle. O Advanced Database & Application Migration (ADAM) está disponível para avaliar o banco de dados e ajudar no planejamento da migração. Consulte Prepare an Oracle database e Overview
Faturamento
|
Tipo de sincronização |
Custo |
|
Sincronização de schema e sincronização completa de dados |
Gratuita |
|
Sincronização incremental de dados |
Cobrada. Consulte Billing overview |
Operações SQL compatíveis
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE (funções não compatíveis na instrução); ALTER TABLE, ADD COLUMN, DROP COLUMN, RENAME COLUMN, ADD INDEX; DROP TABLE; RENAME TABLE, TRUNCATE TABLE, CREATE INDEX (apenas operações executadas pela conta atual do banco de dados) |
Permissões necessárias
|
Banco de dados |
Permissão necessária |
Referências |
|
Banco de dados Oracle autogerenciado |
Permissões de granularidade fina |
|
|
Cluster PolarDB for MySQL |
Permissões de gravação no banco de dados de destino |
Create and manage a database account — use uma conta privilegiada e gerencie as permissões com cuidado. |
Para a sincronização incremental de dados do Oracle, ative o log de arquivamento e o log suplementar no banco de dados Oracle antes de iniciar a tarefa. Consulte Configure an Oracle database.
Limitações
Durante a sincronização de schema, o DTS sincroniza as chaves estrangeiras da 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 de chave estrangeira e as operações em cascata no nível da sessão. Se você executar operações de atualização ou exclusão em cascata na origem durante a sincronização, poderão ocorrer inconsistências de dados.
Limitações do banco de dados de origem
As tabelas a serem sincronizadas devem ter restrições PRIMARY KEY ou UNIQUE com todos os campos exclusivos. Sem essas restrições, o banco de dados de destino poderá conter registros duplicados.
No Oracle 12c e versões posteriores, os nomes de tabelas e colunas não devem exceder 30 caracteres; caso contrário, a sincronização incremental de dados falhará.
Se você selecionar tabelas individuais (e não o banco de dados inteiro) e precisar renomear tabelas ou colunas no destino: uma única tarefa aceita até 1.000 tabelas. Para mais de 1.000 tabelas, configure várias tarefas em lotes ou sincronize o banco de dados inteiro.
Se o banco de dados de origem for um Oracle Real Application Cluster (RAC) conectado via Express Connect, especifique um endereço IP virtual (VIP) para o banco de dados ao configurar a tarefa de sincronização de dados.
Se o banco de dados Oracle autogerenciado for um Oracle RAC, use apenas um VIP em vez de um endereço IP Single Client Access Name (SCAN) ao configurar a tarefa de sincronização de dados. Após especificar o VIP, o failover de nó do banco de dados Oracle RAC não é compatível.
Se ocorrer uma alternância entre primário e secundário no banco de dados de origem enquanto a tarefa estiver em execução, a tarefa falhará.
A tarefa falhará se a origem contiver strings vazias do tipo VARCHAR2 e a coluna de destino correspondente tiver uma restrição NOT NULL. O Oracle processa strings VARCHAR2 vazias como valores nulos.
Os redo logs e archive logs no banco de dados de origem devem ser retidos por mais de sete dias. Se o DTS não conseguir obter esses logs, a tarefa falhará. Em casos excepcionais, podem ocorrer inconsistência ou perda de dados. Períodos de retenção inferiores a sete dias não são cobertos pelo acordo de nível de serviço (SLA) do DTS.
Limitações de destino e gerais
-
Os nomes de tabelas do PolarDB for MySQL não diferenciam maiúsculas de minúsculas. Se o nome de uma tabela Oracle de origem contiver letras maiúsculas, o PolarDB for MySQL as converterá para minúsculas antes de criar a tabela.
Se o banco de dados Oracle de origem contiver nomes de tabelas que diferem apenas no uso de maiúsculas e minúsculas, poderão ocorrer inconsistências de dados ou falha na tarefa. Use o recurso object name mapping para renomear objetos conflitantes durante a configuração da tarefa.
Avalie o impacto no desempenho dos bancos de dados de origem e destino antes da sincronização. Execute a tarefa em horários de menor movimento sempre que possível.
Durante a sincronização completa de dados, operações INSERT simultâneas causam fragmentação da tabela no destino. Após a conclusão da sincronização completa, o tablespace de destino ficará maior que o de origem.
O DTS calcula a latência de sincronização com base no timestamp do registro sincronizado mais recente no destino em relação ao timestamp atual da origem. Se nenhuma operação DML for executada na origem por um longo período, a exibição da latência poderá ser imprecisa. Execute uma operação DML na origem e atualize a latência. Se você sincronizar um banco de dados inteiro, crie uma tabela de heartbeat: o DTS a atualiza a cada segundo para manter a latência precisa.
Grave dados no banco de dados de destino apenas por meio do DTS durante a sincronização. A gravação a partir de outras fontes causa inconsistência de dados.
Se as instruções DDL falharem ao serem executadas no banco de dados de destino, a tarefa continuará em execução. Visualize as instruções DDL com falha nos logs da tarefa. Consulte View task logs.
Os conjuntos de caracteres dos bancos de dados de origem e destino devem ser compatíveis. Conjuntos de caracteres incompatíveis podem causar inconsistência de dados ou falha na tarefa.
Use o recurso de migração de schema do DTS. Caso contrário, a tarefa de sincronização poderá falhar devido a tipos de dados incompatíveis.
Os fusos horários dos bancos de dados de origem e destino devem coincidir.
Configurar uma tarefa de sincronização
Etapa 1: Abrir a página Data Synchronization Tasks
Faça login no console do Data Management (DMS).
Na barra de navegação superior, clique em Data + AI.
-
No painel de navegação à esquerda, escolha DTS (DTS) > Data Synchronization.
O caminho de navegação pode variar dependendo do modo do console DMS. Consulte Simple mode e Customize the layout and style of the DMS console . Você também pode acessar diretamente a página Data Synchronization Tasks no novo console do DTS.
-
No lado direito da página, selecione a região onde a instância de sincronização de dados está localizada.
No novo console do DTS, selecione a região na barra de navegação superior.
Etapa 2: Configurar os bancos de dados de origem e destino
Clique em Create Task. No assistente Create Data Synchronization Task, configure os parâmetros a seguir.
Nome da tarefa
|
Parâmetro |
Descrição |
|
Task Name |
O DTS gera um nome automaticamente. Especifique um nome descritivo para identificar a tarefa. O nome não precisa ser exclusivo. |
Banco de dados de origem
|
Parâmetro |
Descrição |
|
Select an existing DMS database instance |
(Opcional) Selecione um banco de dados existente para que o DTS preencha os parâmetros automaticamente. Caso não selecione nenhum, configure os parâmetros abaixo. |
|
Database Type |
Selecione Oracle. |
|
Access Method |
Selecione o método de acesso ao banco de dados de origem. Este exemplo usa Self-managed Database on ECS. Para outros métodos de acesso, configure primeiro o ambiente necessário. Consulte Preparation overview. |
|
Instance Region |
A região onde o banco de dados Oracle de origem está localizado. |
|
ECS Instance ID |
O ID da instância do Elastic Compute Service (ECS) que hospeda o banco de dados Oracle de origem. |
|
Port Number |
A porta de serviço do banco de dados Oracle de origem. Padrão: 1521. |
|
Oracle Type |
A arquitetura do banco de dados Oracle de origem: Non-RAC Instance (requer SID) ou RAC or PDB Instance (requer Service Name). Este exemplo usa RAC or PDB Instance. |
|
Database Account |
A conta do banco de dados Oracle de origem. Consulte Permissions required. |
|
Database Password |
A senha da conta do banco de dados. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select an existing DMS database instance |
(Opcional) Selecione um banco de dados existente para que o DTS preencha os parâmetros automaticamente. Caso não selecione nenhum, configure os parâmetros abaixo. |
|
Database Type |
Selecione PolarDB for MySQL. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
A região onde o cluster PolarDB for MySQL de destino está localizado. |
|
PolarDB Cluster ID |
O ID do cluster PolarDB for MySQL de destino. |
|
Database Account |
A conta do banco de dados do cluster PolarDB for MySQL de destino. Consulte Permissions required. |
|
Database Password |
A senha da conta do banco de dados. |
|
Encryption |
Indica se a conexão com o banco de dados de destino deve ser criptografada. Consulte Configure SSL encryption. |
Etapa 3: Testar a conectividade
Clique em Test Connectivity and Proceed.
Se o banco de dados de origem ou de destino for uma instância de banco de dados da Alibaba Cloud, como uma instância do ApsaraDB RDS for MySQL ou do ApsaraDB for MongoDB, o DTS adicionará automaticamente os blocos CIDR dos servidores do DTS à lista de permissões da instância. Se o banco de dados de origem ou de destino for um banco de dados autogerenciado hospedado em uma instância do Elastic Compute Service (ECS), o DTS adicionará automaticamente os blocos CIDR dos servidores do DTS às regras do grupo de segurança da instância ECS, e você deverá garantir que a instância ECS possa acessar o banco de dados. Para bancos de dados em data centers ou de provedores cloud de terceiros, adicione manualmente os blocos CIDR do DTS à lista de permissões do banco de dados. Consulte Add the CIDR blocks of DTS servers.
Adicionar blocos CIDR do DTS à sua lista de permissões ou às regras do grupo de segurança introduz riscos de segurança. Antes de prosseguir, tome medidas preventivas, como: fortalecer credenciais, restringir portas expostas, autenticar chamadas de API, auditar regularmente as regras da lista de permissões e remover blocos CIDR não autorizados. Como alternativa, conecte-se por meio do Express Connect, VPN Gateway ou Smart Access Gateway.
Etapa 4: Selecionar objetos e definir as configurações de sincronização
Configure os parâmetros de sincronização a seguir.
Configurações de sincronização
|
Parâmetro |
Descrição |
|
Synchronization Types |
Incremental Data Synchronization é selecionado por padrão. Selecione também Schema Synchronization e Full Data Synchronization. Após a conclusão da pré-verificação, o DTS sincronizará os dados históricos da origem para o destino como base para a sincronização incremental subsequente. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: o DTS verifica se há tabelas com nomes idênticos na origem e no destino. Se existirem nomes idênticos, a pré-verificação falhará e a tarefa não poderá ser iniciada. Se as tabelas no destino não puderem ser excluídas ou renomeadas, use o recurso de object name mapping para renomear objetos antes de iniciar. Ignore Errors and Proceed: o DTS ignora a pré-verificação de nomes idênticos. Durante a sincronização completa, os registros de destino existentes com a mesma chave primária ou exclusiva são retidos. Durante a sincronização incremental, eles são sobrescritos. Se os schemas forem diferentes, a sincronização poderá ser parcial ou a tarefa poderá falhar. |
|
Capitalization of object names in destination instance |
Controla o uso de maiúsculas e minúsculas nos nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS default policy. Consulte Specify the capitalization of object names in the destination instance. |
|
Source Objects |
Selecione bancos de dados, tabelas ou colunas em Source Objects e clique em |
|
Selected Objects |
Se a conta do banco de dados de destino não for privilegiada, ou se o nome do schema de origem não estiver em conformidade com as convenções de nomenclatura do PolarDB for MySQL, clique com o botão direito do mouse no schema em Selected Objects e defina Schema Name como o nome do banco de dados de destino. Para renomear uma tabela após a sincronização, clique com o botão direito do mouse na tabela e especifique o novo nome. Consulte Map object names. Para filtrar linhas, clique com o botão direito do mouse em uma tabela e especifique as condições de filtro. Consulte Set filter conditions. |
Se você renomear um objeto usando o mapeamento de nomes de objetos, a sincronização de outros objetos que dependem dele poderá falhar.
Etapa 5: Definir as configurações avançadas
Clique em Next: Advanced Settings e configure os parâmetros a seguir.
Verificação de dados
Para configurar a verificação de dados, consulte Configure data verification.
Configurações avançadas
|
Parâmetro |
Descrição |
|
Dedicated Cluster for Task Scheduling |
Por padrão, o DTS agenda a tarefa para o cluster compartilhado. Para melhorar a estabilidade da tarefa, adquira um cluster dedicado. Consulte What is a DTS dedicated cluster. |
|
Select the engine type of the destination database |
O mecanismo de armazenamento do banco de dados de destino. InnoDB é o padrão. X-Engine é um mecanismo de armazenamento de banco de dados para processamento de transações online (OLTP). |
|
Retry Time for Failed Connections |
Por quanto tempo o DTS tentará novamente conexões com falha após o início da tarefa. Valores válidos: 10 a 1.440 minutos. Padrão: 720 minutos. Defina este valor como 30 minutos ou mais. Se o DTS reconectar dentro dessa janela, a tarefa será retomada; caso contrário, ela falhará. Se várias tarefas compartilharem o mesmo banco de dados de origem ou de destino, a janela de nova tentativa mais curta terá precedência. O DTS cobrará durante o período de nova tentativa. |
|
Retry Time for Other Issues |
Por quanto tempo o DTS tentará novamente operações DDL ou DML com falha. Valores válidos: 1 a 1.440 minutos. Padrão: 10 minutos. Defina este valor como 10 minutos ou mais. Este valor deve ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limita a carga no destino durante a sincronização completa ao configurar Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Exibido apenas quando Full Data Synchronization estiver selecionado. |
|
Enable Throttling for Incremental Data Synchronization |
Limita a carga no destino durante a sincronização incremental. Configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s). |
|
Environment Tag |
Uma tag para identificar a instância do DTS. Selecione de acordo com os seus requisitos. |
|
Actual Write Code |
O formato de codificação para gravação de dados no banco de dados de destino. |
|
Configure ETL |
Indica se o recurso de extração, transformação e carga (ETL) deve ser ativado. Selecione Yes e insira instruções de processamento de dados no editor de código. Consulte Configure ETL in a data migration or data synchronization task. Selecione No para ignorar o ETL. |
|
Monitoring and Alerting |
Indica se os alertas para a tarefa devem ser configurados. Selecione Yes para definir um limiar de alerta e os contatos de notificação. O DTS os notificará se a tarefa falhar ou se a latência de sincronização exceder o limiar. Consulte Configure monitoring and alerting. |
Etapa 6: Salve as configurações e execute a pré-verificação
Clique em Next: Save Task Settings and Precheck.
Passe o mouse sobre Next: Save Task Settings and Precheck , visualize os parâmetros da API desta configuração de tarefa e clique em Preview OpenAPI parameters .
O DTS executa uma pré-verificação antes que a tarefa possa ser iniciada. Se a pré-verificação falhar:
Clique em View Details ao lado de cada item com falha, resolva o problema e execute a pré-verificação novamente.
Para itens de alerta: se o item não puder ser ignorado, resolva-o e execute novamente. Se o item puder ser ignorado, clique em Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar um alerta pode resultar em inconsistência de dados.
Etapa 7: Adquirir a instância de sincronização
Aguarde até que a Success Rate atinja 100% e clique em Next: Purchase Instance.
Na página buy, configure os parâmetros a seguir.
|
Parâmetro |
Descrição |
|
Billing Method |
Subscription: pagamento antecipado, mais econômico para uso a longo prazo. Pay-as-you-go: cobrado por hora, adequado para uso a curto prazo. Libere a instância quando não for mais necessária para interromper o faturamento. |
|
Resource Group Settings |
O grupo de recursos da instância de sincronização. Padrão: default resource group. Consulte What is Resource Management? |
|
Instance Class |
O DTS fornece classes de instância com diferentes velocidades de sincronização. Consulte Instance classes of data synchronization instances. |
|
Subscription Duration |
Disponível apenas para o método de faturamento Subscription. Opções: 1 a 9 meses, 1 ano, 2 anos, 3 anos ou 5 anos. |
Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms e clique em Buy and Start. Na caixa de diálogo, confirme a operação e clique em OK.
A tarefa aparecerá na lista de tarefas. Monitore o progresso por lá.