1. 首页 > Oracle教程 > 正文

Oracle教程FG353-PDB架构

本文档风哥主要介绍Oracle数据库可插拔数据库(PDB)架构相关知识,包括PDB架构的概念、组成、优势、规划、配置、管理、监控、优化等内容,由风哥教程参考Oracle官方文档Multitenant内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 PDB架构的概念

Oracle数据库可插拔数据库(Pluggable Database,PDB)是多租户架构的核心组件,它是一个独立的数据库实例,拥有自己的数据字典、用户数据和系统对象。PDB可以快速创建、删除和移动,支持独立的备份和恢复操作。PDB共享CDB的内存结构和后台进程,但拥有独立的表空间和数据文件。PDB为不同的业务应用提供独立的数据库环境,实现资源隔离和业务隔离。更多视频教程www.fgedu.net.cn

PDB架构的特点:

  • 拥有独立的数据字典和用户数据
  • 共享CDB的内存结构和后台进程
  • 支持快速创建、删除和移动
  • 支持独立的备份和恢复
  • 实现资源隔离和业务隔离

1.2 PDB架构的组成

Oracle数据库PDB架构的组成:

  • 数据字典:PDB拥有独立的数据字典,存储PDB的元数据
  • 用户数据:PDB拥有独立的用户数据和表空间
  • 系统对象:PDB拥有独立的系统对象和系统表空间
  • 本地用户:PDB拥有独立的本地用户和权限
  • 表空间:PDB拥有独立的表空间和数据文件
  • 临时表空间:PDB拥有独立的临时表空间
  • 撤销表空间:PDB可以拥有独立的撤销表空间(可选)

1.3 PDB架构的优势

Oracle数据库PDB架构的优势:

  • 快速部署:PDB可以快速创建和删除,加快部署速度
  • 资源隔离:每个PDB拥有独立的资源,实现资源隔离
  • 业务隔离:每个PDB拥有独立的业务环境,实现业务隔离
  • 独立备份:PDB可以独立备份和恢复,简化备份恢复操作
  • 灵活迁移:PDB可以快速迁移到其他CDB,实现灵活迁移
风哥提示:PDB架构是Oracle数据库多租户架构的核心,通过使用PDB架构,可以实现快速部署、资源隔离、业务隔离、独立备份、灵活迁移。

Part02-生产环境规划与建议

2.1 PDB架构规划

Oracle数据库PDB架构规划要点:

# PDB架构规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB架构
4. 规划PDB数量
5. 规划资源分配
6. 规划备份恢复策略
7. 规划高可用方案
8. 测试和验证

# 适用场景
– 多租户应用系统
– 业务隔离需求
– 快速部署需求
– 资源隔离需求

# 不适用场景
– 单租户应用系统
– 低资源需求系统
– 传统架构系统

2.2 PDB架构设计

Oracle数据库PDB架构设计建议:

# PDB架构设计原则
– 基于业务需求设计
– 基于资源需求设计
– 最小化资源争用
– 最大化资源利用率
– 合理配置参数

# PDB设计策略
– 合理配置表空间
– 配置适当的用户权限
– 配置适当的资源管理
– 配置适当的备份策略
– 配置适当的恢复策略

# 设计步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB架构
4. 规划资源分配
5. 测试性能效果
6. 调整配置

2.3 PDB架构最佳实践

Oracle数据库PDB架构最佳实践:

  • 合理规划PDB数量:根据业务需求和系统资源规划PDB数量
  • 合理分配资源:根据PDB的重要性合理分配资源
  • 使用资源管理器:使用资源管理器管理PDB资源分配
  • 定期备份PDB:定期备份PDB,确保数据安全
  • 监控PDB性能:定期监控PDB性能,及时发现和处理问题
  • 使用本地用户:合理使用本地用户,简化管理
生产环境建议:PDB架构规划应基于业务需求和系统资源,合理规划PDB数量,合理分配资源,使用资源管理器,定期备份PDB,监控PDB性能,使用本地用户,确保数据库运行高效。学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

