View a markdown version of this page

Configurações da conversão do Oracle para o PostgreSQL - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurações da conversão do Oracle para o PostgreSQL

As configurações a seguir se aplicam quando a origem é Oracle e o destino é Amazon RDS for PostgreSQL ou Amazon Aurora PostgreSQL. Você pode definir essas configurações usando a operação AWS Management Console ou a ModifyConversionConfigurationAPI.

Este tópico aborda as configurações específicas do caminho de conversão do Oracle para o PostgreSQL. Além dessas configurações, o DMS Schema Conversion fornece configurações que se aplicam a todos os pares de origem e destino, como o nível de severidade dos comentários de itens de ação no SQL convertido e a opção de usar IA generativa para conversão. Para essas configurações, consulteConfigurações de conversão comuns.

Ao usar a API ou a AWS CLI, especifique as configurações do caminho de conversão sob os nomes das seções ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, ou. ORACLE_TO_POSTGRESQL_15 Todas as três seções versionadas aceitam as mesmas chaves. Para descobrir quais nomes de seção seu projeto usa, chame DescribeConversionConfigurationprimeiro e atualize somente as seções presentes na resposta.

Cada configuração mostra o AWS Management Console rótulo seguido pelo nome do parâmetro da API e da AWS CLI entre parênteses. Use o nome do parâmetro ao definir as configurações com a API ou a AWS CLI. As configurações são listadas na mesma ordem em que aparecem no AWS Management Console.

Versão do mecanismo de destino (ORACLE_TO_POSTGRESQL_target_engine_version)

Escolha a versão do mecanismo para seu banco de dados de destino. Essa configuração é o conjunto de recursos da versão principal do PostgreSQL que a Conversão do Esquema do DMS visa para conversão e determina qual seção de configurações com versão da Conversão do Esquema DMS se aplica (ou). ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 O valor 15 tem como alvo os recursos do PostgreSQL 15 e versões posteriores e os recursos do PostgreSQL 14, 14 para que seu banco de dados de destino possa executar uma versão posterior ao valor escolhido (por exemplo, um valor de para um destino do PostgreSQL 16). 15 Diferentemente das outras configurações desta página, essa configuração não é armazenada em uma seção de caminho de conversão. Em vez disso, ele é armazenado na Conversion version seção de nível superior, conforme mostrado no exemplo a seguir.

{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }

Tipo: String (14|15)

Padrão: 15

Visualizações materializadas () MaterializedViewConvert

Especifica como o DMS Schema Conversion converte visualizações materializadas Oracle no destino.

API/CLI valor Resultado no alvo
TABLE O DMS Schema Conversion cria uma tabela regular com as mesmas colunas. Use isso ao gerenciar a atualização manualmente ou com uma ferramenta de replicação.
MATERIALIZED_VIEW A conversão de esquema do DMS cria um PostgreSQL. MATERIALIZED VIEW Use isso quando o alvo suportarREFRESH MATERIALIZED VIEW.

Tipo: String (TABLE|MATERIALIZED_VIEW)

Padrão: TABLE

Gerar id de linha (GenerateRowId)

O banco de dados Oracle de origem pode utilizar a pseudocoluna ROWID. O PostgreSQL não é compatível com funcionalidade semelhante. Essa configuração especifica se o DMS Schema Conversion emula a ROWID pseudocoluna no código convertido e qual tipo de dados o DMS Schema Conversion usa para emulação.

Etiqueta do console API/CLI valor Comportamento
Não gere false O DMS Schema Conversion não emula a ROWID pseudocoluna e deixa referências como itens de ação. Use isso quando seu código-fonte Oracle não for usadoROWID. O código convertido é executado mais rápido.
Use o tipo de dados bigint para emular a pseudocoluna ROWID true O DMS Schema Conversion emula a ROWID pseudocoluna no código convertido usando o tipo de dados. bigint
Use o tipo de dados com variação de caracteres para emular a pseudocoluna ROWID GENERATE_AS_CHARACTER_DOMAIN_TYPE O DMS Schema Conversion emula a ROWID pseudocoluna no código convertido usando o tipo de dados. character varying

