我想在不同的PDB中FLASHBACK ARCHIVE一张表。我想创建一个单独的表空间用于闪回归档。我浏览了有关CDB (容器数据库)和PDB (可插拔数据库)的Oracle文档。我发现可以创建一个可以从所有CDB和CDB访问的普通用户。我想知道是否可以在Oracle CDB中创建一个公共表空间,该公共表空间可以由这个普通用户跨所有PDB访问?以及用于每个PDB的FLASHBACK ARCHIVE,该PDB使用在CDB中创建的公共表空间,使得公共用户存档到其PDB中的相应闪回档案中,并且每个闪回档案对于其他PDB中的用户是不可见的。
或者,在每个PDB中为闪回归档创建一个单独的表空间?
示例:假设在两个不同的PDB2 PDB1和PDB2中有一个EMPLOYEES表。在其他PDB中的用户不知道的情况下,以较少的工作量将员工表时间到时间存档的最佳方法是什么?
存在普通用户HR。如果可能,我希望PDB1和PDB2的HR将各自PDB的EMPLOYEES表存档到一个公共的TABLESPACE FLASH_TABLSPACE中。(或任何更好的替代方案)
发布于 2019-04-12 19:29:39
首先,multi-tenant architecture (具有多个PDB的CDB)允许分离关注点(SoC)。其中每个PDB都是独立的,并且不依赖于任何其他PDB来运行。这确保了一个PDB看不到另一个PDB中正在发生的事情。根容器(CDB)在更高级别(内存、插件、插件等)管理CDB。
根据您的要求,可以在每个PDB中创建闪回数据归档。我们不需要在CDB (ROOT)中创建表空间,这不是多租户设想的方式。每个PDB都是一个功能齐全的数据库,因此我们可以在PDB本身中创建闪回数据归档所需的表空间。闪回数据档案可以使用系统提供的普通用户(SYS、SYSTEM)或使用dba提供的普通用户(C##...)在PDB中创建。
https://stackoverflow.com/questions/55598525
复制相似问题