1. 首页 > Oracle教程 > 正文

Oracle教程FG389-PDB代理

本文档风哥主要介绍Oracle数据库PDB代理相关知识,包括PDB代理的概念、方法、要求、规划、配置、验证等内容,由风哥教程参考Oracle官方文档Multitenant内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。

Part01-基础概念与理论知识

1.1 PDB代理的概念

Oracle数据库PDB代理是指在多租户容器数据库(CDB)中对PDB进行代理连接管理,包括PDB代理、代理用户、代理连接等。PDB代理可以实现PDB级别的连接代理,提高系统安全性和管理效率。PDB代理包括PDB代理、代理用户、代理连接、代理认证、代理监控等组件。更多视频教程www.fgedu.net.cn

PDB代理的特点:

  • 支持PDB级别的连接代理
  • 支持代理用户
  • 支持代理连接
  • 支持代理认证
  • 提高系统安全性和管理效率

1.2 PDB代理的方法

Oracle数据库PDB代理的方法:

  • PDB代理:配置PDB代理
  • 代理用户:创建代理用户
  • 代理连接:配置代理连接
  • 代理认证:配置代理认证
  • 代理监控:监控代理连接

1.3 PDB代理的要求

Oracle数据库PDB代理的要求:

  • PDB架构:必须在PDB架构中配置代理
  • 系统资源:足够的CPU、内存和磁盘空间
  • 权限:需要PDB的SYSDBA权限
  • 兼容性:Oracle数据库版本必须支持PDB代理
  • 配置:需要配置适当的参数和选项
风哥提示:PDB代理是Oracle数据库多租户架构的核心功能,通过PDB代理,可以实现PDB级别的连接代理,提高系统安全性和管理效率。

Part02-生产环境规划与建议

2.1 PDB代理规划

Oracle数据库PDB代理规划要点:

# PDB代理规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB代理方案
4. 规划PDB代理架构
5. 规划代理用户策略
6. 规划代理连接策略
7. 测试和验证

# 适用场景
– 多租户数据库
– 需要PDB级别代理的系统
– 需要连接代理的系统
– 需要提高安全性的系统
– 需要提高管理效率的系统

# 不适用场景
– 单租户数据库
– PDB代理需求简单的系统
– 低管理需求系统

2.2 PDB代理设计

Oracle数据库PDB代理设计建议:

# PDB代理设计原则
– 基于业务需求设计
– 基于资源需求设计
– 最小化代理开销
– 最大化系统安全性
– 合理配置参数

# PDB代理设计策略
– 合理规划PDB代理架构
– 配置适当的代理用户
– 配置适当的代理连接
– 配置适当的代理认证
– 配置适当的代理监控

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

2.3 PDB代理最佳实践

Oracle数据库PDB代理最佳实践:

  • 规划PDB代理架构:根据业务需求规划PDB代理架构,最小化代理开销
  • 配置代理用户:为PDB配置合理的代理用户
  • 监控代理连接:监控PDB代理连接,及时发现和处理问题
  • 定期调优:定期调优PDB代理,确保系统性能
  • 设置代理告警:设置代理告警,及时发现代理问题
  • 定期review:定期review代理配置,优化管理策略
生产环境建议:PDB代理规划应基于业务需求和系统资源,规划PDB代理架构,配置代理用户,监控代理连接,定期调优,设置代理告警,定期review,确保系统安全性和管理效率。学习交流加群风哥微信: itpux-com

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

3.1 PDB代理实施

3.1.1 查看PDB

# 查看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 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

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

Session altered.

# 查看PDB用户
SQL> SELECT username, account_status, created
FROM dba_users
WHERE username NOT LIKE ‘SYS%’
AND username NOT LIKE ‘DBS%’
ORDER BY username;

USERNAME ACCOUNT_STATUS CREATED
—————————— ————- ———
HR OPEN 01-JAN-26
SCOTT OPEN 01-JAN-26
SYSTEM OPEN 01-JAN-26

# 验证PDB查看成功

3.1.2 创建代理用户

# 切换到CDB
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

# 创建代理用户
SQL> CREATE USER proxy_user IDENTIFIED BY proxy_password;

User created.

# 授予代理用户权限
SQL> GRANT CREATE SESSION TO proxy_user;

Grant succeeded.

# 授予代理用户PDB访问权限
SQL> ALTER USER proxy_user GRANT CONNECT THROUGH fgfgfgsales_admin;

User altered.

# 验证代理用户创建成功

3.2 PDB代理配置

3.2.1 配置代理连接

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

Session altered.

# 创建被代理用户
SQL> CREATE USER fgfgfgsales_admin IDENTIFIED BY fgfgfgsales_password;

User created.

