1. 程式人生 > >oracle數據庫報ORA-01033錯誤

oracle數據庫報ORA-01033錯誤

數據庫服務 oracle system

Oracle登錄 ORA-01033: ORACLE正在初始化或關閉的解決辦法

2015-03-16 01:20 | 160511人閱讀 | 來源

Oracle登錄 ORA-01033: ORACLE正在初始化或關閉的解決方法

Oracle存在多實例

相應的在DOS命令下執行:

1. 設置正確的ORACLE實例:set ORACLE_SID = INSTANCE_NAME

2. 啟動SQLPLUS:sqlplus /nolog

3.以DBA(通常有好幾個sys或system)用戶sqlplus登錄:connect system/sys as sysdba

oracle登錄錯誤(ORA-01033:ORACLE initialization or shutdown in progress

上面說到了創建表分區的例子,所以創建表空間的時候創建了好幾個表空間物理文件,之後感覺創建的有誤,想刪掉它們,可是刪不掉(因為數據庫進程啟動著),所以把數據庫服務給關了,直接Shift+Del把文件給刪掉了。

問題出來了:我再次啟動oracle相關服務後,登錄不了了。

出現了ORA-01033:ORACLE initialization or shutdown in progress

原因就是因為我把介質文件給刪掉了

解決步驟:

以DBA(通常有好幾個sys或system)用戶sqlplus登錄

請輸入用戶名: system/sys as sysdba

然後(卸載數據)輸入:

SQL> shutdown normal

會出現:

ORA-01109: 數據庫未打開

已經卸載數據庫。

ORACLE 例程已經關閉。

然後(裝載數據)輸入:

SQL> startup mount

ORACLE 例程已經啟動。

數據庫裝載完畢。

之後:

SQL>alter database open;

第 1 行出現錯誤:

ORA-01157: 無法標識/鎖定數據文件 6 - 請參閱 DBWR 跟蹤文件

ORA-01110: 數據文件 6: ‘D:/ORACLE/PRODUCT/10.1.0/ORADATA/RAILWAY/2008_1.DAT‘

SQL> alter database create datafile 6;

數據庫已更改。

SQL>alter database open;

第 1 行出現錯誤:

ORA-01113: 文件 6 需要介質恢復

ORA-01110: 數據文件 6: ‘D:/ORACLE/PRODUCT/10.1.0/ORADATA/RAILWAY/2008_1.DAT‘

SQL> alter database datafile 6 offline drop;

數據庫已更改。

繼續

SQL>alter database open;

如果出現以上錯誤,繼續執行相關操作,上面的6要和create和drop對應。

如果

SQL> alter database open;

出現了:

數據庫已更改。

則成功了。

這時可以再用PL/SQL等客戶端工具,登錄操作數據庫了。

至於介質恢復: ora-01172 ora-01151了,解決辦法如下:

c:>sqlplus /nolog

SQL> connect [email protected] as SYSDBA

已連接

SQL> startup mount

ORA-01081: 無法啟動已在運行的 ORACLE --- 請首先關閉

SQL> alter database open read only;

alter database open read only

*

ERROR 位於第 1 行:

ORA-16005: 數據庫需要恢復

SQL> recover database

完成介質恢復。

SQL> shutdown immediate

ORA-01109: 數據庫未打開

已經卸載數據庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area 730931140 bytes

Fixed Size 454596 bytes

Variable Size 411041792 bytes

Database Buffers 318767104 bytes

Redo Buffers 667648 bytes

數據庫裝載完畢。

數據庫已經打開。

今天用客戶端連接oracle時,發現報ORA-01033: ORACLE 正在初始化或關閉錯誤,其實這個錯誤報了幾天了,前兩次重啟一下就好了,今天是怎麽也起不來了,通過在網上查找,很好的就解決了,

首先我用startup mount命令,可以正常,然後用alter database open就會報錯,如下圖

從中可以看出歸檔文件的問題,隨後

可以看出改組非當前狀態但已歸檔,所以用clear命令來重建當前組

SQL>alter database clear logfile group 3;

如果是該日誌組還沒有歸檔,則需要用

SQL>alter database clear unarchived logfile group 3;

然後alter database open 數據庫就可以連上了。

我這是在自己本機上隨便做的,但是如果在生產機上最好立刻做備份一下。

說明:

1)、如果損壞的是非當前的聯機日誌文件,一般只需要clear就可以重建該日誌文件,但是如果該數據庫處於歸檔狀態但該日誌還沒有歸檔,就需要強行clear。

2)、建議clear,特別是強行clear後作一次數據庫的全備份。

3)、此方法適用於歸檔與非歸檔數據庫。



百度經驗:

http://jingyan.baidu.com/article/36d6ed1f6e3bb61bcf4883e1.html

本文出自 “0805” 博客,請務必保留此出處http://zrxwcc.blog.51cto.com/6160351/1926041

oracle數據庫報ORA-01033錯誤