本頁面說明如何確認遷移的資料完整且正確。至少應確認資料庫和資料表存在於遷移後的 AlloyDB for PostgreSQL 叢集。
- 使用用戶端或查詢工具連線至 AlloyDB for PostgreSQL 叢集,以便對遷移的資料庫執行 SQL 指令 (例如 Google Cloud 控制台中的 AlloyDB Studio 或
psql)。如要進一步瞭解如何連線至 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;
檢查資料表資料欄定義和資料類型
執行下列查詢,驗證特定資料表的資料欄名稱、資料類型和可為空值性:
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(*) 查詢可能會耗用大量資源,建議使用開放原始碼的
Data Validation Tool (DVT)。這項功能提供自動化且可重複的方法,可在不同環境中執行自訂驗證。
如果檢查結果符合預期,代表資料庫遷移服務已正確遷移資料。