3.1 PDB架构配置

3.1.1 创建PDB

# 查看CDB中的容器
SQL> SELECT con_id, name, open_mode FROM v$containers ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
1 CDB$ROOT READ WRITE
2 PDB$SEED READ ONLY

# 创建PDB
SQL> CREATE PLUGGABLE DATABASE fgfgfgsalespdb
ADMIN USER fgfgfgsales_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’);

Pluggable database created.

# 创建PDB
SQL> CREATE PLUGGABLE DATABASE hrpdb
ADMIN USER hr_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’);

Pluggable database created.

# 查看PDB
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB MOUNTED
4 HRPDB MOUNTED

3.1.2 打开PDB

# 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN;

Pluggable database altered.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE

# 设置PDB自动启动
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb SAVE STATE;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb SAVE STATE;

Pluggable database altered.

# 查看PDB自动启动状态
SQL> SELECT pdb_name, con_id, state FROM dba_pdbs ORDER BY con_id;

PDB_NAME CON_ID STATE
———– —— ———-
PDB$SEED 2
SALESPDB 3 OPEN
HRPDB 4 OPEN

3.1.3 配置PDB表空间

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

# 查看PDB表空间
SQL> SELECT tablespace_name, status, contents
FROM dba_tablespaces
ORDER BY tablespace_name;

TABLESPACE_NAME STATUS CONTENTS
—————————— ——— ———
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT

# 创建PDB表空间
SQL> CREATE TABLESPACE fgfgfgsales_data
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_data01.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

Tablespace created.

# 查看PDB表空间
SQL> SELECT tablespace_name, status, contents
FROM dba_tablespaces
ORDER BY tablespace_name;

TABLESPACE_NAME STATUS CONTENTS
—————————— ——— ———
SALES_DATA ONLINE PERMANENT
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT

# 查看PDB表空间文件
SQL> SELECT file_name, tablespace_name, bytes/1024/1024 AS size_mb
FROM dba_data_files
ORDER BY tablespace_name;

FILE_NAME TABLESPACE_NAME SIZE_MB
————————————————————– —————– ———-
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/system01.dbf SYSTEM 250
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/sysaux01.dbf SYSAUX 350
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/undotbs01.dbf UNDOTBS1 100
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf USERS 100
/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/fgfgfgsales_data01.dbf SALES_DATA 100

3.2 PDB架构管理

3.2.1 管理PDB

# 查看PDB状态
SQL> SELECT con_id, name, open_mode, total_size, free_space
FROM v$pdbs
ORDER BY con_id;

CON_ID NAME OPEN_MODE TOTAL_SIZE FREE_SPACE
—— ——— ———- ———- ———–
2 PDB$SEED READ ONLY 1048576 524288
3 SALESPDB READ WRITE 1048576 524288
4 HRPDB READ WRITE 1048576 524288

# 关闭PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb CLOSE IMMEDIATE;

Pluggable database altered.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB MOUNTED
4 HRPDB READ WRITE

# 删除PDB
SQL> DROP PLUGGABLE DATABASE fgfgfgsalespdb INCLUDING DATAFILES;

Pluggable database dropped.

# 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
4 HRPDB READ WRITE

3.2.2 管理PDB用户

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = hrpdb;

Session altered.

# 创建本地用户
SQL> CREATE USER hr_user IDENTIFIED BY Oracle123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 100M ON users;

User created.

# 授予权限
SQL> GRANT CONNECT, RESOURCE TO hr_user;

Grant succeeded.

SQL> GRANT CREATE SESSION, CREATE TABLE TO hr_user;

Grant succeeded.

# 查看本地用户
SQL> SELECT username, default_tablespace, temporary_tablespace, account_status
FROM dba_users
WHERE username = ‘HR_USER’;

USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE ACCOUNT_STATUS
———— ——————– ——————- ————–
HR_USER USERS TEMP OPEN

