天天看點

删除DUAL表後的處理

删除DUAL表後的處理   Oracle系統中dual表是一個“神秘”的表,網上有很多網友都對該表進行了測試,該表隻有一行一列,其實該表和系統中的其他表一樣,一樣可以執行插入、更新、删除操作,還可以執行drop操作。但是不要去執行drop表的操作,否則會使系統不能用,資料庫起不了,會報Database startup crashes with ORA-1092錯誤。 此時也不要慌亂,可以通過執行以下步驟來進行恢複。可以用sys使用者登陸。 SQL> create pfile=’d:/pfile.bak’ from spfile SQL> shutdown immediate 在d:/pfile.bak檔案中最後加入一條:replication_dependency_tracking = FALSE 重新啟動資料庫: SQL> startup pfile=’d:/pfile.bak’ SQL> create table “sys”.”DUAL”      ( “DUMMY” varchar2(1) )      pctfree 10 pctused 4; SQL> insert into dual values(‘X’); SQL> commit; SQL> Grant select on dual to Public; 授權成功。   SQL> select * from dual;   D - X   SQL> shutdown immediate 資料庫已經關閉。 已經解除安裝資料庫。 ORACLE 例程已經關閉。 SQL> startup ORACLE 例程已經啟動。   Total System Global Area 135338868 bytes Fixed Size                    453492 bytes Variable Size              109051904 bytes Database Buffers            25165824 bytes Redo Buffers                  667648 bytes 資料庫裝載完畢。 資料庫已經打開。 SQL>   OK, 下面就可以正常使用了。