oracle配置文件在centos上怎么设置
导读:在 CentOS 上配置 Oracle 的关键文件与步骤 一 配置文件位置与加载顺序 核心网络配置文件: listener.ora:监听器配置,路径为 $ORACLE_HOME/network/admin/listener.ora。 t...
在 CentOS 上配置 Oracle 的关键文件与步骤
一 配置文件位置与加载顺序
- 核心网络配置文件:
- listener.ora:监听器配置,路径为 $ORACLE_HOME/network/admin/listener.ora。
- tnsnames.ora:客户端连接串(Net Service Name)配置,路径为 $ORACLE_HOME/network/admin/tnsnames.ora。
- sqlnet.ora:Oracle Net 基础参数,路径为 $ORACLE_HOME/network/admin/sqlnet.ora。
- 文件查找顺序由环境变量 TNS_ADMIN 决定:若设置了 TNS_ADMIN,Oracle Net 优先从该目录读取;否则依次查找 Grid_home/network/admin、ORACLE_HOME/network/admin,只读 Oracle Home 还会检查 ORACLE_BASE_HOME/network/admin。
- 建议做法:统一将自定义配置放在自定义目录(如 /etc/oracle/network/admin),并导出 TNS_ADMIN 指向该目录,便于集中管理与备份。
二 配置监听器 listener.ora
- 编辑配置文件(以实际 ORACLE_HOME 为准):
- 建议先设置环境变量:export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
- 编辑:vi $ORACLE_HOME/network/admin/listener.ora
- 示例(监听本机所有地址的 1521 端口,主机名请使用服务器的 真实主机名或IP,不要用 localhost):
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521)) ) ) - 使配置生效并验证:
- 重启监听:lsnrctl stop;lsnrctl start
- 查看状态:lsnrctl status(应能看到监听端口 1521 与协议 TCP)
- 注意:HOST 填写服务器的可达主机名或IP,避免 127.0.0.1/localhost 导致远程无法连接。
三 配置客户端解析 tnsnames.ora
- 编辑配置文件:vi $ORACLE_HOME/network/admin/tnsnames.ora
- 示例条目(服务名 ORCL,主机名与端口与 listener.ora 保持一致):
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) - 测试解析与连通:
- 解析测试:tnsping ORCL
- 连接测试:sqlplus system/password@ORCL
- 说明:tnsnames.ora 保存“网络服务名→连接描述符”的映射,客户端或本机工具通过服务名连接数据库。
四 系统级与数据库级配置要点
- 环境变量(建议写入 /etc/profile.d/oracle.sh,对所有用户生效):
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export ORACLE_SID=ORCL export PATH=$ORACLE_HOME/bin:$PATH # 可选:统一网络配置目录 export TNS_ADMIN=/etc/oracle/network/admin - 资源与内核参数(示例,按实际内存与业务调整):
- /etc/sysctl.conf
执行:sysctl -p 使生效fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1073741824 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 - /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 - /etc/pam.d/login
session required pam_limits.so
- /etc/sysctl.conf
- 主机名与解析:
- 设置主机名:hostnamectl set-hostname db.example.com
- 配置 /etc/hosts:192.168.1.100 db.example.com
- 防火墙与 SELinux(测试环境可直接放行,生产环境请按需最小化放通):
- 放行端口:firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload
- SELinux:setenforce 0(临时),或编辑 /etc/selinux/config 将 SELINUX=permissive/disabled(永久,重启生效)
- 数据库动态注册(可选,避免手工维护 tnsnames.ora 的监听关联):
- 若需让数据库向多个监听注册,可在数据库内设置 LOCAL_LISTENER,例如:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=2012))))' scope=BOTH SID='ORCL'; - 集群环境通常由集群代理动态设置 LOCAL_LISTENER/REMOTE_LISTENER,无需在 tnsnames.ora 维护监听别名。
- 若需让数据库向多个监听注册,可在数据库内设置 LOCAL_LISTENER,例如:
五 快速验证与常见问题
- 监听状态:lsnrctl status(检查监听端口、协议、服务映射)
- 本地登录:sqlplus / as sysdba(确认实例可启动/关闭)
- 远程连接:sqlplus system/password@ORCL 或 tnsping ORCL(验证客户端解析与连通)
- 常见错误与处理:
- ORA-12541: TNS:no listener:监听未启动或端口不对,执行 lsnrctl start,确认监听端口为 1521。
- ORA-12154: TNS:could not resolve the connect identifier specified:tnsnames.ora 中无对应服务名或 TNS_ADMIN 路径不对,检查拼写与 TNS_ADMIN 设置。
- TNS-03505: Failed to resolve name:同上,确认服务名与文件路径、权限无误。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: oracle配置文件在centos上怎么设置
本文地址: https://pptw.com/jishu/760800.html
