在 Ubuntu 上“调试 Oracle”通常指以下几类场景之一,我按常见需求分别说明,你可以对照自己的情况:
systemctl status oracle-xe
# 或
lsnrctl status
sqlplus / as sysdba
startup
如果有报错,重点看:
# 路径示例(版本不同可能不同)
tail -f $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log
这是调试 Oracle 的第一手资料。
lsnrctl status
lsnrctl start
TNS-12541: TNS:no listenerTNS-12545: Connect failed检查:
cat $ORACLE_HOME/network/admin/listener.ora
tnsping ORCL
cat $ORACLE_HOME/network/admin/tnsnames.ora
ALTER SESSION SET SQL_TRACE = TRUE;
或
EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE;
SET SERVEROUTPUT ON;
EXPLAIN PLAN FOR SELECT * FROM emp;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
echo $ORACLE_HOME
echo $ORACLE_SID
常见 .bashrc 配置:
export ORACLE_HOME=/u01/app/oracle/product/21c/dbhome_1
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
Oracle 对 Ubuntu 不友好,检查:
sysctl -a | grep sem
sysctl -a | grep shm
| 问题 | 解决 |
|---|---|
| Ubuntu 不是 Oracle 官方支持系统 | 用 Oracle XE 或容器 |
| 缺少依赖库 | apt install libaio1 |
| 中文乱码 | 设置 NLS_LANG |
| 权限问题 | chown -R oracle:dba |
✅ 使用 Docker 运行 Oracle
docker run -d -p 1521:1521 gvenzl/oracle-xe
调试简单、环境干净。
如果你能具体说一下:
我可以直接给你针对性调试步骤。