环境变量未正确设置
若遇到ORA-12162: TNS:net service name is incorrectly specified或命令无法识别(如sqlplus),需检查环境变量配置。
.bashrc文件(vi /home/oracle/.bashrc),添加以下内容(替换为实际安装路径):export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 # Oracle安装目录
export ORACLE_SID=orcl # 数据库实例名
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # 动态库路径
export PATH=$ORACLE_HOME/bin:$PATH # 可执行文件路径
source /home/oracle/.bashrc使配置生效。OID生成失败(ORA-21561)
此错误通常与/etc/hosts文件配置有关。需确保文件中包含以下内容(将your_hostname替换为Ubuntu系统的主机名,127.0.0.1为本地IP):
127.0.0.1 localhost
127.0.1.1 your_hostname
修改后执行sudo hostnamectl set-hostname your_hostname更新主机名。
ping <数据库服务器IP>测试网络是否可达。lsnrctl status查看监听器是否运行(若未运行,用lsnrctl start启动)。sqlplus / as sysdba登录,执行SELECT status FROM v$instance;检查数据库是否处于OPEN状态(若未打开,用STARTUP命令启动)。CONNECT和RESOURCE角色,若没有,用GRANT CONNECT, RESOURCE TO username;授权。系统资源不足
top查看CPU使用率,free -h查看内存剩余量,df -h查看磁盘空间。若资源不足,需增加物理内存、清理无用文件或升级磁盘(推荐使用SSD)。SQL执行慢
EXPLAIN PLAN FOR "你的SQL语句";,再用SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);查看执行计划,重点关注TABLE ACCESS FULL(全表扫描),需添加索引优化。SELECT *,明确列出所需列;使用绑定变量(如:dept_id代替具体值)减少硬解析;添加合适的索引(如CREATE INDEX idx_name ON table_name(column_name);)。内存配置不合理
ALTER SYSTEM SET SGA_TARGET=2G SCOPE=BOTH;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=500M SCOPE=BOTH;
MEMORY_TARGET=4G和MEMORY_MAX_TARGET=4G,让Oracle自动分配内存。export ORACLE_IGNORE_INCOMPATIBLE_OS=TRUE)。$ORACLE_BASE/diag/rdbms/<数据库名>/<实例名>/trace/alert_<实例名>.log,使用tail -f alert_orcl.log实时查看最新错误信息。top、df、free等命令排查CPU、内存、磁盘空间是否充足。sudo systemctl restart oracle.service # Oracle服务
lsnrctl restart # 监听器
以上方法覆盖了Ubuntu环境下Oracle使用的常见问题及解决方案,可根据具体错误信息逐步排查。操作前建议备份重要数据,避免误操作导致数据丢失。