天天看点

oracle安装完无法登陆数据库

今天静默安装完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:

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

Connected to an idle instance.

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

尝试正常关闭数据库:

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

然后:

Database mounted.

在进行归档时发现:

SQL> alter database archivelog;

alter database archivelog

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

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

SQL> alter dababase open;

alter dababase open

      *

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;

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

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