# 授予被代理用户权限
SQL> GRANT CONNECT, RESOURCE TO fgfgfgsales_admin;

Grant succeeded.

SQL> GRANT CREATE TABLE, CREATE VIEW TO fgfgfgsales_admin;

Grant succeeded.

# 授予代理用户权限
SQL> ALTER USER fgfgfgsales_admin GRANT CONNECT THROUGH proxy_user;

User altered.

# 验证代理连接配置成功

3.2.2 配置代理认证

# 配置代理认证
SQL> ALTER USER fgfgfgsales_admin GRANT CONNECT THROUGH proxy_user
AUTHENTICATED USING PASSWORD;

User altered.

# 查看代理用户配置
SQL> SELECT proxy, client, authentication_type
FROM dba_proxies
WHERE proxy = ‘PROXY_USER’;

PROXY CLIENT AUTHENTICATION_TYPE
———- ———— ——————–
PROXY_USER SALES_ADMIN PASSWORD

# 验证代理认证配置成功

3.3 PDB代理验证

3.3.1 测试代理连接

# 测试代理连接
$ sqlplus proxy_user[fgfgfgsales_admin]/proxy_password@orclcdb

SQL*Plus: Release 19.0.0.0.0 – Production on Mon Mar 31 10:00:00 2026
Version 19.24.0.0.0

Copyright (c) 1982, 2024, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.24.0.0.0

# 查看当前用户
SQL> SHOW USER

USER is “SALES_ADMIN”

# 查看会话信息
SQL> SELECT username, proxy_user, con_id
FROM v$session
WHERE username = ‘SALES_ADMIN’;

USERNAME PROXY_USER CON_ID
———- ———- ——
SALES_ADMIN PROXY_USER 3

# 验证代理连接成功

3.3.2 测试代理权限

# 测试代理权限
SQL> CREATE TABLE fgfgfgsales.test_table (
id NUMBER,
name VARCHAR2(100)
);

Table created.

SQL> INSERT INTO fgfgfgsales.test_table VALUES (1, ‘Test Data’);

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT * FROM fgfgfgsales.test_table;

ID NAME
———- ————-
1 Test Data

# 验证代理权限成功

风哥提示:验证PDB代理是否成功,需要检查代理用户配置、代理连接、代理认证、代理权限等,确保数据库运行正常。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB代理案例

在某企业的生产环境中,需要配置PDB代理。

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:配置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 READ WRITE
5 APP_ROOT READ WRITE
6 APP_PDB1 READ WRITE

2. 创建代理用户
SQL> ALTER SESSION SET CONTAINER = cdb$root;

Session altered.

SQL> CREATE USER proxy_user IDENTIFIED BY proxy_password;

User created.

SQL> GRANT CREATE SESSION TO proxy_user;

Grant succeeded.

3. 配置代理连接
SQL> ALTER SESSION SET CONTAINER = fgfgfgsalespdb;

Session altered.

SQL> CREATE USER fgfgfgsales_admin IDENTIFIED BY fgfgfgsales_password;

User created.

SQL> GRANT CONNECT, RESOURCE TO fgfgfgsales_admin;

Grant succeeded.

SQL> ALTER USER fgfgfgsales_admin GRANT CONNECT THROUGH proxy_user;

User altered.

4. 测试代理连接
$ sqlplus proxy_user[fgfgfgsales_admin]/proxy_password@orclcdb

SQL*Plus: Release 19.0.0.0.0 – Production on Mon Mar 31 10:00:00 2026
Version 19.24.0.0.0

Copyright (c) 1982, 2024, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.24.0.0.0

SQL> SHOW USER

USER is “SALES_ADMIN”

# 实施效果
– 成功配置PDB代理
– 代理用户创建正常
– 代理连接配置正常
– 代理认证配置正常
– 系统安全性提高
– 管理效率提高

4.2 PDB代理优化案例

在某金融机构的生产环境中,需要优化PDB代理,提高代理效率。

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

# 优化方案
1. 查看代理配置
SQL> SELECT proxy, client, authentication_type
FROM dba_proxies
WHERE proxy = ‘PROXY_USER’;

PROXY CLIENT AUTHENTICATION_TYPE
———- ———— ——————–
PROXY_USER SALES_ADMIN PASSWORD

2. 优化代理配置
SQL> ALTER USER fgfgfgsales_admin GRANT CONNECT THROUGH proxy_user
AUTHENTICATED USING PASSWORD
WITH ROLES (CONNECT, RESOURCE);

User altered.

3. 配置代理监控
SQL> CREATE TABLE proxy_audit (
audit_id NUMBER,
proxy_user VARCHAR2(100),
client_user VARCHAR2(100),
login_time TIMESTAMP,
logout_time TIMESTAMP
);

Table created.

