阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle安装完无法登陆数据库

96次阅读
没有评论

共计 3140 个字符,预计需要花费 8 分钟才能阅读完成。

今天静默安装完 Oracle11gr2 版本后,连入数据库后,出现如下情况:

[oracle@oracle response]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 29 09:04:40 2017

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.                                                  

SQL> shutdown immediate;

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux-x86_64 Error: 2: No such file or directory

SQL> alter system register;

alter system register

*

ERROR at line 1:

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 ‘/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initORCL.ora’

根据提示查找 initORCL.ora 文件,发现没有。于是 将 $ORACLE_BASE/admin/orcl/pfile 目录下的 init.ora.*** 形式的文件 copy 到 $ORACLE_HOME/dbs 目录下重命名为 initORCL.ora 即可。(注:initORCL.ora 中的 orcl 为你的实例名 ORACLE_SID,这里我的 SID 为:ORCL)

或者 将 $ORACLE_HOME/dbs 目录下 spflieoracl.ora 改名为 spfileORCL.ora 即可。(注:spfileORCL.ora 中的 ORCL 为环境变量中设置的 SID)

[oracle@oracle ~]$ cp /u01/app/oracle/admin/orcl/pfile/init.ora.82920179156 $ORACLE_HOME/dbs/initORCL.ora

[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 29 11:58:27 2017

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount;

ORACLE instance started.

Total System Global Area  626327552 bytes

Fixed Size                  2215944 bytes

Variable Size             184553464 bytes

Database Buffers          436207616 bytes

Redo Buffers                3350528 bytes

ORA-01102: cannot mount database in EXCLUSIVE mode

尝试正常关闭数据库:

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

查了一下资料,发现是 lk<SID> 文件造成的,该文件位于 ORALCE_HOME 下的 dbs 目录下,马上检查该文件:

[oracle@oracle ~]$ ls $ORACLE_HOME/dbs

hc_DBUA0.dat  hc_ORCL.dat  initORCL.ora  orapworcl

hc_orcl.dat   init.ora     lkORCL        spfileorcl.ora

[oracle@oracle dbs]$ fuser -u lkORCL

lkORCL:               7621(oracle)  7627(oracle)  7631(oracle)  7633(oracle)  7637(oracle)  7639(oracle)  7641(oracle)  7643(oracle)  7645(oracle)  7647(oracle)  7649(oracle)  7651(oracle)  7663(oracle)  7680(oracle)  7682(oracle)  7684(oracle)  7692(oracle)  8272(oracle)

果然该文件没有释放,用 fuser 命令 kill 掉:

[oracle@oracle dbs]$ fuser -k lkORCL

lkORCL:               7621  7627  7631  7633  7637  7639  7641  7643  7645  7647  7649  7651  7663  7680  7682  7684  7692  8272

[oracle@oracle dbs]$ fuser -u lkORCL

然后:

SQL> startup mount;

ORACLE instance started.

Total System Global Area  626327552 bytes

Fixed Size                  2215944 bytes

Variable Size             184553464 bytes

Database Buffers          436207616 bytes

Redo Buffers                3350528 bytes

Database mounted.

在进行归档时发现:

SQL> alter database archivelog;

alter database archivelog

*

ERROR at line 1:

ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

继续查资料,发现需要先将数据库起到 open 状态:

SQL> alter dababase open;

alter dababase open

      *

ERROR at line 1:

ORA-00940: invalid ALTER command

发现还是报错,继续查资料,找到一个 datafile 被 offline 的解决办法。解决办法。

shutdown immediate
startup mount

recover datafile 2

alter database datafile 2 online
alter datebase open

结果如下:

SQL> recover datafile 2;

Media recovery complete.

SQL> alter database datafile 2 online;

Database altered.

SQL> alter database open;

Database altered

然后对数据库进行重启,问题解决。

静默安装了很多次,头一次出现安装好就无法登陆数据库的问题,折腾到半夜两点,还是度参数不熟悉,继续努力吧!

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147229.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3140字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中