【问题标题】:Handle customer specific objects in Oracle在 Oracle 中处理客户特定对象
【发布时间】:2012-11-25 19:33:04
【问题描述】:

我们的软件解决方案拥有的客户越多,我们方案中的单个 oracle 对象(表、包、函数等)就越多。 现在,我们通过给它们提供识别名称(例如“X_CUSTOMER1_TABLENAME”)来将它们分开。 (我知道..... :-( )

在保持我们的引用干净以及将我们的引用与客户数据库部署/同步时,这不是很实用:一个客户将在部署时收到其他客户的对象。

这个问题有通用的解决方案吗?我们正在考虑为每个客户制定单独的计划。这样一来,我们将拥有具有基本功能的标准、未改动的方案和具有个性化内容的客户方案。

更具体一点:我们有大约 100 个基本表格,可充分利用软件的内容/功能。每个客户可能有 1 -5 个附加表,其中包含与单个包、功能等中的标准对象一起使用的“自定义”数据。 大多数情况下,只有该客户拥有这 1-5 个表格(例如,对任何其他公司都没有意义的公司特定内容)。

我将不胜感激任何提示或最佳做法。这是一个老式的关系数据库。

谢谢!

【问题讨论】:

    标签: oracle object database-schema handle


    【解决方案1】:

    我是一名 Oracle DBA,拥有超过 20 年的 Oracle 经验,这让我成为“老派” 我的建议是为每个客户提供自己的架构。 使事情更易于管理; - 按模式跟踪活动(用于计费目的) - oracle 按模式为您提供 I/O、CPU 和空间消耗的统计信息 - 跟踪空间使用情况(如果你把他们的模式放在他们自己的表空间中) - 您可以轻松地将用户从一个数据库移动到另一个数据库(用于增长) - 当客户离开时,您备份他们的架构并将其删除 - 您可以更好地管理您的备份,更频繁地备份活动帐户 和不太活跃的帐户不太频繁。 可能还有其他充分的理由,但这份简短的清单可能就足够了。 您的应用程序公用表进入它们自己的模式,但仅将只读表放入 这个架构;任何被客户修改的表都会进入他们的模式。 您可以创建一个主表 list_of_customers,用于计费和安全。 但只有 App Bus 管理员才能访问那个。

    【讨论】:

    • 嘿汤姆(?):-)谢谢你的回复。这已经帮助我决定采用每个客户的计划方式。我应该多解释的一件事是,安装将在我们的客户系统上进行。所以我想在我们的参考中为每个客户制定计划 0001、0002 等。但是,当我们在他们的系统上安装时,我们将只为该特定用户部署该方案。例如,对于客户 0001,我将部署 STANDARD 和 0001 方案。计费对我们来说不是真正的问题,但我可能会看看一些有趣的事情!
    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2019-04-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多