【问题标题】:Production Clone for an Oracle Test DatabaseOracle 测试数据库的生产克隆
【发布时间】:2016-03-02 14:29:36
【问题描述】:

我们的测试数据库与生产数据库具有相同的数据库架构。 我想拥有以下功能:

  • DQL 语句应该转到测试数据库。如果没有结果,则语句在生产环境中运行,并将结果返回到测试数据库。
  • DML 语句应仅适用于测试数据库。
    如果我运行 update tablename set ... where ...;并且语句在生产数据库上找到结果,结果应该返回到测试数据库并将更新的结果插入到测试数据库中。

  • 我认为它称为快照克隆,仅适用于 oracle db 12c。 由于我们有 11.2.0.4 版本,是否可以手动构建这些功能,例如有触发器和视图?

    【问题讨论】:

    • 为什么不用数据泵每天更新开发?

    标签: database oracle clone


    【解决方案1】:

    非常 对您的问题表示“是”,尽管按照您的建议去做会布满地雷。我不会推荐它。

    OP 说“...与生产数据库相同的数据库架构。”你的意思是每个用户、权限、角色、表、约束、索引、视图、包、函数等都是一样的吗?在 TEST 中对这些中的任何一个进行任何更改都可能导致在 PROD 中成功的 DML 语句在 TEST 中失败。有很多数据一致性和完整性问题需要解决。 [即使“数据库架构”只是 1 个用户架构也是如此。]

    数据库“快照”的一般概念是将数据库视为一个整体,将所有内容“冻结”,然后将冻结的图片复制到其他地方。假设冻结的数据库没有任何状态更改——这使得副本保持一致。

    【讨论】:

    • 权限、角色、表、约束、视图都一样。
    • 你有一个我没想到的观点。如果在 TEST 上也给出了来自 PROD 的元组上的更新,那么我们就会出现不一致。由于数据状态,进程也可以在 PROD 上触发,而在 TEST 上它们不会。所以我得先做个快照。谢谢你:)
    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2013-07-11
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多