このページでは、移行したデータが完全かつ正確であることを確認する方法について説明します。少なくとも、移行した AlloyDB for PostgreSQL クラスタにデータベースとテーブルが存在することを確認する必要があります。
- 移行したデータベースに対して SQL コマンドを実行できるクライアントまたはクエリツール( Google Cloud コンソールの AlloyDB Studio や
psqlなど)を使用して、AlloyDB for PostgreSQL クラスタに接続します。AlloyDB for PostgreSQL のクラスタとインスタンスへの接続の詳細については、 AlloyDB for PostgreSQL 接続の概要をご覧ください。
- クライアントに依存しない ANSI SQL クエリを実行して、移行されたデータを確認します。
すべてのデータベースを一覧表示する
次のクエリを実行して、移行先の AlloyDB for PostgreSQL クラスタに、移行したすべての移行元データベースが含まれていることを確認します。
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;
- 合計行数を確認します。
- これらのクエリの結果をソース データベースと比較して、すべてのオブジェクト、行数、スキーマ構造が一致していることを確認します。
COUNT(*) クエリの実行にリソースを大量に消費する可能性がある大規模なテーブルの場合は、オープンソースの
データ検証ツール(DVT)の使用を検討してください。これにより、さまざまな環境でカスタム検証を実行するための、繰り返し可能な自動化された方法が提供されます。
確認した内容がすべて想定どおりであれば、Database Migration Service によってデータが正しく移行されています。