新安裝的Oracle11g數(shù)據(jù)庫啟動就報錯,可以這么解決
有朋友求助于我,新安裝的oracle11g數(shù)據(jù)庫,使用PLSQL Developer工具連接報錯,錯誤代碼:ORA-01219,數(shù)據(jù)庫版本號11.2.0.1.0,操作系統(tǒng)Windows Server 2012,問我不用重裝是否可以解決?初步判斷是數(shù)據(jù)庫啟動異常,因為是內(nèi)網(wǎng)環(huán)境,不能遠程,只能指導他一步步操作。
1.首先讓他登錄到服務器,重啟數(shù)據(jù)庫:
SQL> shutdown immediate
SQL> startup
執(zhí)行startup啟動指令后,果然出現(xiàn)錯誤信息,顯示為datafile 3文件異常。這里的datafile 3對應的是undo表空間,在打開數(shù)據(jù)庫時,需要用到undo block 208來回滾沒有提交的事務,但是block 208這個塊有問題,提示需要恢復。
2.執(zhí)行以下命令,進行數(shù)據(jù)文件恢復:
SQL> recover datafile 3;
3.結(jié)果提示上面的錯誤,說明datafile 3已經(jīng)損壞,將其下線:
SQL> alter database datafile 3 offline drop;
4.既然數(shù)據(jù)庫已經(jīng)是open的狀態(tài),那么就可以創(chuàng)建新的undo表空間:
SQL> create undo tablespace UNDOTBS datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS.dbf' size 500m autoextend off;
5.指定UNDOTBS表空間為默認undo表空間:
SQL> alter system set undo_tablespace='UNDOTBS' scope=both;
6.確保所有UNDOTBS1的status都已變成offline:
SQL> select SEGMENT_NAME ,STATUS ,TABLESPACE_NAME from dba_rollback_segs;
7.當UNDOTBS1都為OFFLINE狀態(tài)后,刪除UNDOTBS1:
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
8.重啟數(shù)據(jù)庫驗證結(jié)果,問題已解決:
注意:
- 對于非歸檔模式下只能使用以下指令對數(shù)據(jù)文件置為離線,否則會提示錯誤:
SQL> alter database datafile 3 offline drop;
- 而對于歸檔模式,offline和offline drop沒有什么區(qū)別