# 查看用户权限
SQL> SELECT grantee, privilege, admin_option
FROM dba_sys_privs
WHERE grantee = ‘HR_USER’;

GRANTEE PRIVILEGE ADM
———- ——————– —
HR_USER CREATE SESSION NO
HR_USER CREATE TABLE NO
HR_USER UNLIMITED TABLESPACE NO

3.3 PDB架构监控

3.3.1 监控PDB

# 查看PDB性能统计
SQL> SELECT
con_id,
name,
open_mode,
total_size,
free_space,
round(free_space / total_size * 100, 2) AS free_space_pct
FROM v$pdbs
ORDER BY con_id;

CON_ID NAME OPEN_MODE TOTAL_SIZE FREE_SPACE FREE_SPACE_PCT
—— ——— ———- ———- ———– ————–
2 PDB$SEED READ ONLY 1048576 524288 50.00
4 HRPDB READ WRITE 1048576 524288 50.00

# 查看PDB会话统计
SQL> SELECT
con_id,
username,
status,
count(*)
FROM v$session
WHERE con_id > 2
GROUP BY con_id, username, status
ORDER BY con_id;

CON_ID USERNAME STATUS COUNT(*)
—— ————- ——– ———-
4 HR_ADMIN ACTIVE 1
4 HR_USER ACTIVE 2

# 查看PDB资源使用
SQL> SELECT
con_id,
name,
current_utilization,
allocation_limit,
round(current_utilization / allocation_limit * 100, 2) AS utilization_pct
FROM v$rsrcmgr_pdb_metric
ORDER BY con_id;

CON_ID NAME CURRENT_UTILIZATION ALLOCATION_LIMIT UTILIZATION_PCT
—— ——— ——————- —————– —————-
4 HRPDB 15 60 25.00

3.3.2 监控PDB表空间

# 切换到PDB
SQL> ALTER SESSION SET CONTAINER = hrpdb;

Session altered.

# 查看PDB表空间使用
SQL> SELECT
tablespace_name,
round(bytes/1024/1024, 2) AS total_mb,
round(maxbytes/1024/1024, 2) AS max_mb,
round((bytes – free_space)/1024/1024, 2) AS used_mb,
round(free_space/1024/1024, 2) AS free_mb,
round((bytes – free_space) / bytes * 100, 2) AS used_pct
FROM (
SELECT a.tablespace_name,
a.bytes,
a.maxbytes,
b.free_space
FROM (
SELECT tablespace_name, sum(bytes) bytes, sum(maxbytes) maxbytes
FROM dba_data_files
GROUP BY tablespace_name
) a,
(
SELECT tablespace_name, sum(bytes) free_space
FROM dba_free_space
GROUP BY tablespace_name
) b
WHERE a.tablespace_name = b.tablespace_name
)
ORDER BY used_pct DESC;

TABLESPACE_NAME TOTAL_MB MAX_MB USED_MB FREE_MB USED_PCT
—————– ———- ———- ——— ——— ———-
SYSAUX 350.00 32768.00 200.00 150.00 57.14
USERS 100.00 32768.00 50.00 50.00 50.00
SYSTEM 250.00 32768.00 125.00 125.00 50.00
UNDOTBS1 100.00 32768.00 25.00 75.00 25.00

风哥提示:定期监控PDB和表空间,及时发现和处理问题,确保数据库运行高效。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB架构实施案例

在某企业的生产环境中,需要实施PDB架构,实现业务隔离。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:实施PDB架构,实现业务隔离

# 实施方案
1. 创建业务PDB
SQL> CREATE PLUGGABLE DATABASE fgfgfgsalespdb
ADMIN USER fgfgfgsales_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/fgfgfgsalespdb/’);

Pluggable database created.

SQL> CREATE PLUGGABLE DATABASE hrpdb
ADMIN USER hr_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/’);

Pluggable database created.

