【问题标题】:Can common tablespace created in Oracle CDB accessed across all PDBs?在 Oracle CDB 中创建的公共表空间可以跨所有 PDB 访问吗?
【发布时间】:2019-04-09 17:52:05
【问题描述】:

我想FLASHBACK ARCHIVE 不同 PDB 中的表。我想为闪回归档创建一个单独的表空间。我正在阅读有关 CDB(容器数据库)和 PDB(可插拔数据库)的 Oracle 文档。我发现可以创建一个可以从所有 PDB 和 CDB 访问的通用用户。我想知道是否可以在 Oracle CDB 中创建一个通用表空间,这个通用用户可以跨所有 PDB 访问该表空间?并且每个 PDB 使用 FLASHBACK ARCHIVE,它使用在 CDB 中创建的公共表空间,以便公共用户归档到其 PDB 中的相应闪回归档中,并且每个闪回归档对其他 PDB 中的用户不可见。

或者,要在每个 PDB 中为 FLASHBACK ARCHIVE 创建一个单独的表空间?

示例:假设在 2 个不同的 PDB PDB1 和 PDB2 中有一个 EMPLOYEES 表。在其他 PDB 中的用户不知情且省力的情况下,不时归档 EMPLOYEES 表的最佳方法是什么?

存在一个普通用户 HR。如果可能,我希望 PDB1 和 PDB2 的 HR 将各个 PDB 的 EMPLOYEES 表归档到一个公共的TABLESPACEFLASH_TABLSPACE 中。 (或任何更好的替代品)

【问题讨论】:

    标签: database oracle oracle12c multi-tenant tablespace


    【解决方案1】:

    首先,multi-tenant architecture(具有多个 PDB 的 CDB)允许关注点分离 (SoC)。每个 PDB 都是独立的,不依赖任何其他 PDB 来运行。这确保了一个 PDB 无法看到另一个 PDB 中正在发生的事情。 ROOT Container (CDB) 在更高级别(内存、插件、插件等)管理 PDB。

    根据您的要求,可以在每个 PDB 中创建闪回数据存档。我们不需要在 CDB (ROOT) 中创建表空间,这与多租户的设想不同。每个 PDB 都是一个功能齐全的数据库,因此我们可以在 PDB 本身中创建闪回数据存档所需的表空间。闪回数据存档可以使用系统提供的普通用户(SYS、SYSTEM)或使用 dba 提供的普通用户(C##...)在 PDB 中创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2015-11-13
      • 2017-03-10
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2013-10-28
      相关资源
      最近更新 更多