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

最近研究在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.

证明服务已经启动了,大功告成,废了我一番功夫。哎。。。

猜你喜欢

转载自dk19870616.iteye.com/blog/1555667