Tipo: String (enum)

Padrão: false

Código

Selecione as configurações de conversão específicas do seu código-fonte Oracle.

Use o mapeamento otimizado do tipo de dados para colunas do tipo de dados NUMBER (UseOptimizedMappingForNumberConversion)

Especifica se o DMS Schema Conversion mapeia cada NUMBER coluna Oracle para o tipo de dados numérico mais adequado com base na precisão e na escala.

  • true— O DMS Schema Conversion mapeia cada NUMBER coluna para o tipo numérico PostgreSQL mais específico (por exemplo,, SMALLINTINTEGER, ouBIGINT) com base em sua precisão e escala.

  • false— A conversão do esquema DMS mapeia todas as NUMBER colunas para. NUMERIC

Tipo: Boolean (true|false)

Padrão: true

Use uma função TO_CHAR () nativa do PostgreSQL ToCharFunctionOracle

Especifica se a Conversão do Esquema DMS emula a TO_CHAR função Oracle no código convertido.

  • false— A conversão do esquema DMS emula o TO_CHAR comportamento do Oracle no código convertido.

  • true— O DMS Schema Conversion converte TO_CHAR e TO_NCHAR chama a função nativa do PostgreSQL. TO_CHAR Selecione essa opção para evitar emulação quando suas cadeias de caracteres de formato forem compatíveis com o PostgreSQL.

Tipo: Boolean (true|false)

Padrão: false

Use uma função TO_DATE nativa do PostgreSQL () ToDateFunctionOracle

Especifica se a Conversão do Esquema DMS emula a TO_DATE função Oracle no código convertido.

  • false— A conversão do esquema DMS emula o TO_DATE comportamento do Oracle no código convertido.

  • true— A conversão de esquema do DMS converte TO_DATE chamadas para a função nativa do PostgreSQL. TO_DATE

Tipo: Boolean (true|false)

Padrão: false

Use uma função TO_NUMBER nativa do PostgreSQL () ToNumber

Especifica se a Conversão do Esquema DMS emula a TO_NUMBER função Oracle no código convertido.

  • false— A conversão do esquema DMS emula o TO_NUMBER comportamento do Oracle no código convertido.

  • true— A conversão de esquema do DMS converte TO_NUMBER chamadas para a função nativa do PostgreSQL. TO_NUMBER

Tipo: Boolean (true|false)

Padrão: false

Melhore o desempenho do código convertido em que o banco de dados e os aplicativos usam o mesmo fuso horário (ToTimeZone)

Especifica se o DMS Schema Conversion emula fusos horários no código convertido.

  • true— A conversão do esquema DMS não emula fusos horários. Use isso quando seu banco de dados e aplicativos usarem o mesmo fuso horário. O código convertido é executado mais rápido.

  • false— A conversão do esquema DMS emula fusos horários no código convertido.

Tipo: Boolean (true|false)

Padrão: false

Preencha as sequências convertidas com o último valor gerado no lado da fonte () AlertSequenceRestart

Especifica se a conversão do esquema DMS continua com as sequências convertidas do último valor gerado na fonte.

  • true— A conversão do esquema DMS define cada sequência convertida para começar do último valor gerado na fonte, para que as sequências continuem sem conflitos.

  • false— A conversão do esquema DMS inicia as sequências convertidas a partir de seu valor inicial padrão.

Tipo: Boolean (true|false)

Padrão: false

Converta colunas de chave primária e estrangeira do tipo de dados NUMBER para o tipo de dados BIGINT () ConvertNumberToBigint

Especifica se a Conversão de Esquema do DMS converte colunas de chave primária e chave estrangeira do NUMBER tipo de dados em. BIGINT Use com cuidado para evitar perda de dados se o banco de dados de origem armazenar números de ponto flutuante nessas colunas.

  • true— A conversão do esquema DMS mapeia as NUMBER colunas de chave primária e de chave estrangeira para. BIGINT

  • false— A conversão de esquema do DMS usa o mapeamento numérico padrão para essas colunas.

Tipo: Boolean (true|false)

Padrão: false

