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 tarefa de sincronização de um reconhecimento de data center de origem Oracle, o reconhecimento de data center pode exigir algumas alterações de configuração. Se o Relational Migrator determinar que o reconhecimento de data center precisa de alterações de configuração, ele gerará automaticamente um script SQL com as alterações necessárias. É recomendável que um DBA revise os comandos neste script e execute sua execução no reconhecimento de data center do servidor. As configurações do Oracle dependem do tipo de tarefa de sincronização:

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

  • A tarefa de sincronização contínua executa um snapshot e, em seguida, insere um estágio do 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 dados conectável foi introduzido. Alguns desses comandos podem ser executados no PDB(banco de dados plugável) enquanto comandos como habilitar o ARCHIVELOG devem ser executados no CDB(container/banco de dados mestre). 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 de seleção à conta de serviço:

    A permissão necessária para a conta de serviço depende do fato de as tabelas serem de propriedade da conta de serviço usada para executar a tarefa de sincronizaçã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 de seleção à conta de serviço:

    A permissão necessária para a conta de serviço depende do fato de as tabelas serem de propriedade da conta de serviço usada para executar a tarefa de sincronizaçã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 tarefas de sincronização contínua:

    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. 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:

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 sincronização contínua no Oracle, você deve ativar o registro complementar no nível do banco 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