Docs Menu
Docs Home
/ /

Oracle の移行前提条件の構成

Oracleソースデータベースからデータを移行すると、 Relational Migrator はデータベースで必要な構成変更を自動的にチェックし、それらを実装するためのSQLスクリプトを生成します。データベース管理者(DBA)にスクリプトを確認し、データベースサーバー上で コマンドを実行させます。このページでは、必要な構成手順の詳細について説明します。

サポートされているバージョンの Oracle の詳細については、 サポートされているデータベースとバージョン を参照してください。

  • Oracle 12c インスタンスから移行する場合は、 SYSDBA ロールとして コマンドを実行する必要があります。

  • Oracle 12c はプラグ可能なデータベース(PDB)の概念を導入しました。一部のコマンドは PDB で実行できますが、ARCHIVELOG を有効にするようなコマンドは、コンテナとマスターデータベース(CDB)で実行する必要があります。各アーキテクチャの詳細については、コンテナ データベースとプラグ可能なデータベースの概要 を参照してください。

  • 一部のコマンドは、データベースが単一テナントかマルチテナントかによって異なります。マルチテナントデータベースでは、権限にサフィックス CONTAINER=ALL が含まれている必要があります。データベースがマルチテナントであるかどうかを確認するには、次のSQLクエリを実行します。

    SELECT cdb AS is_multitenant FROM v$database;

Oracleインスタンスをスナップショット ジョブ用に構成するには、次の手順に従います。

1

次のコードでは、Oracle インスタンスに接続するための Relational Migrator 用の新しい Oracle サービス アカウントが作成されます。 あるいは、既存の Oracle サービス アカウントを使用して、適切な権限で Relational Migrator に接続することもできます。

Tip

  1. サービス アカウントを作成します。

    CREATE USER <user> IDENTIFIED BY "<password>";
  2. サービス アカウントが移行ジョブのテーブルを所有していることを確認します。

    必要な権限は、移行ジョブで使用されるテーブルをサービス アカウントが所有しているかどうかによって異なります。 テーブルの所有権を確認するには、次のクエリを実行します。

    SELECT TABLE_NAME, OWNER
    FROM ALL_TABLES
    WHERE TABLE_NAME ='<table_name>'
    ORDER BY OWNER, TABLE_NAME;
  3. サービス アカウントに権限を付与します。

    重要

    マルチテナントコンテナデータベースを一般的なユーザーとして移行する場合は、権限を付与するときに CONTAINER=ALL を追加します。 (例: )。

    GRANT CREATE SESSION TO <user> CONTAINER=ALL;

    サービス アカウントテーブル所有者の場合:

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

    サービス アカウントがテーブル所有者でない場合

    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>;
  • Relational Migrator は、行レベルの変更をキャプチャするためにオープンソースの Debeziumコネクタに依存しています。詳細については、Debezium Oracle を参照してください

  • アーカイブ ロギングを有効にする方法の詳細については、アーカイブ済み Redo ログの管理 を参照してください。

  • 追加のトラブルシューティングとデバッグ情報については、 Debezium Oracleヘルプ記事を参照してください。

戻る

Oracle

項目一覧