O Data Transmission Service (DTS) oferece suporte à migração de dados de um banco de dados Oracle autogerenciado para um cluster PolarDB for PostgreSQL. Escolha a migração de esquema, a migração de dados completa ou a migração de dados incremental, ou combine as três para manter o destino sincronizado com a origem durante a migração.
Antes de começar
Antes de configurar uma tarefa de migração, conclua as seguintes etapas de preparação.
Etapa 1: Avaliar a compatibilidade (recomendado)
Use o Advanced Database & Application Migration (ADAM) para avaliar a compatibilidade do seu banco de dados Oracle de origem com o PolarDB for PostgreSQL. O ADAM identifica esquemas, tipos de dados e sintaxe SQL incompatíveis antes da migração, reduzindo o risco de falhas na tarefa.
Para obter instruções de configuração e limites de capacidade do DTS específicos para Oracle, consulte Prepare an Oracle database e DTS overview.
Etapa 2: Preparar o banco de dados Oracle de origem
Ative o modo ARCHIVELOG. O banco de dados Oracle de origem deve estar em execução no modo ARCHIVELOG, com arquivos de log de arquivamento acessíveis e um período de retenção adequado configurado. Consulte Managing archived redo log files.
Ative o log suplementar. Defina
SUPPLEMENTAL_LOG_DATA_PKeSUPPLEMENTAL_LOG_DATA_UIcomoYes. Consulte Supplemental logging.
Etapa 3: Preparar o cluster PolarDB for PostgreSQL de destino
-
Crie o cluster PolarDB for PostgreSQL. O armazenamento disponível do cluster deve exceder o tamanho total dos dados do banco de dados Oracle de origem. Consulte Create a PolarDB for PostgreSQL cluster.
NotaPara versões compatíveis do mecanismo de banco de dados, consulte Overview of data migration scenarios.
Crie o banco de dados de destino que receberá os dados migrados. Consulte Database management.
Limitações
Comportamento de chaves estrangeiras durante a migração
Durante a migração de esquema, o DTS migra as chaves estrangeiras da origem para o destino.
Durante a migração de dados completa e a incremental, o DTS desativa temporariamente as verificações de restrição e as operações em cascata em chaves estrangeiras no nível da sessão. Executar operações em cascata ou de exclusão no banco de dados de origem durante a migração pode causar inconsistência de dados.
Limitações do banco de dados de origem
Conectividade
|
Cenário |
Limitação |
|
Geral |
O servidor que hospeda o banco de dados de origem deve ter largura de banda de saída suficiente. A largura de banda insuficiente reduz a velocidade da migração. |
|
Oracle RAC via Express Connect |
Especifique um endereço IP virtual (VIP) para o banco de dados de origem. Não há suporte para o uso de um endereço IP Single Client Access Name (SCAN). A especificação do VIP desativa o failover de nó. |
|
Oracle RAC via Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway ou Cloud Enterprise Network (CEN) |
Use um único VIP em vez de um endereço IP SCAN. Não há suporte para failover de nó após a especificação do VIP. |
Compatibilidade de dados
Se um campo VARCHAR2 no banco de dados Oracle de origem contiver uma string vazia (que o Oracle avalia como nula) e o campo de destino correspondente tiver uma restrição NOT NULL, a tarefa de migração falha.
As tabelas a serem migradas devem ter restrições PRIMARY KEY ou UNIQUE, e todos os campos devem ser exclusivos. Caso contrário, o banco de dados de destino pode conter registros duplicados.
Para o Oracle 12c e versões posteriores, os nomes das tabelas não podem exceder 30 bytes.
Ao selecionar tabelas como objetos de migração e precisar renomear tabelas ou colunas no destino, uma única tarefa de migração suporta até 1.000 tabelas. Migrar mais de 1.000 tabelas causa um erro de solicitação. Execute várias tarefas em lotes ou migre o banco de dados inteiro.
Requisitos para migração incremental
|
Modo de migração |
Período de retenção de log necessário |
|
Apenas migração incremental de dados |
Mais de 24 horas |
|
Migração completa de dados + migração incremental de dados |
Pelo menos 7 dias. Após a conclusão da migração de dados completa, é possível reduzir esse período para mais de 24 horas. |
Se o DTS não conseguir obter redo logs ou logs de arquivamento devido à retenção insuficiente, a tarefa de migração falha. Em casos extremos, pode ocorrer inconsistência ou perda de dados. O Service Level Agreement (SLA) do DTS não cobre falhas causadas por retenção insuficiente de logs.
Operações a serem evitadas no banco de dados de origem
Não execute operações DDL que alterem esquemas de banco de dados ou tabelas durante a migração de esquema ou a migração de dados completa. A tarefa falha se o DTS detectar alterações DDL.
Ao executar apenas a migração de dados completa (sem a incremental), não grave dados no banco de dados de origem durante a migração. A gravação de dados durante a migração completa pode causar inconsistência de dados.
Não atualize campos LONGTEXT durante a migração. A tarefa falha se houver atualização de campos LONGTEXT.
Outras limitações
Os conjuntos de caracteres dos bancos de dados de origem e de destino devem ser compatíveis. Conjuntos de caracteres incompatíveis podem causar inconsistência de dados ou falha na tarefa.
Os bancos de dados de origem e de destino devem usar o mesmo fuso horário.
Use o recurso de migração de esquema do DTS para migrar esquemas. Gerenciar manualmente a migração de esquema pode causar falhas na tarefa devido a tipos de dados incompatíveis.
O cluster PolarDB for PostgreSQL de destino não aceita o terminador
\0. O DTS descarta silenciosamente esse terminador se ele aparecer nos dados migrados, o que pode causar inconsistência de dados.Execute as tarefas de migração fora dos horários de pico. A migração de dados completa consome recursos de leitura e gravação em ambos os bancos de dados.
Após a conclusão da migração de dados completa, o tablespace utilizado no cluster de destino é maior do que no banco de dados de origem devido à fragmentação causada por operações INSERT simultâneas.
O DTS tenta retomar tarefas de migração que falharam por até 7 dias. Antes de alternar as cargas de trabalho para o banco de dados de destino, pare ou libere quaisquer tarefas com falha, ou execute
REVOKEpara remover permissões de gravação das contas do DTS no banco de dados de destino. Caso contrário, uma tarefa retomada pode sobrescrever dados no destino.Durante a migração, apenas o DTS deve gravar dados no banco de dados de destino. A gravação de dados por fontes externas pode causar inconsistência de dados.
Faturamento
|
Tipo de migração |
Taxa de configuração da tarefa |
Taxa de tráfego de Internet |
|
Migração de esquema |
Gratuita |
Gratuita (cobrada apenas ao migrar da Alibaba Cloud pela Internet — consulte Billing overview) |
|
Migração completa de dados |
Gratuita |
Gratuita (cobrada apenas ao migrar da Alibaba Cloud pela Internet — consulte Billing overview) |
|
Migração incremental de dados |
Cobrada — consulte Billing overview |
— |
Operações SQL com suporte para migração incremental
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE (exclua instruções com cláusulas de particionamento, cláusulas de subparticionamento ou funções; não há suporte para CREATE TABLE AS SELECT); ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN); DROP TABLE; RENAME TABLE; TRUNCATE TABLE; CREATE INDEX |
Permissões necessárias para a conta do banco de dados
| Banco de dados | Migração de esquema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Banco de dados Oracle autogerenciado | Permissões de proprietário do esquema | Permissões de proprietário do esquema | Permissões específicas |
| Cluster PolarDB for PostgreSQL | Permissões de proprietário do esquema Nota
Para o cluster PolarDB for PostgreSQL, use a conta database owner criada durante a configuração do banco de dados. |
||
Para obter instruções sobre como criar contas e conceder permissões:
Banco de dados Oracle autogerenciado: Consulte Prepare an Oracle database, CREATE USER e GRANT na documentação do Oracle.
Cluster PolarDB for PostgreSQL: Consulte Create a database account e Database management.
Para migrar dados incrementais de um banco de dados Oracle, ative o log de arquivamento e o log suplementar no banco de dados Oracle. Consulte a seção Configure an Oracle database em "Prepare an Oracle database."
Criar uma tarefa de migração
-
Acesse a página Data Migration Tasks.
Faça logon no Data Management (DMS) console.
Na barra de navegação superior, clique em DTS.
No painel de navegação à esquerda, escolha DTS (DTS) > Data Migration.
NotaAs etapas do console do DMS podem variar de acordo com o modo e o layout. Consulte Simple mode e Customize the layout and style of the DMS console para obter detalhes.
Acesse diretamente a página Data Migration Tasks do novo console do DTS.
-
Na lista suspensa ao lado de Data Migration Tasks, selecione a região da instância de migração.
NotaNo novo console do DTS, selecione a região no canto superior esquerdo.
-
Clique em Create Task. No assistente Create Task, configure os bancos de dados de origem e de destino com os parâmetros a seguir.
AvisoApós configurar os bancos de dados de origem e de destino, leia os limits exibidos na parte superior da página antes de continuar. Ignorar esta etapa pode causar falha na tarefa ou inconsistência de dados.
Parâmetros do banco de dados de origem
Parâmetro
Descrição
Task Name
Um nome descritivo para a tarefa. O DTS atribui um nome automaticamente, mas um nome significativo facilita a identificação da tarefa. Os nomes das tarefas não precisam ser exclusivos.
Select an existing DMS database instance (opcional)
Selecione uma instância existente do DMS para preencher automaticamente os parâmetros do banco de dados ou ignore esta etapa e configure os parâmetros manualmente.
Database Type
Selecione Oracle.
Access Method
Selecione com base no local de implantação do banco de dados de origem. Este exemplo usa Self-managed Database on ECS. Para outros métodos de acesso, consulte Preparation overview.
Instance Region
A região do banco de dados Oracle de origem.
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 (configure o parâmetro SID) ou RAC or PDB Instance (configure o parâmetro Service Name). Este exemplo usa RAC or PDB Instance com o parâmetro Service Name.
Database Account
A conta do banco de dados Oracle de origem. Consulte Required database account permissions.
Database Password
A senha da conta do banco de dados.
Parâmetros do banco de dados de destino
Parâmetro
Descrição
Select an existing DMS database instance (opcional)
Selecione uma instância existente do DMS para preencher automaticamente os parâmetros do banco de dados ou ignore esta etapa e configure os parâmetros manualmente.
Database Type
Selecione PolarDB for PostgreSQL.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
A região do cluster PolarDB for PostgreSQL de destino.
Instance ID
O ID do cluster PolarDB for PostgreSQL de destino.
Database Name
O nome do banco de dados de destino que receberá os objetos migrados.
Database Account
A conta do banco de dados do cluster de destino. Consulte Required database account permissions.
Database Password
A senha da conta do banco de dados.
Clique em Test Connectivity and Proceed.
-
Se o banco de dados de origem tiver uma lista de permissões de endereços IP configurada, adicione os blocos CIDR dos servidores do DTS à lista de permissões. Em seguida, clique em Test Connectivity and Proceed.
AvisoAdicionar blocos CIDR de servidores do DTS à lista de permissões do seu banco de dados ou às regras do grupo de segurança da instância ECS apresenta riscos de segurança. Antes de continuar, tome medidas preventivas, incluindo o uso de credenciais fortes, a restrição de portas expostas, a autenticação de chamadas de API e a revisão regular das regras da lista de permissões. Como alternativa, conecte o banco de dados ao DTS usando Express Connect, VPN Gateway ou Smart Access Gateway para evitar a exposição à Internet pública.
-
Configure os objetos a serem migrados e as configurações avançadas. Capitalização de nomes de objetos na instância de destino Por padrão, a DTS default policy é aplicada. Selecione outra opção para alinhar a capitalização dos nomes dos objetos com o banco de dados de origem ou de destino. Consulte Specify the capitalization of object names in the destination instance. Seleção de objetos Na seção Source Objects, selecione um ou mais objetos (colunas, tabelas ou bancos de dados) e clique no ícone
para movê-los para a seção Selected Objects. Na seção Selected Objects:Para renomear um único objeto, clique com o botão direito nele. Consulte Map the name of a single object.
Para renomear vários objetos de uma só vez, clique em Batch Edit no canto superior direito. Consulte Map multiple object names at a time.
Para filtrar linhas por condição, clique com o botão direito em uma tabela e especifique as condições WHERE. Consulte Set filter conditions.
NotaCaso não selecione Incremental Data Migration, não grave dados no banco de dados de origem durante a migração — isso é necessário para manter a consistência dos dados.
NotaRenomear um objeto com o recurso de mapeamento de nomes de objetos pode impedir a migração de outros objetos que dependam dele.
Tipo de migração
Objetivo
Tipos de migração a serem selecionados
Apenas migração completa (sem necessidade de continuidade do serviço)
Schema Migration e Full Data Migration
Migração completa com continuidade do serviço
Schema Migration, Full Data Migration e Incremental Data Migration
Modo de processamento de tabelas conflitantes
Modo
Comportamento
Precheck and Report Errors
Verifica se há tabelas com nomes idênticos nos bancos de dados de origem e de destino. A pré-verificação só é aprovada se não houver conflitos de nomes. Se forem encontrados conflitos, a tarefa não é iniciada. Para resolver conflitos, use o recurso de mapeamento de nomes de objetos para renomear os objetos migrados. Consulte Map object names.
Ignore Errors and Proceed
Ignora a verificação de conflito de nomes. Use com cautela: se a origem e o destino tiverem o mesmo esquema, os registros com chaves primárias correspondentes não são migrados; se os esquemas forem diferentes, apenas colunas específicas podem ser migradas ou a tarefa pode falhar.
-
Clique em Next: Advanced Settings para configurar as opções avançadas. Configurações de verificação de dados Para ativar a verificação de dados após a migração, consulte Configure data verification.
Configurações avançadas
Parâmetro Descrição Select the dedicated cluster used to schedule the task O DTS agenda tarefas em um cluster compartilhado por padrão. Para usar um cluster dedicado, adquira um antes. Consulte What is a DTS dedicated cluster? Retry Time for Failed Connections Por quanto tempo o DTS tenta reconectar após uma falha. Valores válidos: 10 a 1.440 minutos. Padrão: 720 minutos. Recomenda-se definir o parâmetro com um valor superior a 30 minutos. Se o DTS reconectar dentro da janela de tentativas, a tarefa de migração é retomada; caso contrário, ela falha. NotaQuando várias tarefas compartilham a mesma origem ou destino, o último tempo de tentativa de reconexão definido se aplica a todas. As cobranças da instância do DTS continuam durante as tentativas — libere a instância imediatamente após a desativação da origem e do destino.
The wait time before a retry when other issues occur in the source and destination databases Por quanto tempo o DTS tenta repetir operações DDL ou DML que falham após o início da tarefa. Valores válidos: 1 a 1.440 minutos. Padrão: 10 minutos. Recomenda-se definir o parâmetro com um valor superior a 10 minutos. Este valor deve ser menor que o valor de Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limita a carga de leitura/gravação nos bancos de dados de origem e de destino durante a migração de dados completa. Quando ativado, configure Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado. Enable Throttling for Incremental Data Migration Limita a carga durante a migração incremental de dados. Quando ativado, configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado. Environment Tag Uma tag opcional para identificar a instância do DTS pelo tipo de ambiente. Actual Write Code O formato de codificação para gravar dados no banco de dados de destino. Selecione conforme seus requisitos. Configure ETL Define se a extração, transformação e carga (ETL) será ativada. Selecione Yes para inserir 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 a configuração de ETL. Para obter uma visão geral, consulte What is ETL? Monitoring and Alerting Define se os alertas para a tarefa de migração serão configurados. Selecione Yes para definir um limiar de alerta e contatos de alerta. Os contatos recebem notificações se a tarefa falhar ou se a latência da migração exceder o limiar. Consulte Configure monitoring and alerting for a new DTS task. -
Clique em Next: Save Task Settings and Precheck.
NotaPara visualizar os parâmetros da API usados para configurar esta instância, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview API Call.
O DTS executa uma pré-verificação antes de iniciar a tarefa de migração. A tarefa é iniciada somente após a aprovação na pré-verificação.
Se um item falhar na pré-verificação, clique em View Details ao lado do item com falha, corrija o problema e execute a pré-verificação novamente.
Se um item de pré-verificação gerar um aviso: corrija o problema se não for possível ignorá-lo; ou clique em Confirm Alert Details > Ignore > OK > Precheck Again se for seguro ignorá-lo. Ignorar um aviso pode causar inconsistência de dados ou expor o sistema a riscos.
Aguarde a taxa de sucesso atingir 100% e clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure a classe da instância.
Parâmetro
Descrição
Resource Group
O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte What is Resource Management?
Instance Class
A classe da instância determina a velocidade da migração. Selecione conforme seus requisitos. Consulte Specifications of data migration instances.
Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms ao marcar a caixa de seleção.
Clique em Buy and Start. Monitore o progresso da migração na página Task Management.