业务需求:测试库数据全量同步到正式库

【方法一】:

把oracle查询的数据导出为sql文件,执行sql文件里的insert语句,如下:

第一步,导出sql文件:

postgresql 怎么跨库连表_数据


第二步:用PL/Sql Developer 连接另外一个oracle数据库,打开这个sql文件,全选所有insert语句,执行所有插入sql语句即可:

postgresql 怎么跨库连表_数据_02


这种方法试用于插入大多数的数据库,无论是oracle数据库还是sql server数据库都可执行这个sql文件(全是insert语句)。

缺点是:当数据量大的时候,oracle数据库执行这些insert语句,效率会很低。

于是,接下来介绍第二种导入数据的方法,即:导出/导入CSV文件。

【方法二】:

第一步,在Pl/Sql Developer查询窗口查询数据,导出成CSV文件:

postgresql 怎么跨库连表_sql文件_03


导出的csv文件如下图:

postgresql 怎么跨库连表_数据库_04


第二步,把这个csv文件里的数据导入到另外一个数据库里,

用PL/Sql Developer 连接另外一个oracle数据库,

菜单-工具-文本导入器:

postgresql 怎么跨库连表_postgresql 怎么跨库连表_05

第三步,点击“文本导入器”窗口里,点击导入按钮:

postgresql 怎么跨库连表_postgresql 怎么跨库连表_06

第四步,选择导入CSV文件:

postgresql 怎么跨库连表_sql文件_07


导入后,界面如下:

postgresql 怎么跨库连表_oracle数据库_08

第五步,选择“到Oracle的数据”选项卡,点击下拉框选择“所有者”,点击下拉框选择要导入的表,选择“覆盖重复”,点击“导入”按钮:

postgresql 怎么跨库连表_postgresql 怎么跨库连表_09


导入成功入下图:

postgresql 怎么跨库连表_数据库_10


感谢原作者。

【遇到的问题】:

  • 1.覆盖导入跟忽略重复是一样的结果呢?暂时先删除原表数据再重新导入的。
    2.同步数据要考虑实际的业务,可能造成的影响,比如同步的数据表使用序列,测试库和正式库的序列值可能已经不一致,会对存量数据造成影响。
    3.同步前要先进行测试。