1. 概念与结构方面

    • CDB(Container Database) - 容器数据库

      • 概念:CDB是Oracle 12c及更高版本引入的一种数据库架构概念。它是一个包含零个或多个PDB的数据库容器。可以将CDB看作是一个大的容器,为多个数据库实例提供了一个共享的运行环境。
      • 结构组成:CDB包含了系统元数据和一些公共的组件,如系统表空间、控制文件、日志文件等。CDB内部有一个根容器(ROOT),它存储着与整个CDB相关的元数据信息,如CDB的结构、用户信息(这些用户可以管理整个CDB)等。此外,CDB还可以包含种子容器(SEED),它是一个模板,用于创建新的PDB。
    • PDB(Pluggable Database) - 可插拔数据库

      • 概念:PDB是在CDB架构下独立存在的、可插拔的数据库。每个PDB在逻辑上类似于一个独立的数据库实例,有自己的用户、表空间、数据字典(部分独立)等。
      • 结构组成:PDB包含自己的应用数据、用户模式、本地表空间等。虽然它在CDB内部,但它的操作相对独立,例如可以单独进行启动、关闭、备份、恢复等操作(在CDB的框架下)。
  2. 用户与权限方面

    • CDB

      • 在CDB中,有一些特殊的用户,如具有CDB_DBA角色的用户,这些用户可以管理整个CDB,包括创建、删除、插拔PDB等操作。他们可以访问和操作CDB中的所有PDB(在权限范围内),例如查看PDB的状态、调整PDB的资源分配等。
      • 系统权限主要集中在对CDB整体架构、资源管理以及对PDB的管理操作上。例如,只有具有特定CDB级权限的用户才能创建新的PDB或者将PDB从一个CDB迁移到另一个CDB。
    • PDB

      • 每个PDB有自己的用户体系,这些用户只能访问和操作所属PDB内部的数据和对象。例如,PDB中的一个普通用户可以在自己的PDB内创建表、视图、存储过程等数据库对象,但不能直接访问其他PDB中的数据(除非通过特殊的授权或数据共享机制)。
      • PDB内部的用户权限管理与传统的Oracle数据库实例中的用户权限管理类似,根据业务需求授予不同的权限,如SELECT、INSERT、UPDATE、DELETE等权限来操作PDB内的数据库对象。
  3. 资源管理与性能方面

    • CDB

      • 在CDB层面可以进行整体的资源管理,例如,可以对CDB内的所有PDB进行资源分配,确定每个PDB可以使用的CPU、内存、I/O等资源的上限。这种集中式的资源管理有助于在多PDB环境下合理分配资源,提高整体资源利用率。
      • CDB的启动和关闭过程相对复杂一些,因为它涉及到内部多个PDB的状态管理。当CDB启动时,它需要按照一定的顺序启动内部的PDB(如先启动根容器,再启动种子容器,最后启动其他PDB);关闭时也需要遵循相应的顺序。
    • PDB

      • 每个PDB可以在CDB分配的资源范围内独立进行性能优化。例如,PDB的管理员可以根据自己PDB内的业务负载情况,优化表结构、索引等以提高查询性能。
      • 由于PDB相对独立,在进行一些高负载操作(如大规模数据导入、复杂查询等)时,对其他PDB的影响相对较小(只要不超出CDB分配的资源范围)。这有助于在多租户环境下(多个PDB可能对应多个不同的租户或业务部门)隔离性能问题,保证各个PDB的相对稳定性。
  4. 数据管理与备份恢复方面

    • CDB

      • 在数据管理方面,CDB提供了一个统一的架构来管理多个PDB的数据。例如,CDB的存储管理可以影响到所有PDB的存储布局,如设置表空间的存储参数等。
      • 对于备份恢复操作,CDB可以进行整体的备份,包括根容器、种子容器和所有的PDB。这种整体备份方式可以简化备份管理流程,但也可能导致备份文件较大。同时,在恢复时,可以选择恢复整个CDB或者特定的PDB(需要合适的备份策略和恢复技术支持)。
    • PDB

      • 每个PDB可以有自己的数据管理策略,例如,根据自身业务数据的特点设置不同的表空间管理策略、数据归档策略等。
      • PDB可以单独进行备份和恢复操作,这在多租户环境下非常有用。例如,一个PDB发生数据损坏时,可以单独对该PDB进行恢复操作,而不会影响其他PDB的正常运行。这种独立性有助于提高数据管理的灵活性和灾难恢复的效率。

瑾明达
1 声望0 粉丝