このページでは、移行したデータが完全かつ正確であることを確認する方法について説明します。少なくとも、移行した Cloud SQL データベース インスタンスにテーブルが存在することを確認する必要があります。
- 移行されたデータベースに対して SQL コマンドを実行できるツール( Google Cloud コンソールの Cloud SQL Studio や
psqlなど)を使用して、Cloud SQL インスタンスに接続します。Cloud SQL インスタンスへの接続の詳細については、Cloud SQL ドキュメントの 接続オプションをご覧ください。
- 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;
テーブルの行数とサンプルデータを確認する
次のクエリを実行して、行数を確認し、特定のテーブルのサンプル行を検査します。
- 合計行数を確認します。
SELECT COUNT(*) FROM TABLE_NAME;
- 移行されたレコードのサンプルを表示します。
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;
- 合計行数を確認します。
- これらのクエリの結果を移行元データベースと比較して、すべてのオブジェクト、行数、スキーマ構造が一致していることを確認します。
確認した内容がすべて想定どおりであれば、Database Migration Service によってデータが正しく移行されています。