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á.
Migração da Oracle para a Amazon RDS para Postgre SQL ou Amazon Aurora Postgre com SQL AWS Schema Conversion Tool
Ao converter um banco de dados Oracle RDS para Postgre SQL ou Amazon Aurora SQL Postgre, esteja ciente do seguinte.
Tópicos
Ao converter objetos do sistema Oracle em PostgreSQL, AWS SCT realiza conversões conforme mostrado na tabela a seguir.
Objeto do sistema do Oracle | Descrição | Objeto Postgre SQL convertido |
---|---|---|
V$ VERSION | Exibe os números de versão dos componentes da biblioteca principal no banco de dados Oracle | aws_oracle_ext.v$version |
V$ INSTANCE | Uma exibição que mostra o estado da instância atual. | aws_oracle_ext.v$instance |
Você pode usar AWS SCT para converter arquivos Oracle SQL *Plus em psql, que é um front-end baseado em terminal para Postgre. SQL Para obter mais informações, consulte Convertendo o aplicativo usando SQL AWS SCT.
Privilégios do Postgre SQL como banco de dados de destino
Para usar o Postgre SQL como alvo, é AWS SCT necessário o CREATE ON DATABASE
privilégio. Certifique-se de conceder esse privilégio para cada banco de dados Postgre SQL de destino.
Para usar os sinônimos públicos convertidos, altere o caminho de pesquisa padrão do banco de dados para "$user", public_synonyms, public
.
É possível utilizar o exemplo de código a seguir para criar um usuário do banco de dados e conceder os privilégios.
CREATE ROLE
user_name
LOGIN PASSWORD 'your_password
'; GRANT CREATE ON DATABASEdb_name
TOuser_name
; ALTER DATABASEdb_name
SET SEARCH_PATH = "$user", public_synonyms, public;
No exemplo anterior, substitua user_name
com o nome do seu usuário. Em seguida, substitua db_name
com o nome do seu banco de dados de destino. Finalmente, substitua your_password
com uma senha segura.
Para usar o Amazon RDS for Postgre SQL como alvo, é AWS SCT necessário o rds_superuser
privilégio.
No PostgreSQL, somente o proprietário ou a do esquema superuser
pode descartar um esquema. O proprietário pode descartar um esquema e todos os objetos incluídos nesse esquema, mesmo que o proprietário do esquema não possua alguns de seus objetos.
Ao usar usuários diferentes para converter e aplicar esquemas diferentes ao seu banco de dados de destino, você pode receber uma mensagem de erro quando não AWS SCT consegue descartar um esquema. Para evitar essa mensagem de erro, use o perfil superuser
.
Configurações de SQL conversão de Oracle para Postgre
Para editar as configurações de SQL conversão do Oracle para o Postgre, escolha Configurações em e AWS SCT, em seguida, escolha Configurações de conversão. Na lista superior, escolha Oracle e, em seguida, escolha Oracle — Postgre SQL. AWS SCT exibe todas as configurações disponíveis para SQL conversão de Oracle para Postgre.
As configurações de SQL conversão de Oracle para Postgre AWS SCT incluem opções para o seguinte:
-
Para limitar o número de comentários com itens de ação no código convertido.
Em Adicionar comentários no código convertido para os itens de ação de severidade selecionada e superior, escolha a severidade dos itens de ação. AWS SCT adiciona comentários no código convertido para itens de ação da severidade selecionada e superior.
Por exemplo, para minimizar o número de comentários em seu código convertido, escolha Somente erros. Para incluir comentários para todos os itens de ação em seu código convertido, escolha Todas as mensagens.
-
Para permitir AWS SCT a conversão de visualizações materializadas da Oracle em tabelas ou visualizações materializadas no Postgre. SQL Para Conversão de visão materializada em, escolha como converter as visões materializadas de origem.
-
Para trabalhar com seu código-fonte Oracle quando ele inclui as
TO_NUMBER
funçõesTO_CHAR
TO_DATE
, e com parâmetros que o Postgre SQL não suporta. Por padrão, a AWS SCT emula a utilização desses parâmetros no código convertido.Quando seu código-fonte Oracle inclui somente parâmetros SQL compatíveis com o Postgre, você pode usar funções nativas do Postgre SQL
TO_CHAR
TO_DATE
, e.TO_NUMBER
Nesse caso, o código convertido funciona mais rápido. Para incluir somente esses parâmetros, selecione os seguintes valores:A função TO_ CHAR () não usa strings de formatação específicas do Oracle
A função TO_ DATE () não usa strings de formatação específicas do Oracle
A função TO_ NUMBER () não usa strings de formatação específicas do Oracle
-
Para resolver quando seu banco de dados Oracle de origem armazena somente valores inteiros nas colunas de chave primária ou estrangeira do tipo de dados
NUMBER
, AWS SCT pode converter essas colunas no tipo de dadosBIGINT
. Essa abordagem melhorará o desempenho do código convertido. Para adotar essa abordagem, selecione Converter colunas de chave NUMBER primária/estrangeira em BIGINT colunas. Verifique se a origem não inclui valores de ponto flutuante nessas colunas para evitar perda de dados. -
Ignorar gatilhos e restrições desativados em seu código-fonte. Para fazer isso, escolha Ignorar triggers e restrições desabilitados.
-
Para usar AWS SCT para converter variáveis de string que são chamadas de dinâmicasSQL. O código de banco de dados pode alterar os valores dessas variáveis de string. Para garantir que AWS SCT sempre converta o valor mais recente dessa variável de string, selecione Converter o SQL código dinâmico criado nas rotinas chamadas.
-
Para resolver isso, a SQL versão 10 e anteriores do Postgre não oferece suporte a procedimentos. Se você ou seus usuários não estiverem familiarizados com o uso de procedimentos no PostgreSQL, AWS SCT poderão converter procedimentos Oracle em funções do PostgreSQL. Para fazer isso, selecione Converter procedimentos em perfis.
-
Ver informações adicionais sobre os itens de ação ocorridos. Para fazer isso, você pode adicionar funções específicas ao pacote de extensões selecionando Adicionar um bloco de aumento de exceções para problemas de migração com os próximos níveis de gravidade. Escolha os níveis de gravidade para aumentar as exceções definidas pelo usuário.
-
Trabalhar com um banco de dados Oracle de origem que pode incluir restrições com nomes gerados automaticamente. Se o código-fonte utilizar esses nomes, certifique-se de selecionar Converter os nomes das restrições geradas pelo sistema usando os nomes de origem. Se o código-fonte utilizar essas restrições, mas não utilizar seus nomes, desmarque essa opção para aumentar a velocidade da conversão.
-
Para saber se o banco de dados e as aplicações são executados em fusos horários diferentes. Por padrão, AWS SCT emula fusos horários no código convertido. No entanto, essa emulação não é necessária quando o banco de dados e as aplicações utilizam o mesmo fuso horário. Nesse caso, selecione O fuso horário no lado do cliente corresponde ao fuso horário no servidor.
-
Para saber se o banco de dados da origem e do destino são executados em fusos horários diferentes. Se eles forem executados em fusos horários diferentes, o perfil que emula o perfil do Oracle integrado
SYSDATE
retornará valores diferentes em comparação com o perfil de origem. Para garantir que suas funções de origem e destino retornem os mesmos valores, escolha Definir fuso horário padrão para SYSDATE emulação. -
Utilizar os perfis da extensão orafce no código convertido. Para fazer isso, em Usar implementação do orafce, selecione as funções a serem usadas. Para obter mais informações sobre orafce, consulte orafce
on. GitHub
Converter sequências Oracle
AWS SCT converte sequências do Oracle para o Postgre. SQL Se você usar sequências para manter as restrições de integridade, certifique-se de que os novos valores de uma sequência migrada não se sobreponham aos valores existentes.
Para preencher sequências convertidas com o último valor do banco de dados de origem
-
Abra seu AWS SCT projeto com a Oracle como fonte.
-
Selecione Configurações e, em seguida, escolha Configurações de conversão.
-
Na lista superior, escolha Oracle e, em seguida, escolha Oracle — Postgre SQL. AWS SCT exibe todas as configurações disponíveis para SQL conversão de Oracle para Postgre.
-
Escolha Preencher sequências convertidas com o último valor gerado no lado da fonte.
-
Escolha OK para salvar as configurações e fechar a caixa de diálogo Configurações de conversão.
Convertendo Oracle ROWID
Em um banco de dados Oracle, a ROWID pseudocoluna contém o endereço da linha da tabela. A ROWID pseudocoluna é exclusiva da Oracle, então AWS SCT converte a ROWID pseudocoluna em uma coluna de dados no Postgre. SQL Ao usar essa conversão, você pode manter as ROWID informações.
Ao converter a ROWID pseudocoluna, AWS SCT pode criar uma coluna de dados com o bigint
tipo de dados. Se não existir uma chave primária, AWS SCT define a ROWID coluna como chave primária. Se existir uma chave primária, AWS SCT define a ROWID coluna com uma restrição exclusiva.
Se o código-fonte do banco de dados incluir operações com ROWID as quais você não pode executar usando um tipo de dados numérico, AWS SCT pode criar uma coluna de dados com o tipo de character varying
dados.
Para criar uma coluna de dados para o Oracle ROWID para um projeto
-
Abra seu AWS SCT projeto com a Oracle como fonte.
-
Selecione Configurações e, em seguida, escolha Configurações de conversão.
-
Na lista superior, escolha Oracle e, em seguida, escolha Oracle — Postgre SQL. AWS SCT exibe todas as configurações disponíveis para SQL conversão de Oracle para Postgre.
-
Em Gerar ID de linha, siga um destes procedimentos:
-
Escolha Gerar como identidade para criar uma coluna de dados numéricos.
-
Escolha Gerar como tipo de domínio de caracteres para criar uma coluna de dados de caracteres.
-
-
Escolha OK para salvar as configurações e fechar a caixa de diálogo Configurações de conversão.
Convertendo a dinâmica do Oracle SQL
A Oracle fornece duas maneiras de implementar a dinâmicaSQL: usando uma EXECUTE IMMEDIATE instrução ou chamando procedimentos no SQL pacote DBMS _. Se seu banco de dados Oracle de origem incluir objetos com dinâmicaSQL, use AWS SCT para converter SQL instruções dinâmicas Oracle em PostgreSQL.
Para converter Oracle dynamic SQL em Postgre SQL
Abra seu AWS SCT projeto com a Oracle como fonte.
Escolha um objeto de banco de dados que use dinâmica SQL na exibição da árvore de origem do Oracle.
Abra o menu de contexto (clique com o botão direito do mouse) do objeto, escolha Converter esquema e aceite substituir os objetos se eles existirem. A captura de tela a seguir mostra o procedimento convertido abaixo do procedimento Oracle com dinâmicaSQL.
Conversão de partições Oracle
AWS SCT atualmente suporta os seguintes métodos de particionamento:
-
Intervalo
-
Lista
-
Intervalo de várias colunas
-
Hash
-
Composto (lista de lista, lista de intervalos, intervalo de lista, hash de lista, hash de intervalo, hash de hash)