验证迁移

本页面介绍了如何确认迁移的数据是否完整准确。您至少应运行 SQL 语句来验证迁移的 Cloud SQL 数据库中是否存在您的表。如需更精确地比较源数据库和目标数据库之间的数据,您可以 尝试使用开源数据验证工具

使用 SQL 语句验证目标数据

您可以运行 SQL 语句来验证迁移后的 Cloud SQL 数据库中是否存在您的表。执行以下操作:

  1. 使用可针对迁移后的数据库运行 SQL 命令的工具连接到 Cloud SQL for PostgreSQL 实例。

    如需详细了解如何连接到 Cloud SQL 实例,请参阅 Cloud SQL 文档中的连接选项

  2. 运行 SQL 命令以验证迁移的数据。例如:

    • 列出数据库中的所有表:
      SELECT * FROM pg_catalog.pg_tables;
    • 验证表格内容:
      SELECT * FROM TABLE_NAME';

使用数据验证工具验证数据

借助 开源数据验证工具,您可以在两个数据库之间执行非常精确的数据比较,但需要创建与源数据库和目标数据库的网络连接。

以下步骤展示了一个最简单的示例:

  1. 部署或使用可同时访问来源和目标位置的虚拟机。

  2. 在虚拟机中,创建一个用于安装数据验证工具的文件夹。

  3. 前往此文件夹。

  4. 使用 pip 安装数据验证工具。

    pip install google-pso-data-validator
    
  5. 创建与源 Oracle 数据库和目标 Cloud SQL for PostgreSQL 数据库的连接:

    data-validation connections add -c source Oracle --host 'ip-address' --port port --user username --password pswd --database database-name
    data-validation connections add -c target Postgres --host 'ip-address' --port port --user username --password pswd --database database-name
    

    例如:

    data-validation connections add -c source Oracle --host '10.10.10.11' --port 1521 --user system --password pswd --database XE
    data-validation connections add -c target Postgres --host '10.10.10.12' --port 5432 --user postgres --password pswd --database postgres
    
  6. 创建或生成要比较源数据库和目标数据库之间的数据的表列表:

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas schema-name)
    

    例如:

    export TABLES_LIST=$(data-validation find-tables --source-conn source --target-conn target --allowed-schemas public)
    
  7. 针对所有表运行完整验证:

    data-validation validate column --source-conn source --target-conn target --tables-list "${TABLES_LIST}"
    

我们建议您在复制期间运行此验证,以确保相对一致性。在促销活动时间较短的情况下,大型表查询可能需要过长时间才能运行完毕。在这种情况下,请使用数据验证工具添加过滤条件,以缩短运行时长,或准备表格列表,以便纳入一部分表格进行最终验证。