1. 首页 > Oracle教程 > 正文

Oracle教程FG385-PDB TNS配置

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

Part01-基础概念与理论知识

1.1 PDB TNS配置的概念

Oracle数据库PDB TNS配置是指在多租户容器数据库(CDB)中对PDB级别的TNS(Transparent Network Substrate)进行配置和管理,包括TNS别名配置、连接描述符配置、服务配置等。PDB TNS配置可以实现PDB级别的网络连接管理,提高系统可用性。PDB TNS配置包括TNS别名配置、连接描述符配置、服务配置、TNS监控、TNS调优等组件。更多视频教程www.fgedu.net.cn

PDB TNS配置的特点:

  • 支持PDB级别的TNS配置
  • 支持TNS别名配置
  • 支持连接描述符配置
  • 支持服务配置
  • 提高系统可用性

1.2 PDB TNS配置的方法

Oracle数据库PDB TNS配置的方法:

  • TNS别名配置:配置PDB TNS别名
  • 连接描述符配置:配置PDB连接描述符
  • 服务配置:配置PDB服务
  • TNS监控:监控PDB TNS
  • TNS调优:调优PDB TNS

1.3 PDB TNS配置的要求

Oracle数据库PDB TNS配置的要求:

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

Part02-生产环境规划与建议

2.1 PDB TNS配置规划

Oracle数据库PDB TNS配置规划要点:

# PDB TNS配置规划步骤
1. 分析业务需求
2. 评估系统资源
3. 设计PDB TNS配置方案
4. 规划PDB TNS配置架构
5. 规划TNS别名配置策略
6. 规划服务配置策略
7. 测试和验证

# 适用场景
– 多租户数据库
– 需要PDB级别TNS配置的系统
– 需要TNS别名配置的系统
– 需要服务配置的系统
– 需要提高可用性的系统

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

2.2 PDB TNS配置设计

Oracle数据库PDB TNS配置设计建议:

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

# PDB TNS配置设计策略
– 合理规划PDB TNS配置架构
– 配置适当的TNS别名配置
– 配置适当的连接描述符配置
– 配置适当的服务配置
– 配置适当的TNS监控

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

2.3 PDB TNS配置最佳实践

Oracle数据库PDB TNS配置最佳实践:

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

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

3.1 PDB TNS配置实施

3.1.1 查看PDB TNS配置

# 查看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

# 查看TNS配置文件
$ cat /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/19c/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclcdb)
)
)

SALESPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fgfgfgsalespdb)
)
)

HRPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hrpdb)
)
)

# 验证PDB TNS配置查看成功

3.1.2 配置PDB TNS别名

# 编辑TNS配置文件
$ vi /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

# 添加PDB TNS别名
SALES_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

HR_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = HR_APP)
)
)

# 配置负载均衡
SALES_APP_LB =
(DESCRIPTION =
(LOAD_BALANCE = ON)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

# 验证PDB TNS别名配置成功

3.2 PDB TNS配置配置

3.2.1 配置连接描述符

# 编辑TNS配置文件
$ vi /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

# 配置连接描述符
SALES_APP_DEDICATED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

SALES_APP_SHARED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = SALES_APP)
)
)

SALES_APP_POOLED =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = POOLED)
(SERVICE_NAME = SALES_APP)
)
)

# 验证连接描述符配置成功

3.2.2 配置SQLNET参数

# 编辑SQLNET配置文件
$ vi /oracle/app/oracle/product/19c/network/admin/sqlnet.ora

# 配置SQLNET参数
SQLNET.AUTHENTICATION_SERVICES = (NTS)
SQLNET.EXPIRE_TIME = 10
SQLNET.INBOUND_CONNECT_TIMEOUT = 120
SQLNET.SEND_TIMEOUT = 120
SQLNET.RECV_TIMEOUT = 120
SQLNET.OUTBOUND_CONNECT_TIMEOUT = 120
SQLNET.READ_TIMEOUT = 120
SQLNET.WRITETIMEOUT = 120

# 配置TNS解析
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

# 配置日志
TRACE_LEVEL_CLIENT = OFF
TRACE_LEVEL_SERVER = OFF
LOG_DIRECTORY_CLIENT = /oracle/app/oracle/diag/tnslsnr/orcl-scan/listener/trace
LOG_DIRECTORY_SERVER = /oracle/app/oracle/diag/tnslsnr/orcl-scan/listener/trace

# 验证SQLNET参数配置成功

3.3 PDB TNS配置验证

3.3.1 验证TNS别名

# 测试TNS别名
$ tnsping SALES_APP

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SALES_APP)))
OK (10 msec)

$ tnsping HR_APP

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HR_APP)))
OK (10 msec)

# 验证TNS别名成功

3.3.2 验证数据库连接

# 测试数据库连接
$ sqlplus sys/oracle@SALES_APP AS SYSDBA

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 CON_NAME

CON_NAME
——————————
SALESPDB

