Migrar Aplicativos de Bancos de Dados MySQL para o Autonomous Database
Você pode migrar instruções SQL de MySQL para o Oracle SQL e executar as instruções no Autonomous Database.
- Traduzir Instruções MySQL para o Oracle SQL
Você pode traduzir instruções SQL gravadas em MySQL para o Oracle SQL e executar as instruções traduzidas no Autonomous Database. - Executar Instruções MySQL no Autonomous Database
Você pode traduzir e executar interativamente instruções MySQL no seu Autonomous Database. - Migrar Arquivos MySQL para o Oracle SQL
Você pode migrar um arquivo contendo instruções MySQL para um arquivo contendo instruções Oracle SQL. - Limitações para Migração e Tradução de Instruções MySQL para o Oracle SQL
Esta seção resume as limitações para migrar instruções SQL de MySQL para o Oracle SQL.
Tópico principal: Migrar Aplicativos do SQL Não Oracle para o Oracle SQL
Traduzir Instruções MySQL para Oracle SQL
Você pode traduzir instruções SQL gravadas em MySQL para o Oracle SQL e executar as instruções traduzidas no Autonomous Database.
Use DBMS_CLOUD_MIGRATION.MIGRATE_SQL
para traduzir uma instrução MySQL para o Oracle SQL. Há variantes de procedimento e função de DBMS_CLOUD_MIGRATION.MIGRATE_SQL
.
Migrar a Instrução MySQL para o Oracle SQL com o Procedimento MIGRATE_SQL
O exemplo a seguir aceita a instrução SQL gravada em MySQL como entrada, traduz a instrução para o Oracle SQL, designa a instrução SQL traduzida para output_sql_result
e imprime o resultado:
SET SERVEROUTPUT ON
declare output_sql_result CLOB;
BEGIN
DBMS_CLOUD_MIGRATION.MIGRATE_SQL
(
original_sql => 'CREATE TABLE movie (movie_id INT, title VARCHAR(255));',
output_sql => output_sql_result,
source_db => 'MYSQL');
DBMS_OUTPUT.PUT_LINE (output_sql_result);
END;
/
OUTPUT
–-------------------------------------------------------------
CREATE TABLE movie (movie_id NUMBER(10), title VARCHAR2(255));
O parâmetro original_sql
especifica a instrução MySQL.
O parâmetro output_sql
armazena o SQL traduzido.
O parâmetro source_db
especifica MySQL como o nome do banco de dados.
Consulte MIGRATE_SQL Procedimento e Função para obter mais informações.
Migrar a Instrução MySQL para o Oracle SQL com a Função MIGRATE_SQL
O exemplo a seguir mostra a função DBMS_CLOUD_MIGRATION.MIGRATE_SQL
em uma instrução SELECT
. A entrada da função é uma instrução MySQL e a função retorna a instrução traduzida no Oracle SQL:
SELECT DBMS_CLOUD_MIGRATION.MIGRATE_SQL
(
'CREATE TABLE movie (film_id INT, title VARCHAR(255));','MYSQL') AS output FROM DUAL;
OUTPUT
------------------------------------------------------------------------------
create table cars (brand VARCHAR2(255), model VARCHAR2(255);
Consulte MIGRATE_SQL Procedimento e Função para obter mais informações.
Observações para executar DBMS_CLOUD_MIGRATION.MIGRATE_SQL
:
-
Você poderá encontrar um erro durante a conversão se a instrução SQL de entrada não for suportada no Oracle SQL. Consulte Limitações para Migração e Tradução de Instruções MySQL para o Oracle SQL para obter mais informações.
-
Os subprogramas
DBMS_CLOUD_MIGRATION.MIGRATE_SQL
aceitam apenas uma instrução SQL como entrada. Portanto, somente uma instrução SQL pode ser traduzida por chamada.
Tópico principal: Migrar Aplicativos de Bancos de Dados MySQL para o Autonomous Database
Executar Instruções MySQL no Autonomous Database
Você pode traduzir e executar interativamente instruções MySQL no seu Autonomous Database.
Use o procedimento ENABLE_TRANSLATION
para ativar a tradução em tempo real de instruções SQL gravadas em MySQL. Depois de ativar a tradução em uma sessão, as instruções MySQL são traduzidas automaticamente e executadas como instruções Oracle SQL, e você pode ver os resultados.
ENABLE_TRANSLATION
, você poderá fazer interativamente o seguinte em uma sessão:
-
Crie as tabelas. Por exemplo, crie as tabelas
MOVIE
eINVENTORY
. -
inserir dados em tabelas.
-
Tabelas de consulta.
-
Executar operações JOIN em tabelas. Por exemplo, é possível fazer uma junção externa esquerda em tabelas.
Para ativar a tradução com MySQL e executar comandos:
Você pode consultar a view V$MAPPED_SQL
para listar as instruções MySQL traduzidas e mapeadas na memória para instruções SQL do Oracle.
Por exemplo:
SELECT v.*
FROM v$mapped_sql v, dba_objects o
WHERE v.sql_translation_profile_id = o.object_id
AND o.object_name = 'MYSQL'
AND o.object_type = 'TRANSLATION PROFILE';
Consulte V$MAPPED_SQL para obter mais informações.
Tópico principal: Migrar Aplicativos de Bancos de Dados MySQL para o Autonomous Database
Migrar Arquivos MySQL para o Oracle SQL
Você pode migrar um arquivo contendo instruções MySQL para um arquivo contendo instruções Oracle SQL.
O procedimento DBMS_CLOUD_MIGRATION.MIGRATE_FILE
traduz instruções SQL em um arquivo MySQL no Object Storage e gera um novo arquivo contendo o Oracle SQL.
Como pré-requisito, faça upload de um ou mais arquivos MySQL com uma extensão .sql
para um local no Object Storage. Os exemplos a seguir usam o arquivo mysqltest.sql
submetido a upload para o Object Storage. Consulte Colocar dados no armazenamento de objetos para obter mais informações.
Para migrar arquivos MySQL para o Oracle SQL:
Execute a consulta a seguir para exibir o conteúdo do arquivo mysqltest_oracle.sql
:
SELECT UTL_RAW.CAST_TO_VARCHAR2 (DBMS_CLOUD.GET_OBJECT(
credential_name => 'OCI$RESOURCE_PRINCIPAL',
object_uri => 'https://objectstorage.region.oraclecloud.com/n/namespace/b/bucket/o/files'))
FROM dual;
UTL_RAW.CAST_TO_VARCHAR2(DBMS_CLOUD.GET_OBJECT(CREDENTIAL_NAME=>'CRED1',OBJECT_U
--------------------------------------------------------------------------------
DROP TABLE movie;
DROP TABLE inventory;
CREATE TABLE movie (film_id NUMBER(10), title VARCHAR2(255));
INSERT INTO movie (film_id, title) VALUES (123, 'Tangled');
INSERT INTO movie (film_id, title) VALUES (234, 'Frozen');
CREATE TABLE movie (film_id NUMBER(10), inventory_id NUMBER(10));
INSERT INTO movie (film_id, inventory_id) VALUES (123, 223);
INSERT INTO inventory (film_id, inventory_id) VALUES (234, 334);
SELECT * FROM movie;
Como alternativa, se você criar uma credencial em vez do controlador de recursos, OCI$RESOURCE_PRINCIPAL
, especifique o nome da credencial no parâmetro credential_name
.
Consulte GET_OBJECT Procedimento e Função para obter mais informações.
Tópico principal: Migrar Aplicativos de Bancos de Dados MySQL para o Autonomous Database
Limitações para Migração e Tradução de Instruções MySQL para Oracle SQL
Esta seção resume as limitações para migrar instruções SQL de MySQL para o Oracle SQL.
Observe as seguintes restrições ao migrar do sabor do banco de dados MySQL para o Oracle SQL:
-
Variáveis Globais Definidas pelo Usuário: MySQL variáveis globais definidas pelo usuário declaradas usando o formato
@var_name
não são suportadas durante a conversão para o Oracle SQL. -
Identificadores com aspas: os identificadores MySQL que estão entre os backticks (`), como
`var_name`
, não são suportados durante a tradução para o Oracle SQL. Só há suporte para identificadores sem aspas ou entre aspas duplas. -
Delimitadores:
-
Para funções e procedimentos, somente os delimitadores
$$
e//
são suportados. -
Para instruções SQL, somente o delimitador
;
é suportado.
-
-
ADDTIME(datetime, time)
-
AES_DECRYPT(crypt_str, key_str)
-
AES_ENCRYPT(str, key_str)
-
BIN(num)
-
CONV(num, from_base, to_base)
-
CONVERT_TZ(datetime, from, to)
-
CRC32(exp)
-
DATE_ADD(date, interval)
Tópico principal: Migrar Aplicativos de Bancos de Dados MySQL para o Autonomous Database