SQL> CREATE SEQUENCE proxy_audit_seq;

Sequence created.

4. 验证优化效果
SQL> SELECT proxy, client, authentication_type
FROM dba_proxies
WHERE proxy = ‘PROXY_USER’;

PROXY CLIENT AUTHENTICATION_TYPE
———- ———— ——————–
PROXY_USER SALES_ADMIN PASSWORD

# 优化效果
– 代理配置优化
– 代理权限优化
– 代理监控配置
– 代理效率提高
– 系统安全性提高

4.3 PDB代理问题处理

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

# 问题现象
– PDB代理连接失败
– 代理用户无法连接
– 代理权限异常

# 分析步骤
1. 测试代理连接
$ sqlplus proxy_user[fgfgfgsales_admin]/proxy_password@orclcdb

SQL*Plus: Release 19.0.0.0.0 – Production on Mon Mar 31 10:00:00 2026
Version 19.24.0.0.0

Copyright (c) 1982, 2024, Oracle. All rights reserved.

ERROR:
ORA-01045: user PROXY_USER lacks CREATE SESSION privilege; logon denied

2. 查看代理用户配置
SQL> SELECT username, account_status
FROM dba_users
WHERE username = ‘PROXY_USER’;

USERNAME ACCOUNT_STATUS
—————————— —————–
PROXY_USER OPEN

3. 查看代理权限
SQL> SELECT granted_role, admin_option
FROM dba_role_privs
WHERE grantee = ‘PROXY_USER’;

no rows selected

# 问题原因
– 代理用户缺少权限
– 代理连接配置错误
– 代理权限配置错误

# 解决方案
1. 授予代理用户权限
SQL> GRANT CREATE SESSION TO proxy_user;

Grant succeeded.

2. 重新配置代理连接
SQL> ALTER USER fgfgfgsales_admin GRANT CONNECT THROUGH proxy_user;

User altered.

3. 验证解决效果
$ sqlplus proxy_user[fgfgfgsales_admin]/proxy_password@orclcdb

SQL*Plus: Release 19.0.0.0.0 – Production on Mon Mar 31 10:00:00 2026
Version 19.24.0.0.0

Copyright (c) 1982, 2024, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.24.0.0.0

SQL> SHOW USER

USER is “SALES_ADMIN”

# 解决效果
– 代理用户权限修复
– 代理连接配置修复
– 代理权限配置修复
– 代理连接正常
– 系统安全性恢复

生产环境建议:配置PDB代理前,需要分析业务需求和系统资源,确保代理配置合理。更多学习教程公众号风哥教程itpux_com

Part05-风哥经验总结与分享

5.1 PDB代理经验

Oracle数据库PDB代理经验:

  • 规划PDB代理架构:根据业务需求规划PDB代理架构,最小化代理开销
  • 配置代理用户:为PDB配置合理的代理用户
  • 监控代理连接:监控PDB代理连接,及时发现和处理问题
  • 定期调优:定期调优PDB代理,确保系统性能
  • 设置代理告警:设置代理告警,及时发现代理问题
  • 定期review:定期review代理配置,优化管理策略
风哥提示:PDB代理是Oracle数据库多租户架构的核心功能,通过规划PDB代理架构,配置代理用户,监控代理连接,定期调优,设置代理告警,定期review,可以显著提高系统安全性和数据库管理效率。from oracle:www.itpux.com

5.2 PDB代理检查清单

# PDB代理检查清单
– [ ] 检查系统资源
– [ ] 检查PDB架构
– [ ] 检查代理需求
– [ ] 检查代理配置
– [ ] 检查代理用户
– [ ] 检查代理连接
– [ ] 规划PDB代理架构
– [ ] 配置代理用户
– [ ] 配置代理连接
– [ ] 验证代理功能

# PDB代理问题处理流程
1. 检查系统资源
2. 检查PDB架构
3. 检查代理需求
4. 规划PDB代理架构
5. 配置代理用户
6. 配置代理连接
7. 验证代理功能
8. 处理代理问题
9. 优化配置
10. 监控代理使用情况

5.3 PDB代理工具

Oracle数据库PDB代理常用工具:

  • SQL*Plus:SQL命令行工具,用于执行SQL命令
  • Oracle Enterprise Manager:图形化管理工具,用于监控和管理数据库
  • SQL Developer:SQL开发工具,用于开发和调试SQL
  • DBA_PROXIES:数据字典视图,用于查看代理配置
  • V$SESSION:动态性能视图,用于监控会话
  • AUDIT:审计功能,用于审计代理连接
持续改进:PDB代理是一个持续的过程,需要定期review和优化。建议建立PDB代理的规范和流程,不断改进系统安全性和数据库管理效率。

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

联系我们

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

微信号:itpux-com

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