有朋友求助于我,新安裝的oracle11g數據庫,使用PLSQL Developer工具連接報錯,錯誤代碼:ORA-01219,數據庫版本號11.2.0.1.0,操作系統Windows Server 2012,問我不用重裝是否可以解決?初步判斷是數據庫啟動異常,因為是內網環境,不能遠程,只能指導他一步步操作。
1.首先讓他登錄到服務器,重啟數據庫:
SQL> shutdown immediate
SQL> startup
執行startup啟動指令后,果然出現錯誤信息,顯示為datafile 3文件異常。這里的datafile 3對應的是undo表空間,在打開數據庫時,需要用到undo block 208來回滾沒有提交的事務,但是block 208這個塊有問題,提示需要恢復。
2.執行以下命令,進行數據文件恢復:
SQL> recover datafile 3;
3.結果提示上面的錯誤,說明datafile 3已經損壞,將其下線:
SQL> alter database datafile 3 offline drop;
4.既然數據庫已經是open的狀態,那么就可以創建新的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狀態后,刪除UNDOTBS1:
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
8.重啟數據庫驗證結果,問題已解決:
注意:
- 對于非歸檔模式下只能使用以下指令對數據文件置為離線,否則會提示錯誤:
SQL> alter database datafile 3 offline drop;
- 而對于歸檔模式,offline和offline drop沒有什么區別