验证迁移

本页面介绍了如何确认迁移的数据完整且准确。您至少应验证迁移后的 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 已正确迁移数据。