Converta somente acionadores e restrições ativos () IgnoreDisabledTriggersConstraints

Especifica se a conversão do esquema DMS ignora os gatilhos e restrições desativados durante a conversão.

  • true— O DMS Schema Conversion converte somente os gatilhos e restrições ativos e ignora os desativados.

  • false— O DMS Schema Conversion converte todos os gatilhos e restrições, incluindo os desativados.

Tipo: Boolean (true|false)

Padrão: false

Converta o código SQL dinâmico criado nas rotinas chamadas () ConvertOutputAsDynamic

Especifica se a Conversão de Esquema do DMS converte variáveis de string referenciadas fora da rotina como SQL dinâmico.

  • true— A conversão do esquema DMS converte variáveis de string referenciadas fora da rotina como SQL dinâmico.

  • false— A conversão do esquema DMS não converte essas variáveis de string como SQL dinâmico.

Tipo: Boolean (true|false)

Padrão: false

Converter procedimentos em funções (ConvertProceduresToFunction)

Especifica se a Conversão de Esquema do DMS converte procedimentos armazenados do Oracle em funções vazias do PostgreSQL.

  • true— O DMS Schema Conversion converte procedimentos armazenados do Oracle em funções vazias do PostgreSQL.

  • false— O DMS Schema Conversion converte procedimentos armazenados da Oracle em procedimentos PostgreSQL.

Tipo: Boolean (true|false)

Padrão: false

Mantenha os nomes das restrições geradas pelo sistema () ConvertSysConstraintNamesUsingOriginal

Especifica se a Conversão do Esquema DMS mantém os nomes originais das restrições geradas pelo sistema Oracle no destino. Use essa opção se o código Oracle de origem usar nomes de restrições gerados pelo sistema para criar restrições com os mesmos nomes no banco de dados de destino.

  • true— O DMS Schema Conversion mantém os nomes originais das restrições geradas pelo sistema Oracle no destino.

  • false— A conversão do esquema DMS gera novos nomes de restrições.

Tipo: Boolean (true|false)

Padrão: false

Defina o fuso horário do seu banco de dados de origem (UseDefaultTimeZoneForSysdateEmulation)

Especifica se a função que emula a SYSDATE função Oracle usa o fuso horário emDefaultTimeZoneForSysdateEmulation, para que o código convertido retorne os mesmos valores do seu banco de dados de origem.

  • true— A conversão do esquema DMS usa o fuso horário especificado em DefaultTimeZoneForSysdateEmulation para SYSDATE emulação.

  • false— A conversão do esquema DMS usa o fuso horário padrão para SYSDATE emulação.

Tipo: Boolean (true|false)

Padrão: false

DefaultTimeZoneForSysdateEmulation

O fuso horário que o DMS Schema Conversion usa quando a SYSDATE emulação é ativada. UseDefaultTimeZoneForSysdateEmulation Especifique um nome de fuso horário válido da IANAUTC, comoAmerica/New_York, ouEurope/Berlin. Esse valor não tem efeito quando UseDefaultTimeZoneForSysdateEmulation éfalse.

Tipo: String (nome do fuso horário da IANA)

Padrão: UTC

nota

A AWS Management Console lista uma opção adicional, Adicionar funções do pacote de extensões que geram exceções definidas pelo usuário, entre Converter procedimentos em funções e Manter os nomes das restrições geradas pelo sistema. Essa opção é configurada somente no AWS Management Console e não está disponível por meio da API ou da AWS CLI. O comportamento relacionado ao nível de gravidade é controlado pela configuração comum. ShowSeverityLevelInSql Para obter mais informações, consulte Configurações de conversão comuns.

Rotinas integradas do Oracle

Escolha as rotinas integradas do Oracle para usar no código convertido. O Oracle é uma extensão do PostgreSQL que fornece rotinas compatíveis com as funções integradas do Oracle. Cada rotina tem uma configuração booleana dedicada. Quando você define uma rotina comotrue, o DMS Schema Conversion converte a função incorporada correspondente do Oracle em sua rotina Oracle. Quando você a define comofalse, a Conversão de Esquema do DMS deixa a função como um item de ação para revisão manual. Para usar essas rotinas, a extensão orafce deve estar disponível em seu banco de dados de destino. Todas essas rotinas são padronizadas parafalse. Defina uma rotina para true somente depois de verificar se o comportamento da função em seu uso é compatível com a rotina do Oracle.

