PDB 数据库概述
PDB(Pluggable Database)是 Oracle 12c 及以上版本引入的多租户架构中的一个重要概念。它允许在一个容器数据库(CDB)中创建多个可插拔数据库(PDB),每个 PDB 都拥有独立的模式和数据文件。这种设计不仅提高了资源利用率,还简化了数据库的管理和部署。
PDB 数据库的优势
- 资源隔离与共享:每个 PDB 拥有独立的模式和数据文件,但可以共享 CDB 的内存和进程资源。这种设计在保证隔离性的同时,提高了资源利用率。
- 简化管理:通过统一管理 CDB,可以简化数据库的备份、恢复和升级操作。
- 快速部署:新应用可以快速部署在新的 PDB 中,而无需创建新的数据库实例。
PDB 数据库的架构设计
PDB 数据库的架构设计是其强大功能和高效性能的基础。以下是 PDB 数据库的核心组件和架构特点:
核心组件
- 容器数据库(CDB):CDB 是 PDB 的宿主数据库,包含一个根容器(CDB$ROOT)、一个种子 PDB(PDB$SEED)以及多个用户创建的 PDB。
- 根容器(CDB$ROOT):包含 CDB 的元数据和公共数据字典,所有 PDB 都共享这些信息。
- 种子 PDB(PDB$SEED):用于创建新的 PDB,类似于模板数据库。
- 用户 PDB:用户创建的独立数据库,拥有自己的模式和对象。
架构特点
- 多租户架构:多个 PDB 共享一个 CDB 的资源,但彼此之间逻辑隔离。
- 可插拔性:PDB 可以轻松地在不同的 CDB 之间迁移,甚至可以在不同的服务器之间移动。
- 统一的元数据管理:所有 PDB 共享 CDB 的元数据,简化了数据库的管理。
PDB 数据库的创建与管理
创建 PDB
创建 PDB 可以通过多种方式实现,包括使用 DBCA(Database Configuration Assistant)、SQLPlus 或 Oracle Enterprise Manager。以下是一个使用 SQLPlus 创建 PDB 的示例:
-- 连接到 CDB
CONNECT sys/password@cdb1 AS SYSDBA;-- 创建新的 PDB
CREATE PLUGGABLE DATABASE pdb1 ADMIN USER pdbadmin IDENTIFIED BY password ROLES=(DBA) FILE_NAME_CONVERT=('/disk1/oradata/cdb1/pdbseed/','/disk1/oradata/cdb1/pdb1/');-- 打开 PDB
ALTER PLUGGABLE DATABASE pdb1 OPEN;-- 验证 PDB 状态
SELECT name, open_mode FROM v$pdbs;
管理 PDB
管理 PDB 包括启动、关闭、删除和迁移等操作。以下是一些常用的管理命令:

-- 启动 PDB
ALTER PLUGGABLE DATABASE pdb1 OPEN;-- 关闭 PDB
ALTER PLUGGABLE DATABASE pdb1 CLOSE IMMEDIATE;-- 删除 PDB
DROP PLUGGABLE DATABASE pdb1 INCLUDING DATAFILES;-- 迁移 PDB
ALTER PLUGGABLE DATABASE pdb1 UNPLUG;
-- 然后将 unplug 的文件移动到目标服务器,并使用如下 命令 plug 进去
CREATE PLUGGABLE DATABASE pdb1 USING '/path/to/pdb1.xml' COPY FILE_NAME_CONVERT=('/source/path/','/dest/path/');
PDB 数据库的性能优化
资源管理
PDB 数据库的资源管理可以通过 CDB 级别的资源管理器进行配置。以下是一个示例配置:
-- 连接到 CDB
CONNECT sys/password@cdb1 AS SYSDBA;-- 创建资源计划
CREATE PLANSET pdb_planset;-- 分配资源
ALTER SYSTEM SET resource_manager_plan='PDB_PLAN' SCOPE=BOTH;-- 配置 PDB 资源分配
BEGINDBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(plan => 'PDB_PLAN',pluggable_database => 'pdb1',cpu_p1 => 60,cpu_p2 => 40);
END;
/
备份与恢复
PDB 数据库的备份与恢复可以通过 RMAN(Recovery Manager)进行。以下是一个备份 PDB 的示例:
-- 连接到 CDB
CONNECT sys/password@cdb1 AS SYSDBA;-- 备份 PDB
BACKUP PLUGGABLE DATABASE pdb1;-- 恢复 PDB
RECOVER PLUGGABLE DATABASE pdb1;
监控与诊断
PDB 数据库的监控可以通过 Oracle Enterprise Manager 或 SQL 脚本进行。以下是一个使用 SQL 脚本监控 PDB 性能的示例:
-- 连接到 PDB
CONNECT sys/password@pdb1;-- 查看当前会话
SELECT * FROM v$session;-- 查看性能指标
SELECT * FROM v$sysmetric;-- 查看等待事件
SELECT * FROM v$session_wait;
通过以上步骤和技巧,可以有效地管理和优化 PDB 数据库,提升数据库系统的整体性能和可维护性。
文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有