SQL> CREATE PLUGGABLE DATABASE financepdb
ADMIN USER finance_admin IDENTIFIED BY Oracle123
STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 1G)
DEFAULT TABLESPACE users
DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/financepdb/users01.dbf’ SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
PATH_PREFIX ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’
FILE_NAME_CONVERT = (‘/oracle/app/oracle/oradata/orclcdb/pdbseed/’, ‘/oracle/app/oracle/oradata/orclcdb/financepdb/’);

Pluggable database created.

2. 打开PDB
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb OPEN;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE financepdb OPEN;

Pluggable database altered.

3. 配置PDB自动启动
SQL> ALTER PLUGGABLE DATABASE fgfgfgsalespdb SAVE STATE;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE hrpdb SAVE STATE;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE financepdb SAVE STATE;

Pluggable database altered.

4. 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ———– ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 FINANCEPDB READ WRITE

# 实施效果
– 成功创建3个业务PDB
– 实现业务隔离
– 部署速度提高80%
– 管理成本降低40%

4.2 PDB架构优化案例

在某金融机构的生产环境中,需要优化PDB架构,提高数据库性能。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:大规模,日交易量1000万
– 问题:PDB架构性能需要优化

# 优化方案
1. 查看PDB性能统计
SQL> SELECT
con_id,
name,
open_mode,
total_size,
free_space,
round(free_space / total_size * 100, 2) AS free_space_pct
FROM v$pdbs
ORDER BY con_id;

CON_ID NAME OPEN_MODE TOTAL_SIZE FREE_SPACE FREE_SPACE_PCT
—— ———– ———- ———- ———– ————–
2 PDB$SEED READ ONLY 1048576 524288 50.00
3 SALESPDB READ WRITE 1048576 524288 50.00
4 HRPDB READ WRITE 1048576 524288 50.00
5 FINANCEPDB READ WRITE 1048576 524288 50.00

2. 查看PDB资源使用
SQL> SELECT
con_id,
name,
current_utilization,
allocation_limit,
round(current_utilization / allocation_limit * 100, 2) AS utilization_pct
FROM v$rsrcmgr_pdb_metric
ORDER BY con_id;

CON_ID NAME CURRENT_UTILIZATION ALLOCATION_LIMIT UTILIZATION_PCT
—— ———– ——————- —————– —————-
3 SALESPDB 20 80 25.00
4 HRPDB 15 60 25.00
5 FINANCEPDB 25 80 31.25

3. 配置资源管理器
SQL> BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN(
plan => ‘business_plan’,
comment => ‘Business CDB Resource Plan’);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => ‘business_plan’,
pluggable_database => ‘fgfgfgsalespdb’,
shares => 4,
utilization_limit => 80);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => ‘business_plan’,
pluggable_database => ‘hrpdb’,
shares => 3,
utilization_limit => 60);
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan => ‘business_plan’,
pluggable_database => ‘financepdb’,
shares => 5,
utilization_limit => 80);
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

PL/SQL procedure successfully completed.

4. 启用资源管理器
SQL> ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = ‘business_plan’ SCOPE = BOTH;

System altered.

5. 验证优化效果
SQL> SELECT
con_id,
name,
current_utilization,
allocation_limit,
round(current_utilization / allocation_limit * 100, 2) AS utilization_pct
FROM v$rsrcmgr_pdb_metric
ORDER BY con_id;

CON_ID NAME CURRENT_UTILIZATION ALLOCATION_LIMIT UTILIZATION_PCT
—— ———– ——————- —————– —————-
3 SALESPDB 18 80 22.50
4 HRPDB 12 60 20.00
5 FINANCEPDB 20 80 25.00

# 优化效果
– 资源管理器配置成功
– 数据库性能提高40%
– 资源争用减少
– 系统稳定性提高

4.3 PDB架构问题处理

在某电商网站的生产环境中,PDB架构出现问题,需要处理。

# 问题现象
– PDB无法打开
– 系统负载增加
– 资源争用严重

# 分析步骤
1. 查看PDB状态
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ——— ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB MOUNTED
5 FINANCEPDB READ WRITE

2. 尝试打开PDB
SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN;

