移行の確認

このページでは、移行したデータが完全かつ正確であることを確認する方法について説明します。少なくとも、移行した Cloud SQL データベース インスタンスにテーブルが存在することを確認する必要があります。

  1. 移行されたデータベースに対して SQL コマンドを実行できるツール( Google Cloud コンソールの Cloud SQL Studio や psql など)を使用して、Cloud SQL インスタンスに接続します。

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

  2. SQL クエリを実行して、移行されたデータを確認します。

    すべてのデータベースを一覧表示する

    次のクエリを実行して、移行先の Cloud SQL インスタンスに、移行したすべての移行元データベースが含まれていることを確認します。

    SELECT datname FROM pg_database
    WHERE datistemplate = false;

    データベース内のすべてのテーブルを一覧表示する

    次のクエリを実行して、データベース内のすべてのユーザー テーブルを一覧表示します。

    SELECT table_schema, table_name
    FROM information_schema.tables
    WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
      AND table_type = 'BASE TABLE'
    ORDER BY table_schema, table_name;

    テーブル列の定義とデータ型を確認する

    次のクエリを実行して、特定のテーブルの列名、データ型、null 可能性を確認します。

    SELECT
      column_name,
      data_type,
      character_maximum_length,
      is_nullable,
      column_default
    FROM information_schema.columns
    WHERE table_name = 'TABLE_NAME'
    ORDER BY ordinal_position;

    テーブルの行数とサンプルデータを確認する

    次のクエリを実行して、行数を確認し、特定のテーブルのサンプル行を検査します。

    1. 合計行数を確認します。
      SELECT COUNT(*) FROM TABLE_NAME;
    2. 移行されたレコードのサンプルを表示します。
      SELECT * FROM TABLE_NAME LIMIT 10;

    主キーと制約を確認する

    次のクエリを実行して、主キー、外部キー、一意の制約が正しく作成されたことを確認します。

    SELECT
      table_schema,
      table_name,
      constraint_name,
      constraint_type
    FROM information_schema.table_constraints
    WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
    ORDER BY table_schema, table_name, constraint_type;

    インデックスを確認する

    次のクエリを実行して、移行されたテーブルにインデックスが作成されたことを確認します。

    SELECT
      schemaname,
      tablename,
      indexname,
      indexdef
    FROM pg_indexes
    WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
    ORDER BY schemaname, tablename, indexname;

    シーケンスを確認する

    次のクエリを実行して、移行されたデータベースにシーケンスが存在することを確認します。

    SELECT
      sequence_schema,
      sequence_name,
      data_type
    FROM information_schema.sequences
    ORDER BY sequence_schema, sequence_name;
  3. これらのクエリの結果を移行元データベースと比較して、すべてのオブジェクト、行数、スキーマ構造が一致していることを確認します。

確認した内容がすべて想定どおりであれば、Database Migration Service によってデータが正しく移行されています。