在 Ubuntu 上排查 Oracle(通常是 Oracle Database 或 Oracle Instant Client / OCI 相关程序)报错,可以按下面思路一步步来。
不同场景排查方式差别很大:
建议:先贴出完整报错信息(命令 + 错误内容)
lsnrctl status
常见问题:
TNS-12541: TNS:no listener → 监听没起启动监听:
lsnrctl start
sqlplus / as sysdba
select status from v$instance;
若打不开:
startup;
常见错误:
ORA-01078: 参数文件问题ORA-27102: 内存不足(Linux 共享内存)ORA-00845: /dev/shm 太小# 一般在
$ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log
看最近报错,非常关键。
Ubuntu 不是 Oracle 官方支持系统,常见缺库:
ldd $ORACLE_HOME/bin/sqlplus
常见缺:
libaio1libnsllibclntsh.so安装:
sudo apt update
sudo apt install libaio1 libaio-dev libnsl2
/dev/shm 太小df -h /dev/shm
修改(临时):
mount -o remount,size=2G /dev/shm
永久:
# /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
sysctl -a | grep sem
sysctl -a | grep shm
参考值(示例):
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
写入:
/etc/sysctl.conf
echo $TNS_ADMIN
cat $TNS_ADMIN/tnsnames.ora
测试:
tnsping ORCL
export ORACLE_HOME=...
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
/dev/shm 够不够?如果你愿意,可以直接把 报错原文 + 你做的事(安装 / 启动 / 连接) 发出来,我可以按具体错误逐条帮你定位。