移行の確認

このページでは、移行したデータが完全かつ正確であることを確認する方法について説明します。少なくとも、SQL ステートメントを実行して、移行した AlloyDB for PostgreSQL データベースにテーブルが存在することを確認する必要があります。移行元データベースと移行先データベースの間でより正確な データ比較を行うには、 オープンソースの Data Validation Tool を使用してみてください

SQL ステートメントを使用して移行先データを検証する

SQL ステートメントを実行して、移行した AlloyDB for PostgreSQL データベースにテーブルが存在することを確認できます。手順は次のとおりです。

  1. 移行したデータベースに対して SQL コマンドを実行できるツールを使用して、Cloud SQL for PostgreSQL インスタンスに接続します。

    Cloud SQL インスタンスへの接続の詳細については、Cloud SQL ドキュメントの 接続オプション をご覧ください。

  2. SQL コマンドを実行して、移行したデータを検証します。次に例を示します。

    • データベース内のすべてのテーブルを一覧表示します。
      SELECT * FROM pg_catalog.pg_tables;
    • テーブルの内容を確認します。
      SELECT * FROM TABLE_NAME';

Data Validation Tool を使用して検証する

オープンソースの Data Validation Tool を使用すると、2 つのデータベース間で非常に正確なデータ比較を行うことができますが、移行元データベースと移行先データベースへのネットワーク接続を作成する必要があります。

最小限の例を次に示します。

  1. 移行元と移行先の両方にアクセスできる仮想マシンをデプロイまたは使用します。

  2. 仮想マシンに、Data Validation Tool をインストールするフォルダを作成します。

  3. このフォルダに移動します。

  4. pip を使用して Data Validation Tool をインストールします。

    pip install google-pso-data-validator
    
  5. 移行元 Oracle データベースと移行先 AlloyDB for PostgreSQL データベースへの接続を作成します。

    data-validation connections add -c source Oracle --host 'ip-address' --port port --user username --password pswd --database database-name
    data-validation connections add -c target Postgres --host 'ip-address' --port port --user username --password pswd --database database-name
    

    次に例を示します。

    data-validation connections add -c source Oracle --host '10.10.10.11' --port 1521 --user system --password pswd --database XE
    data-validation connections add -c target Postgres --host '10.10.10.12' --port 5432 --user postgres --password pswd --database postgres
    
  6. 移行元データベースと移行先データベース間でデータを比較するテーブルのリストを作成または生成します。

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas schema-name)
    

    次に例を示します。

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas public)
    
  7. すべてのテーブルに対して完全な検証を実行します。

    data-validation validate column --source-conn source --target-conn target --tables-list "${TABLES_LIST}"
    

相対的な整合性を確保するため、レプリケーション中にこの検証を実行することをおすすめします。昇格期間が短い場合、大きなテーブルのクエリの実行に時間がかかりすぎる可能性があります。このような場合は、Data Validation Tool を使用してフィルタを追加し、実行時間を短縮するか、最終検証用にテーブルのサブセットを含めるようにテーブルリストを準備します。