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á.
Migrando da Oracle para o Amazon RDS for My SQL ou o Amazon Aurora SQL My com o AWS Schema Conversion Tool
Para emular as funções do banco de dados Oracle em seu My SQL code convertido, use o pacote de SQL extensão Oracle to My em AWS SCT. Para obter mais informações sobre pacotes de extensão, consulte Usando pacotes de extensão com AWS Schema Conversion Tool.
Tópicos
Privilégios do My SQL como banco de dados de destino
Os privilégios necessários para My SQL como alvo são os seguintes:
CREATEEM * . *
ALTEREM * . *
DROPEM * . *
INDEXEM * . *
REFERENCESEM * . *
SELECTEM * . *
CREATEVIEWEM * . *
SHOWVIEWEM * . *
TRIGGEREM * . *
CREATEROUTINEEM * . *
ALTERROUTINEEM * . *
EXECUTEEM * . *
CREATETEMPORARYTABLESEM * . *
AWS_LAMBDA_ACCESS
INSERT, UPDATE EM AWS _ ORACLE _EXT. *
INSERT,UPDATE, DELETE EM AWS _ ORACLE _ EXT _DATA. *
Se você usar a versão 5.7 ou inferior do Meu SQL banco de dados como destino, conceda a permissão INVOKE LAMBDA *.* em vez de AWS _ _. LAMBDA ACCESS Para Meus SQL bancos de dados versão 8.0 e superior, conceda a ACCESS permissão AWS _ LAMBDA _.
É 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 USER '
user_name
' IDENTIFIED BY 'your_password
'; GRANT CREATE ON *.* TO 'user_name
'; GRANT ALTER ON *.* TO 'user_name
'; GRANT DROP ON *.* TO 'user_name
'; GRANT INDEX ON *.* TO 'user_name
'; GRANT REFERENCES ON *.* TO 'user_name
'; GRANT SELECT ON *.* TO 'user_name
'; GRANT CREATE VIEW ON *.* TO 'user_name
'; GRANT SHOW VIEW ON *.* TO 'user_name
'; GRANT TRIGGER ON *.* TO 'user_name
'; GRANT CREATE ROUTINE ON *.* TO 'user_name
'; GRANT ALTER ROUTINE ON *.* TO 'user_name
'; GRANT EXECUTE ON *.* TO 'user_name
'; GRANT CREATE TEMPORARY TABLES ON *.* TO 'user_name
'; GRANT AWS_LAMBDA_ACCESS TO 'user_name
'; GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name
'; GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_EXT_DATA.* TO 'user_name
';
No exemplo anterior, substitua user_name
com o nome do seu usuário. Em seguida, substitua your_password
com uma senha segura.
Se você usar o Meu SQL banco de dados versão 5.7 ou inferior como destino, use GRANT INVOKE LAMBDA ON *.* TO '
em vez deuser_name
'GRANT AWS_LAMBDA_ACCESS TO '
.user_name
'
Para usar o Amazon RDS for My SQL ou o Aurora My SQL como destino, defina o lower_case_table_names
parâmetro como. 1
Esse valor significa que o Meu SQL servidor manipula identificadores de nomes de objetos, como tabelas, índices, acionadores e bancos de dados, sem distinção entre maiúsculas e minúsculas. Se você ativou o registro binário em sua instância de destino, defina o parâmetro log_bin_trust_function_creators
como 1
. Nesse caso, você não precisa usar as características DETERMINISTIC
, READS SQL DATA
ou NO SQL
para criar funções armazenadas. Para configurar esses parâmetros, crie um novo grupo de parâmetros de banco de dados ou modifique um grupo de parâmetros de banco de dados existente.
Configurações de SQL conversão de Oracle para My
Para editar as configurações de SQL conversão do Oracle para Minhas, 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 — My SQL. AWS SCT exibe todas as configurações disponíveis para a SQL conversão Oracle to My.
As configurações SQL de conversão de Oracle para My 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 resolver isso, seu banco de dados Oracle de origem pode usar a
ROWID
pseudocoluna, mas My SQL não oferece suporte a funcionalidades semelhantes. AWS SCT pode emular aROWID
pseudocoluna no código convertido. Para fazer isso, escolha Gerar como identidade em Gerar ID de linha?.Se o código do Oracle de origem não utilizar a pseudocoluna
ROWID
, escolha Não gerar em Gerar ID de linha? Nesse caso, o código convertido funciona mais rápido. -
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 My 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
TO_NUMBER
as funções nativas My SQLTO_CHAR
TO_DATE
, e. 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 saber se o banco de dados e as aplicações são executados em fusos horários diferentes. Por padrão, AWS SCT emula os 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.
Considerações sobre a migração
Ao converter RDS Oracle em for My SQL ou Aurora MySQL, para alterar a ordem em que as instruções são executadas, você pode usar uma GOTO
instrução e um rótulo. Todas SQL as declarações PL/que seguem uma GOTO
declaração são ignoradas e o processamento continua no rótulo. As instruções GOTO
e os rótulos podem ser usados em qualquer lugar em um procedimento, lote ou bloco de instruções. Você também pode fazer GOTO as próximas declarações.
O meu SQL não usa GOTO
declarações. Quando AWS SCT converte o código que contém uma GOTO
instrução, ele converte a instrução para usar uma instrução BEGIN…END
ouLOOP…END LOOP
.
Você pode encontrar exemplos de como AWS SCT converte GOTO
declarações na tabela a seguir.
Instrução do Oracle | Minha SQL declaração |
---|---|
|
|
|
|
|
|
Convertendo a WITH declaração no Oracle RDS para for My SQL ou Amazon Aurora My SQL
Você usa a WITH cláusula (subquery_factoring) no Oracle para atribuir um nome (query_name) a um bloco de subconsulta. Em seguida, você poderá fazer referência ao bloco de subconsulta em vários lugares na consulta especificando query_name. Se um bloco de subconsulta não contiver links ou parâmetros (local, procedimento, função, pacote), AWS SCT converterá a cláusula em uma exibição ou tabela temporária.
A vantagem de converter a cláusula em uma tabela temporária é que referências repetidas à subconsulta podem ser mais eficientes. A maior eficiência ocorre porque os dados são facilmente recuperados da tabela temporária em vez de serem solicitados por cada referência. Isso pode ser emulado com visualizações adicionais ou uma tabela temporária. O nome da visualização usa o formato <procedure_name>$<subselect_alias>
.
Você pode encontrar exemplos na tabela a seguir.
Instrução do Oracle | Minha SQL declaração |
---|---|
|
|
|
|
|
|