登錄SQLplus時(shí)報(bào)了一個(gè)異常:
ORA-01033: ORACLE正在初始化或關(guān)閉
環(huán)境是Windows7操作系統(tǒng)涉枫,Oracle 12c忌堂。我的解決方法是這樣的:
0x01
打開(kāi)命令行界面露戒,輸入sqlplus system/sys as sysdba
以管理員方式登錄
Microsoft Windows [版本 6.1.7601]
版權(quán)所有 (c) 2009 Microsoft Corporation护蝶。保留所有權(quán)利占哟。
C:\Users\Berlin>sqlplus system/sys as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期五 6月 15 17:15:28 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
連接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
0x02
輸入命令startup mount
載入數(shù)據(jù)庫(kù)心墅,然而報(bào)出“ORA-01081: 無(wú)法啟動(dòng)已在運(yùn)行的 ORACLE - 請(qǐng)先將其關(guān)閉”提示語(yǔ)句。所以使用命令shutdown immediate
卸載數(shù)據(jù)庫(kù)榨乎,然后在裝載怎燥。這個(gè)過(guò)程需要耗費(fèi)一點(diǎn)時(shí)間,耐心等待蜜暑。
SQL> startup mount
ORA-01081: 無(wú)法啟動(dòng)已在運(yùn)行的 ORACLE - 請(qǐng)先將其關(guān)閉
SQL> shutdown immediate
ORA-01109: 數(shù)據(jù)庫(kù)未打開(kāi)
已經(jīng)卸載數(shù)據(jù)庫(kù)铐姚。
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup mount
ORACLE 例程已經(jīng)啟動(dòng)肛捍。
Total System Global Area 3841982464 bytes
Fixed Size 8753768 bytes
Variable Size 889195928 bytes
Database Buffers 2936012800 bytes
Redo Buffers 8019968 bytes
數(shù)據(jù)庫(kù)裝載完畢隐绵。
0x03
輸入alter database open;
命令。如果出現(xiàn)錯(cuò)誤提書(shū)“ORA-01589: 要打開(kāi)數(shù)據(jù)庫(kù)則必須使用 RESETLOGS 或 NORESETLOGS 選項(xiàng)”拙毫,那么使用命令alter database open resetlogs;
SQL> alter database open;
alter database open
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01589: 要打開(kāi)數(shù)據(jù)庫(kù)則必須使用 RESETLOGS 或 NORESETLOGS 選項(xiàng)
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01245: RESETLOGS 完成時(shí)脫機(jī)文件 1 將丟失
ORA-01110: 數(shù)據(jù)文件 1: 'C:\APP\BERLIN\ORACLEDB\ORADATA\ORCL\SYSTEM01.DBF'
錯(cuò)誤提示“ORA-01245: RESETLOGS 完成時(shí)脫機(jī)文件 1 將丟失”依许,是我之前錯(cuò)誤的把datafile 1
給offline
了((:зゝ∠))。所以先要把它給online
一下缀蹄,然后再輸入alter database open resetlogs;
:
SQL> alter database datafile 1 online;
數(shù)據(jù)庫(kù)已更改悍手。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01113: 文件 1 需要介質(zhì)恢復(fù)
ORA-01110: 數(shù)據(jù)文件 1: 'C:\APP\BERLIN\ORACLEDB\ORADATA\ORCL\SYSTEM01.DBF'
參考:system01.dbf文件被offline,導(dǎo)致數(shù)據(jù)庫(kù)報(bào)ORA-01245 ORA-01110故障
0x04
現(xiàn)在,它提示“ORA-01113: 文件 1 需要介質(zhì)恢復(fù)”袍患。輸入命令recover database using backup controlfile;
SQL> recover database using backup controlfile;
ORA-00279: 更改 18478439 (在 05/29/2018 23:44:10 生成) 對(duì)于線程 1 是必需的
ORA-00289: 建議:
C:\APP\BERLIN\ORACLEDB\RECOVERY_AREA\ORCL\ARCHIVELOG\2018_06_15\O1_MF_1_412_%U_.
ARC
ORA-00280: 更改 18478439 (用于線程 1) 在序列 #412 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
命令行現(xiàn)在等待你輸入日志文件坦康。我參考的是這個(gè)辦法: ORA-01589: 要打開(kāi)數(shù)據(jù)庫(kù)則必須使用 RESETLOGS 或 NORESETLOGS 選項(xiàng)。辦法是打開(kāi)日志所在的文件夾诡延,然后依次匹配滞欠。
在我的電腦上,這個(gè)文件夾路徑是C:\app\Berlin\oracleDB\oradata\orcl
從REDO01.LOG
到REDO03.LOG
依次嘗試肆良,我運(yùn)氣好筛璧,REDO01.LOG
就是我要找的文件:
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\app\Berlin\oracleDB\oradata\orcl\REDO01.LOG
已應(yīng)用的日志。
完成介質(zhì)恢復(fù)惹恃。
0x05
現(xiàn)在夭谤,再次鍵入命令alter database open resetlogs;
,這樣我的就OK了:
SQL> ALTER DATABASE OPEN RESETLOGS;
數(shù)據(jù)庫(kù)已更改巫糙。
現(xiàn)在朗儒,打開(kāi)SQLplus,就可以登錄啦 :-):
請(qǐng)輸入用戶名: SCOTT
輸入口令:
上次成功登錄時(shí)間: 星期六 5月 26 2018 13:32:11 +08:00
連接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>