Oracle 测试数据库的生产克隆
Production Clone for an Oracle Test Database
我们的测试数据库与生产数据库具有相同的数据库模式。
我想要以下功能:
DQL 语句应该转到测试数据库。如果没有结果,在生产环境上语句运行s,returns结果到测试数据库。
DML 语句应该只适用于测试数据库。
如果我 运行 update tablename set ... where ...;并且该语句在生产数据库上找到结果,结果应该 return 到测试数据库并将更新的结果插入测试数据库。
我认为这称为快照克隆,仅适用于 oracle db 12c。
由于我们有 11.2.0.4 版,是否可以手动构建这些功能,例如有触发器和视图?
一个 非常 合格 "yes" 你的问题,尽管按照你的建议去做是充满地雷的。我不推荐它。
OP 说“...与生产数据库相同的数据库架构。”你是说每个用户、权限、角色、table、约束、索引、视图、包、函数等都是一样的吗?对 TEST 中任何这些的任何更改都可能导致在 PROD 中成功的 DML 语句在 TEST 中失败。有很多数据一致性和完整性问题需要解决。 [即使 "database schema" 只是 1 个用户模式也是如此。]
数据库的一般概念 'snapshot' 是将数据库视为一个整体,"freezing" 一切,然后将冻结的图片复制到其他地方。假设冻结的数据库没有任何状态更改——这使副本保持一致。
我们的测试数据库与生产数据库具有相同的数据库模式。
我想要以下功能:
如果我 运行 update tablename set ... where ...;并且该语句在生产数据库上找到结果,结果应该 return 到测试数据库并将更新的结果插入测试数据库。
我认为这称为快照克隆,仅适用于 oracle db 12c。 由于我们有 11.2.0.4 版,是否可以手动构建这些功能,例如有触发器和视图?
一个 非常 合格 "yes" 你的问题,尽管按照你的建议去做是充满地雷的。我不推荐它。
OP 说“...与生产数据库相同的数据库架构。”你是说每个用户、权限、角色、table、约束、索引、视图、包、函数等都是一样的吗?对 TEST 中任何这些的任何更改都可能导致在 PROD 中成功的 DML 语句在 TEST 中失败。有很多数据一致性和完整性问题需要解决。 [即使 "database schema" 只是 1 个用户模式也是如此。]
数据库的一般概念 'snapshot' 是将数据库视为一个整体,"freezing" 一切,然后将冻结的图片复制到其他地方。假设冻结的数据库没有任何状态更改——这使副本保持一致。