【问题标题】:Tools for creating a "test" like environment on a development database用于在开发数据库上创建类似“测试”环境的工具
【发布时间】:2011-04-21 10:39:04
【问题描述】:

我们有一个用于生产的 Oracle Enterprise 数据库和另一个用作 QA 和开发数据库的实例。 QA 要求在数据库中为他们提供单独的模式,以便他们可以测试与开发人员所做的更改隔离的应用程序。例如,假设在开发中使用的模式和将在生产中使用的模式称为 APP_OWNER 并且 APP_OWNER 可以包含对其他模式中的表具有 FK 引用的表,例如在 BASE_OWNER 中。这个想法是创建一个 QA_APP_OWNER 模式并将生产数据拉入该模式,并将任何引用的 BASE_OWNER 表也拉入 QA_APP_OWNER 模式。一个简化的例子是:

Prod Setup:
----------------
BASE_OWNER.users
APP_OWNER.users (synonym to BASE_OWNER.users)
APP_OWNER.audit_users with FK to BASE_OWNER.users

QA Setup:
----------------
QA_APP_OWNER.users  (copied data from prod)
QA_APP_OWNER.audit_users (FK to APP_OWNER.users)

这应该是可能的,因为我们不编写包含模式的代码/SQL。 (即,我们为运行应用程序的架构之外的表创建基于架构的同义词)

我的问题是,有没有很好的工具可以轻松创建这样的 QA_APP_OWNER 架构?我知道导出的 FROMUSER TOUSER 选项,但如果我没记错的话,这会将整个模式移动到另一个模式,但它不会让我一直到我想要的地方 b/c 我需要更改FK 上的参考资料。我不知道没有办法导出 DDL,手动更改它,然后手动导入数据。这不是一个有吸引力的选项,因为许多引用是对还引用其他表的表的引用,并且 APP_OWNER 模式本身具有过多的表。我担心的是,这越是手动,就越有可能发生错误,从而使被测试的东西在转移到生产环境时发生故障。一个不错的解决方案是为 Oracle 的开发人员和 QA 实例提供许可证,但有人告诉我“这不在预算之内”。

【问题讨论】:

  • 咨询您的 Oracle 代表。有了处理器许可,您应该能够在您的许可服务器上运行任意数量的实例。
  • 我们没有运行另一个实例的选项。
  • '与开发人员对架构所做的更改隔离'也许,但与数据库更改(修补、初始化参数等)无关。拥有一个单独的 QA 环境是一个很好的想法,即使不是必不可少的,但这样做似乎并没有给你(他们)带来太多好处。无论如何,最好在 QA 中准确复制生产模式和同义词,以便在上线之前发现新对象的潜在问题。 (如果你不能有一个新的 QA 实例,你可以有一个新的 dev 实例来代替吗?*8-)

标签: database oracle database-design testing oracle11g


【解决方案1】:

不要这样做.. 设置单独的 QA 和 Development 数据库。你想要的东西不值得麻烦。

【讨论】:

  • 感谢您验证我的理智。这正是我对此事的立场,但我被告知无论如何都要这样做。我看到了创建 QA_X 模式如何解决让 QA 和开发人员互相踩踏的问题,但是要做到这一点所涉及的工作以及您使用不同的数据库脚本测试某些东西而不是您将要执行创建的脚本的事实环境。在生产中似乎是一个糟糕的解决方案,并且会带来更多问题。药胜于病。
【解决方案2】:

有点长镜头,但impdp REMAP_SCHEMA 选项会处理其他模式中的外键吗?我知道有些事情它不会尝试处理,但不记得提到过这种情况 - 可能只是因为它不寻常。

您可能会在所有模式中创建一个expdp,然后一个impdp 将它们全部重新映射到QA_APP_OWNER。显然这不是我曾经尝试过的东西......

【讨论】:

  • 我会看看是否有帮助。感谢您的建议。
  • 这很好用。使用 REMAP_SCHEMA 和 REMAP_TABLESPACE 我能够生成一个 QA_x 表空间,其中包含来自其他模式的所有必要表。我仍然觉得做一个单独的数据库会是一个更好的解决方案,这使得替代方案至少在某种程度上易于管理。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
相关资源
最近更新 更多