移行の確認

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

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

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

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

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

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

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

データ検証ツールでデータを検証する

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

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

  1. ソースと宛先の両方にアクセスできる仮想マシンをデプロイするか、使用します。

  2. 仮想マシンに、データ検証ツールをインストールするフォルダを作成します。

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

  4. pip を使用してデータ検証ツールをインストールします。

    pip install google-pso-data-validator
    
  5. 移行元の Oracle データベースと移行先の Cloud SQL 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}"
    

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