ORA-12541 ORA-12514 ORA-01034 ORA-27101 LRM-00109

本文详细介绍了在SUSE 11上安装Oracle 11数据库后遇到的连接问题及解决方案,包括配置监听文件listener.ora和服务文件tnsnames.ora的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近研究在suse 11上安装 oracle 11 数据库,安装成功了,当天是可以连接的,
但是第二天来上班,再去连接,就不行了,废了我一番功夫,才搞定,记录如下,希望可以帮助到有遇到类似错误的兄弟。

当连接数据库时首先出现
ORA-12541:TNS:无监听程序

在命令行输入:lsnrctl start
之后,再去连接又出现了
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

凭着自己的经验,肯定监听文件有问题,一查看发现监听文件还未配置服务(一直没有明白为什么会这样,明明自己配置了服务。)发现和正常listener.ora少了下面信息:

XP样板:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)服务名
(ORACLE_HOME = E:\Server\oracle\product\10.2.0\db_1)#注意最后不要带"\"符号
(SID_NAME = ORCL)##这个是你要添加的服务
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Server\oracle\product\10.2.0\db_1)##这个服务保证你可以使用外部过程
)
)

Linux样板:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TESTDB)
(ORACLE_HOME = /fantlam/oracle/app/oracle/oracle)
(SID_NAME = TESTDB)
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /fantlam/oracle/app/oracle/oracle)
)
)


然后再配置tnsnames.ora文件,加入下面的内容:(这个文件也要检查下)

ZHANGYU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test) 与上面的服务名对应
)
)

在连接时你就可以这样测试下:
tnsping 服务名;
最后几行出现下面类似的文本信息就表明服务配置成功:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = test)))
OK (110 msec)


再一次在命令行输入:sqlplus 用户名/密码@服务名

出现了如下错误信息:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0

接着再一次输入:sqlplus 用户名/密码@服务名

Enter user-name: / as sysdba 进入SQL模式

Enter user-name: /as sysdba
Connected to an idle instance.

SQL> show parameter local_listener
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0


SQL> startup mount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/fantlam/oracle/app/oracle/oracle/dbs/initfantlam.ora'

如果出现这样的错误信息就到 ORACLE_HOME 目录下 找到admin/服务名文件夹/pfile/init.ora.....里面有这样的一个类似文件
复制出来,改为上面找不到的文件名,然后再把它放到上面找不到的文件目录下,系统就可以找到了

再一次运行
SQL> startup
ORACLE instance started.

证明服务已经启动了,大功告成,废了我一番功夫。哎。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值