You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10下Oracle12c多报错(LRM-00190等)问题求解

解决Oracle 12c系列连接问题:Idle Instance、LRM-00109、Oracle Not Available及TNSPing解析失败

这些问题其实是连锁反应,核心都是实例未正常启动或网络配置出错,咱们按顺序逐个击破:

一、先搞定"connected to idle instance"和"oracle not available"

这俩问题本质是Oracle实例处于关闭状态——你虽然通过sqlplus /as sysdba以sys身份连上了,但实例压根没跑起来。

操作步骤:

  1. 保持当前sqlplus会话,直接执行启动命令:
    startup
    
    如果顺利启动,后面的问题大概率能跟着解决;要是启动失败抛出LRM-00109,就往下看参数文件的修复方法。

二、处理LRM-00109错误

这个错误是Oracle找不到正确的初始化参数文件(spfile或pfile),或者实例名(ORACLE_SID)配置不对。

1. 先确认ORACLE_SID是否正确

在操作系统终端执行:

# Linux/Unix系统
echo $ORACLE_SID

# Windows系统
set ORACLE_SID

输出应该是你的目标实例名(比如orcl)。如果不对,手动设置:

# Linux/Unix
export ORACLE_SID=orcl

# Windows
set ORACLE_SID=orcl

2. 指定参数文件启动

如果ORACLE_SID正确,那就是参数文件路径/名称有问题。Oracle默认会在$ORACLE_HOME/dbs(Linux)或%ORACLE_HOME%\database(Windows)下找spfile<sid>.ora或init<sid>.ora。

你可以直接指定参数文件路径启动:

# 用pfile启动
startup pfile='/u01/app/oracle/product/12c/dbhome_1/dbs/initorcl.ora'

# 或者用spfile启动
startup spfile='/u01/app/oracle/product/12c/dbhome_1/dbs/spfileorcl.ora'

3. 重建参数文件(如果丢失)

如果没有参数文件,你可以从模板复制一份修改:

  • Linux下,$ORACLE_HOME/dbs目录里有init.ora模板,复制为initorcl.ora,至少配置核心参数:
    db_name='orcl'
    control_files=('/u01/app/oracle/oradata/orcl/control01.ctl', '/u01/app/oracle/oradata/orcl/control02.ctl')
    
  • 用这个pfile启动后,还可以生成spfile方便后续使用:
    create spfile from pfile='/path/to/initorcl.ora';
    

三、修复tnsping orcl"cannot resolve parameter"错误

这个是TNS配置问题,要么监听没启动,要么tnsnames.ora配置错误,要么环境变量没设对。

1. 检查并启动监听

在终端执行:

lsnrctl status

如果显示监听未启动,执行启动命令:

lsnrctl start

2. 确认TNS_ADMIN环境变量

这个变量要指向tnsnames.ora所在的目录,默认是$ORACLE_HOME/network/admin(Linux)或%ORACLE_HOME%\network\admin(Windows)。

检查变量:

# Linux/Unix
echo $TNS_ADMIN

# Windows
echo %TNS_ADMIN%

如果没设置,手动配置:

# Linux/Unix
export TNS_ADMIN=$ORACLE_HOME/network/admin

# Windows
set TNS_ADMIN=%ORACLE_HOME%\network\admin

3. 修正tnsnames.ora配置

打开tnsnames.ora文件,确保orcl的条目配置正确,示例如下:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 你的主机名或IP)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

注意替换你的主机名或IP为实际值,SERVICE_NAME要和数据库实际服务名一致(可以在sqlplus里执行show parameter service_name查看)。

4. 重载监听配置

修改完tnsnames.ora后,重载监听让配置生效:

lsnrctl reload

现在再执行tnsping orcl,应该就能正常解析了。


内容的提问来源于stack exchange,提问作者tech_logman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:55:22