SQL> SELECT name, status
FROM dba_services
WHERE name = ‘SALES_APP’
AND con_id = 3;

NAME STATUS
————- ——–
SALES_APP ACTIVE

SQL> EXIT

Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.24.0.0.0

# 验证数据库连接成功

风哥提示:验证PDB TNS配置是否成功,需要检查TNS别名配置、连接描述符配置、SQLNET参数配置、TNS监控等,确保数据库运行正常。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 PDB TNS配置案例

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

# 案例背景
– 数据库版本:Oracle 19c
– 系统规模:中等规模,日交易量100万
– 需求:配置PDB TNS配置

# 实施方案
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. 编辑TNS配置文件
$ vi /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

3. 添加PDB TNS别名
SALES_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

4. 测试TNS别名
$ tnsping SALES_APP

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SALES_APP)))
OK (10 msec)

5. 测试数据库连接
$ sqlplus sys/oracle@SALES_APP AS SYSDBA

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

# 实施效果
– 成功配置PDB TNS配置
– TNS别名配置正常
– 连接描述符配置正常
– 数据库连接正常
– 系统可用性提高

4.2 PDB TNS配置优化案例

在某金融机构的生产环境中,需要优化PDB TNS配置,提高网络性能。

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

# 优化方案
1. 查看TNS配置
$ cat /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

SALES_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

2. 优化TNS配置
$ vi /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

SALES_APP_LB =
(DESCRIPTION =
(LOAD_BALANCE = ON)
(FAILOVER = ON)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))
)
)

3. 优化SQLNET参数
$ vi /oracle/app/oracle/product/19c/network/admin/sqlnet.ora

SQLNET.EXPIRE_TIME = 10
SQLNET.INBOUND_CONNECT_TIMEOUT = 120
SQLNET.SEND_TIMEOUT = 120
SQLNET.RECV_TIMEOUT = 120
SQLNET.OUTBOUND_CONNECT_TIMEOUT = 120
SQLNET.READ_TIMEOUT = 120
SQLNET.WRITETIMEOUT = 120

4. 验证优化效果
$ tnsping SALES_APP_LB

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (LOAD_BALANCE = ON) (FAILOVER = ON) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node2)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-node3)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SALES_APP) (FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))
OK (10 msec)

# 优化效果
– TNS配置优化
– 负载均衡配置
– 故障转移配置
– SQLNET参数优化
– 网络性能提高

4.3 PDB TNS配置问题处理

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

# 问题现象
– PDB TNS连接失败
– TNS别名解析失败
– 数据库连接超时

# 分析步骤
1. 测试TNS别名
$ tnsping SALES_APP

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

TNS-12154: TNS:could not resolve the connect identifier specified

2. 查看TNS配置文件
$ cat /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclcdb)
)
)

3. 查看SQLNET配置
$ cat /oracle/app/oracle/product/19c/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (NTS)

# 问题原因
– TNS别名未配置
– TNS配置文件错误
– SQLNET配置错误

# 解决方案
1. 添加TNS别名
$ vi /oracle/app/oracle/product/19c/network/admin/tnsnames.ora

SALES_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_APP)
)
)

2. 修改SQLNET配置
$ vi /oracle/app/oracle/product/19c/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

3. 验证解决效果
$ tnsping SALES_APP

TNS Ping Utility for Linux: Version 19.0.0.0.0 – Production on 31-MAR-2026 10:00:00

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

Used parameter files:
/oracle/app/oracle/product/19c/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SALES_APP)))
OK (10 msec)

# 解决效果
– TNS别名配置成功
– TNS配置文件修复
– SQLNET配置修复
– TNS连接正常
– 系统性能恢复

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

Part05-风哥经验总结与分享

5.1 PDB TNS配置经验

Oracle数据库PDB TNS配置经验:

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

5.2 PDB TNS配置检查清单

# PDB TNS配置检查清单
– [ ] 检查系统资源
– [ ] 检查PDB架构
– [ ] 检查TNS需求
– [ ] 检查TNS配置
– [ ] 检查TNS别名配置
– [ ] 检查SQLNET配置
– [ ] 规划PDB TNS配置架构
– [ ] 配置TNS别名
– [ ] 配置连接描述符
– [ ] 验证TNS功能

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

5.3 PDB TNS配置工具

Oracle数据库PDB TNS配置常用工具:

  • SQL*Plus:SQL命令行工具,用于执行SQL命令
  • Oracle Enterprise Manager:图形化管理工具,用于监控和管理数据库
  • SQL Developer:SQL开发工具,用于开发和调试SQL
  • TNSPING:TNS测试工具,用于测试TNS连接
  • Net Configuration Assistant:网络配置助手,用于配置网络
  • Net Manager:网络管理器,用于管理网络配置
持续改进:PDB TNS配置是一个持续的过程,需要定期review和优化。建议建立PDB TNS配置的规范和流程,不断改进系统可用性和数据库管理效率。

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

联系我们

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

微信号:itpux-com

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