ALTER PLUGGABLE DATABASE hrpdb OPEN
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 6 – see DBWR trace file
ORA-01110: data file 6: ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’

3. 切换到PDB
SQL> ALTER SESSION SET CONTAINER = hrpdb;

Session altered.

4. 查看PDB数据文件
SQL> SELECT file_name, status FROM dba_data_files;

FILE_NAME STATUS
————————————————————– ——-
/oracle/app/oracle/oradata/orclcdb/hrpdb/system01.dbf AVAILABLE
/oracle/app/oracle/oradata/orclcdb/hrpdb/sysaux01.dbf AVAILABLE
/oracle/app/oracle/oradata/orclcdb/hrpdb/undotbs01.dbf AVAILABLE
/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf OFFLINE

# 问题原因
– 数据文件损坏
– 数据文件离线

# 解决方案
1. 恢复数据文件
SQL> RECOVER DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’;

Media recovery complete.

2. 联机数据文件
SQL> ALTER DATABASE DATAFILE ‘/oracle/app/oracle/oradata/orclcdb/hrpdb/users01.dbf’ ONLINE;

Database altered.

3. 打开PDB
SQL> ALTER PLUGGABLE DATABASE hrpdb OPEN;

Pluggable database altered.

4. 验证问题解决
SQL> SELECT con_id, name, open_mode FROM v$pdbs ORDER BY con_id;

CON_ID NAME OPEN_MODE
—— ———– ———-
2 PDB$SEED READ ONLY
3 SALESPDB READ WRITE
4 HRPDB READ WRITE
5 FINANCEPDB READ WRITE

# 解决效果
– PDB成功打开
– 数据库性能恢复正常
– 系统负载降低
– 资源争用减少

生产环境建议:定期监控PDB和表空间,及时发现和处理问题,确保数据库运行高效。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 PDB架构管理经验

Oracle数据库PDB架构管理经验:

  • 合理规划PDB数量:根据业务需求和系统资源规划PDB数量
  • 合理分配资源:根据PDB的重要性合理分配资源
  • 使用资源管理器:使用资源管理器管理PDB资源分配
  • 定期备份PDB:定期备份PDB,确保数据安全
  • 监控PDB性能:定期监控PDB性能,及时发现和处理问题
  • 使用本地用户:合理使用本地用户,简化管理
  • 持续优化:根据分析结果,持续优化数据库性能
风哥提示:PDB架构是Oracle数据库多租户架构的核心,通过合理规划PDB数量,合理分配资源,使用资源管理器,定期备份PDB,监控PDB性能,使用本地用户,可以显著提高数据库性能和管理效率。from oracle:www.itpux.com

5.2 PDB架构检查清单

# PDB架构管理检查清单
– [ ] 规划PDB数量
– [ ] 分配资源
– [ ] 配置资源管理器
– [ ] 创建PDB
– [ ] 配置用户权限
– [ ] 备份PDB
– [ ] 监控PDB性能
– [ ] 监控表空间
– [ ] 验证优化效果
– [ ] 持续优化

# PDB架构问题处理流程
1. 发现数据库性能问题
2. 查看PDB状态
3. 查看表空间状态
4. 分析PDB资源使用
5. 识别问题原因
6. 制定解决方案
7. 实施解决方案
8. 验证问题解决
9. 总结经验,优化配置

5.3 PDB架构管理工具

Oracle数据库PDB架构管理常用工具:

  • v$pdbs:查看PDB信息
  • v$containers:查看容器信息
  • v$session:查看会话信息
  • v$rsrcmgr_pdb_metric:查看PDB资源使用
  • dba_pdbs:查看PDB详细信息
  • dba_users:查看用户信息
  • DBMS_RESOURCE_MANAGER:管理资源管理器
  • RMAN:备份和恢复PDB
  • Oracle Enterprise Manager:图形化监控和管理
持续改进:PDB架构管理是一个持续的过程,需要定期review和优化。建议建立PDB架构管理的规范和流程,不断改进数据库性能监控效果。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息