Nome da configuração Função integrada do Oracle
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle Pacote DBMS_ASSERT
DbmsOutputBuiltinFunctionOracle Pacote DBMS_OUTPUT
DbmsRandomBuiltinFunctionOracle Pacote DBMS_RANDOM
DbtimezoneBuiltinFunctionOracle DBTIMEZONE
DecodeBuiltinFunctionOracle DECODE
DumpBuiltinFunctionOracle DUMP
InstrBuiltinFunctionOracle INSTR
InstrbBuiltinFunctionOracle INSTRB
LastDayBuiltinFunctionOracle LAST_DAY
LengthBuiltinFunctionOracle LENGTH
LengthbBuiltinFunctionOracle LENGTHB
ListaggBuiltinFunctionOracle LISTAGG
LnnvlBuiltinFunctionOracle LNNVL
LpadBuiltinFunctionOracle LPAD
LtrimBuiltinFunctionOracle LTRIM
MedianBuiltinFunctionOracle MEDIAN
MonthsBetweenBuiltinFunctionOracle MONTHS_BETWEEN
NanvlBuiltinFunctionOracle NANVL
NextDayBuiltinFunctionOracle NEXT_DAY
NlssortBuiltinFunctionOracle NLSSORT
Nvl2BuiltinFunctionOracle NVL2
NvlBuiltinFunctionOracle NVL
RoundDateFmtBuiltinFunctionOracle ROUND(encontro)
RoundNumberBuiltinFunctionOracle ROUND(número)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(data e hora)
ToCharNumberBuiltinFunctionOracle TO_CHAR(número)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(encontro)
TruncNumberBuiltinFunctionOracle TRUNC(número)

Cada rotina é uma chave booleana separada. O exemplo a seguir ativa as rotinas e funções do Oracle para o OracleADD_MONTHS. NVL SUBSTR Adicione ou remova chaves para corresponder às funções em seu código-fonte e aplique as mesmas chaves a cada nome de seção que seu projeto usa.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Configurações de código SQL

Configure como o DMS Schema Conversion manipula objetos integrados da Oracle que o PostgreSQL não suporta.

Converta objetos embutidos não suportados em objetos stub () ConvUnsupportedBuiltinsToStubs

Especifica se a Conversão de Esquema do DMS substitui objetos incorporados não suportados por objetos stub.

  • false— A conversão do esquema DMS deixa objetos incorporados sem suporte como itens de ação no relatório de avaliação.

  • true— A conversão do esquema DMS substitui cada objeto incorporado não suportado por um objeto stub com a mesma assinatura. O objeto convertido é compilado para que você possa implantar e testar o restante do esquema antes de abordar stubs individuais.

Tipo: Boolean (true|false)

Padrão: false

Crie objetos stub em um esquema separado () CreateStubsInSeparateSchema

Especifica se a Conversão de Esquema do DMS cria objetos stub em um esquema separado. Essa opção aparece AWS Management Console somente quando a opção Converter objetos internos não suportados em objetos stub está selecionada e só entra em vigor quando essa opção está ativada.

  • true— A conversão do esquema DMS cria objetos stub em um esquema separado. Isso mantém os esquemas do aplicativo limpos e facilita a identificação de quais stubs ainda precisam ser implementados.

  • false— A conversão do esquema DMS cria objetos stub no mesmo esquema do objeto convertido.

Tipo: Boolean (true|false)

Padrão: true

Exemplo: configurar o Oracle para as configurações do PostgreSQL

O exemplo a seguir mantém as visualizações materializadas como visualizações materializadas do PostgreSQL, emula a pseudocoluna usando ROWID bigint o tipo de dados e converte procedimentos em funções. Aplique as mesmas configurações ao nome de cada seção que seu projeto usa (verifique DescribeConversionConfigurationprimeiro a saída).

{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }