- 首页 >
- 问答 >
-
云计算 >
- Debian与Oracle网络配置怎样
Debian与Oracle网络配置怎样
小樊
38
2025-11-21 14:06:01
Debian 与 Oracle 网络配置实践指南
一 系统网络先行
- 使用 ifupdown 配置静态地址(示例为 eth0):编辑 /etc/network/interfaces
- auto eth0
- iface eth0 inet static
- address 192.168.1.100
- netmask 255.255.255.0
- gateway 192.168.1.1
- dns-nameservers 8.8.8.8 8.8.4.4
- 应用:sudo systemctl restart networking
- 使用 NetworkManager(适合桌面/动态网络):sudo apt-get update && sudo apt-get install -y network-manager;sudo systemctl enable --now NetworkManager;可用 nmcli 或 nm-connection-editor 配置 DHCP/静态 地址与 DNS。
- 验证:ip a、ping 网关、cat /etc/resolv.conf 确认 DNS,必要时手动写入 nameserver。
二 Oracle 端网络服务配置
- 环境变量(oracle 用户):在 ~/.bashrc 或 /etc/profile 设置
- export ORACLE_HOME=/u01/app/oracle/product/…/db_1
- export ORACLE_SID=orcl
- 可选:export TNS_ADMIN=$ORACLE_HOME/network/admin
- 使生效:source ~/.bashrc
- 监听器 Listener(文件:$ORACLE_HOME/network/admin/listener.ora)
- LISTENER =
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (GLOBAL_DBNAME = orcl)
- (SID_NAME = orcl)
- 启动与自启:lsnrctl start;如需开机自启,建议使用 systemd 服务或 /etc/rc.local(Debian 10+ 仍可用但更推荐 systemd)。示例 rc.local 追加:/bin/su - oracle -lc “lsnrctl start”。
三 Oracle 客户端与连接测试
- 客户端安装(示例 Instant Client 19):从 Oracle 官网下载 RPM,使用 alien 转换为 .deb 并安装;设置环境变量 ORACLE_HOME、LD_LIBRARY_PATH、PATH,及可选的 TNS_ADMIN。
- 命名解析(文件:$ORACLE_HOME/network/admin/tnsnames.ora)
- ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = db_host)(PORT = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SID = orcl))
- 连通性验证
- tnsping ORCL
- sqlplus / as sysdba 后执行 CONNECT /@ORCL
- 外部连通:在客户端机器 ping db_host,必要时检查 1521/TCP 防火墙放行。
四 常见问题与排查要点
- 主机名解析:Listener 的 HOST 建议使用可解析的主机名或 0.0.0.0(监听所有地址),并确保 /etc/hosts 或 DNS 正确;客户端 tnsnames.ora 的 HOST 与之匹配。
- 端口与防火墙:确认数据库服务器监听 1521/TCP,云主机安全组/本机防火墙放行;必要时 ss -lntp | grep 1521 检查。
- 客户端库路径:设置 LD_LIBRARY_PATH 指向 Instant Client 的 lib 目录,避免 sqlplus/tnsping 报找不到库。
- 自启动可靠性:优先使用 systemd 管理 Listener(示例单元置于 /etc/systemd/system/oracle-listener.service),避免仅依赖 rc.local。