Menu Docs
Página inicial do Docs
/
Relational Migrator
/ /

Configurar pré-requisitos de migração para Oracle

Nesta página

  • Sobre esta tarefa
  • Passos
  • Saiba mais

Para executar tarefas de migração de um banco de banco de dados de origem Oracle, o banco de dados de dados pode exigir algumas alterações de configuração. Se o Relational Migrator determinar que o banco de dados de dados precisa de alterações de configuração, ele gerará automaticamente um script SQL com as alterações necessárias. É recomendável que um administrador do banco de dados (DBA) revise os comandos neste script e execute sua execução no servidor do banco de dados de dados. As configurações do Oracle dependem do tipo de tarefa de migração:

  • As tarefas de migração de snapshots migram todos os dados e depois param.

  • O tarefa de migração contínua executa um snapshot e, em seguida, entra em um estágio de CDC para replicar continuamente as alterações de dados.

Para obter detalhes sobre as versões compatíveis do Oracle, consulte Bancos de dados e versões compatíveis.

  • Se você estiver migrando de uma instância do Oracle 12c, deverá executar comandos como a role SYSDBA.

  • No Oracle 12c, o conceito de banco de banco de dados conectável foi introduzido. Alguns desses comandos podem ser executados no PDB(banco de banco de dados plugável) enquanto comandos como habilitar o ARCHIVELOG devem ser executados no CDB(container/master banco de dados). Para obter detalhes sobre cada arquitetura, consulte Visão geral de bancos de dados de contêineres e bancos de dados conectáveis.

  • O registro complementar não é permitido nas edições Oracle Express.

1

O código a seguir cria uma nova conta de serviço do Oracle para o Relational Migrator se conectar à instância do Oracle. Como alternativa, você pode usar uma conta de serviço Oracle existente para se conectar ao Relational Migrator com as permissões apropriadas.

  1. Criar uma conta de serviço:

    CREATE USER '<user>'@'localhost' IDENTIFIED BY '<password>';
  2. Conceda permissões selecionadas à conta de serviço:

    A permissão necessária para a conta de serviço depende se as tabelas pertencem à conta de serviço usada para executar a tarefa de migração. Para verificar a propriedade da tabela, execute a seguinte query:

    SELECT TABLE_NAME, OWNER
    FROM ALL_TABLES
    WHERE TABLE_NAME ='<table_name>'
    ORDER BY OWNER, TABLE_NAME;

    Se a conta de serviço for o proprietário da tabela:

    GRANT CREATE SESSION TO <user>;
    GRANT SELECT ON V$DATABASE TO <user>;

    Se a conta de serviço não for a proprietário da tabela:

    GRANT CREATE SESSION TO <user>;
    GRANT SELECT_CATALOG_ROLE TO <user>;
    GRANT SELECT ANY TABLE TO <user>;
    GRANT SELECT ON V$DATABASE TO <user>;
    GRANT FLASHBACK ANY TABLE TO <user>;
1

O código a seguir cria uma nova conta de serviço do Oracle para o Relational Migrator se conectar à instância do Oracle. Como alternativa, você pode usar uma conta de serviço Oracle existente para se conectar ao Relational Migrator com as permissões apropriadas.

  1. Criar uma conta de serviço:

    CREATE USER '<user>'@'localhost' IDENTIFIED BY '<password>';
  2. Conceda permissões selecionadas à conta de serviço:

    A permissão necessária para a conta de serviço depende se as tabelas pertencem à conta de serviço usada para executar a tarefa de migração. Para verificar a propriedade da tabela, execute a seguinte query:

    SELECT TABLE_NAME, OWNER
    FROM ALL_TABLES
    WHERE TABLE_NAME ='<table_name>'
    ORDER BY OWNER, TABLE_NAME;

    Se a conta de serviço for o proprietário da tabela:

    GRANT CREATE SESSION TO <user>;
    GRANT SELECT ON V$DATABASE TO <user>;

    Se a conta de serviço não for a proprietário da tabela:

    GRANT CREATE SESSION TO <user>;
    GRANT SELECT_CATALOG_ROLE TO <user>;
    GRANT SELECT ANY TABLE TO <user>;
    GRANT SELECT ON V$DATABASE TO <user>;
    GRANT FLASHBACK ANY TABLE TO <user>;
  1. Conceda permissões adicionais à conta de serviço para executar trabalhos de migração contínuos:

    GRANT SET CONTAINER TO <user>;
    GRANT EXECUTE_CATALOG_ROLE TO <user>;
    GRANT SELECT ANY TRANSACTION TO <user>;
    GRANT LOGMINING TO <user>;
    GRANT CREATE TABLE TO <user>;
    GRANT LOCK ANY TABLE TO <user>;
    GRANT CREATE SEQUENCE TO <user>;
    GRANT SELECT ON DBA_TABLESPACES TO <user>;
    GRANT EXECUTE ON DBMS_LOGMNR TO <user>;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO <user>;
    GRANT SELECT ON V$LOG TO <user>;
    GRANT SELECT ON V$LOG_HISTORY TO <user>;
    GRANT SELECT ON V$LOGMNR_LOGS TO <user>;
    GRANT SELECT ON V$LOGMNR_CONTENTS TO <user>;
    GRANT SELECT ON V$LOGMNR_PARAMETERS TO <user>;
    GRANT SELECT ON V$LOGFILE TO <user>;
    GRANT SELECT ON V$ARCHIVED_LOG TO <user>;
    GRANT SELECT ON V$ARCHIVE_DEST_STATUS TO <user>;
    GRANT SELECT ON V$TRANSACTION TO <user>;
2

Para executar tarefas contínuas no Oracle, você deve ativar o LogMiner no nível do banco de dados de dados. O seguinte bloco de código é um exemplo de código gerado automaticamente, que você pode executar manualmente substituindo o nome do banco de dados de dados:

ALTER SYSTEM SET db_recovery_file_dest_size = 10G;
ALTER SYSTEM SET db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' SCOPE=spfile;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

Dica

Para verificar se o LogMiner já está habilitado, execute a seguinte query:

SELECT LOG_MODE FROM V$DATABASE;
3
  1. Para executar tarefas de migração contínuas no Oracle, você deve ativar o registro complementar no nível do banco de dados de dados:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  2. Você também deve ativar o registro complementar para cada tabela na migração:

    ALTER TABLE schemaName.tableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    /* Additional ALTER TABLE STATEMENTS... */

Voltar

MySQL