- 首页 >
- 问答 >
-
云计算 >
- 如何配置centos上的oracle网络参数
如何配置centos上的oracle网络参数
小樊
32
2025-12-29 05:21:24
CentOS 上 Oracle 网络参数配置
一 系统网络与主机名准备
- 配置网卡(以网卡名ens33为例,静态 IP):编辑文件**/etc/sysconfig/network-scripts/ifcfg-ens33**,内容示例:
- DEVICE=ens33
- BOOTPROTO=static
- IPADDR=192.168.1.100
- NETMASK=255.255.255.0
- GATEWAY=192.168.1.1
- DNS1=8.8.8.8
- ONBOOT=yes
- NM_CONTROLLED=yes
- 使网络生效(CentOS 7 可用):
sudo systemctl restart network;若使用 NetworkManager:sudo nmcli con down ens33 && sudo nmcli con up ens33。
- 设置主机名与解析:
sudo hostnamectl set-hostname **oracle-db**
- 编辑**/etc/hosts**:
192.168.1.100 oracle-db
- 验证:
ip addr show ens33、ping **8.8.8.8**、nslookup oracle-db。
二 防火墙与 SELinux 策略
- 推荐保留防火墙并放行 Oracle 端口(默认1521):
sudo firewall-cmd --permanent --add-port=**1521**/tcp
sudo firewall-cmd --reload
- SELinux 建议保持启用并做最小调整;如为排障临时放宽:
sudo setenforce 0;永久调整编辑**/etc/selinux/config**(生产不建议直接禁用)。
三 Oracle 监听与客户端解析配置
- 确认环境变量:
echo $ORACLE_HOME、echo $ORACLE_SID(如未设置,在 Oracle 用户环境配置文件中导出)。
- 监听器配置(listener.ora):文件路径**$ORACLE_HOME/network/admin/listener.ora**,示例:
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db)(PORT = 1521))
- )
- )
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (SID_NAME = orcl)
- (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
- )
- )
- 启动与检查:
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/lsnrctl status(确认监听在1521且包含目标 SID/SERVICE)
- 客户端解析(tnsnames.ora):路径**$ORACLE_HOME/network/admin/tnsnames.ora**,示例:
- ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-db)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl)
- )
- )
- 连接测试:
sqlplus username/password@ORCL。
四 可选 内核与 Oracle Net 参数优化
- 内核参数(/etc/sysctl.conf,按内存与业务调整):
- kernel.shmmax = 2147483648
- kernel.shmmni = 4096
- kernel.shmall = 2097152
- kernel.sem = 250 32000 100 128
- fs.file-max = 65536
- net.ipv4.ip_local_port_range = 1024 65000
- net.core.rmem_default = 262144
- net.core.rmem_max = 262144
- net.core.wmem_default = 262144
- net.core.wmem_max = 262144
- 生效:
sudo sysctl -p
- Oracle Net 基础参数(sqlnet.ora,路径**$ORACLE_HOME/network/admin/sqlnet.ora**):
- NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
- SQLNET.EXPIRE_TIME = 10(可选,检测死连接)
五 验证与常见错误
- 常用检查:
- 监听状态:
$ORACLE_HOME/bin/lsnrctl status
- 数据库实例:
systemctl status oracle(或 ps -ef | grep pmon)
- 日志定位:
- 监听器日志:$ORACLE_HOME/network/log/listener.log
- 数据库告警日志:$ORACLE_BASE/diag/rdbms/<db_name>/trace/alert_<db_name>.log
- 常见错误与处理:
- ORA-12170 TNS 连接超时:检查网络连通性、防火墙/SELinux、监听是否运行
- ORA-12541 TNS 无监听器:确认监听已启动且 HOST/PORT 正确
- ORA-12514 监听器不知道请求的服务:核对 tnsnames.ora 中 SERVICE_NAME 与数据库实际服务名一致