1. 程式人生 > >ORA-00604,ORA-01653,ORA-02002

ORA-00604,ORA-01653,ORA-02002

碰到問題:plsql登入時不能登入,提示以下錯誤,

    ORA-00604: error occurred at recursive SQL level 1

    ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM

    ORA-02002: error while writing to audit trail

ora-00604 : 遞迴sql級別1出現錯誤

ora-01653 : 在表空間SYSTEM中表SYS.AUD$無法通過8192擴充套件

ora-02002 : 寫入審計跟蹤時報錯(審計跟蹤(audit trail),是系統活動的流水記錄

此時已經不能正常登入資料庫,只能登入資料庫伺服器來解決。

問題原因:SYSTEM表空間不足。

檢視問題方法:

    1.因為plsql已經不能登入,不知道dba使用者的密碼,所以只能登入資料庫伺服器以DBA使用者進行操作。我這裡為Linux伺服器,具體指令如下:

            export ORACLE_SID=本地例項名

            sqlplus / as sysdba

    2.執行以下sql:

select db.file_name, db.tablespace_name, db.bytes/1024/1024, free.bytes/1024/1024 
from dba_data_files db, dba_free_space free 
where db.tablespace_name = free.tablespace_name 
and db.file_id = free.file_id 
and db.tablespce_name = 'SYSTEM';

檢視資料檔名稱,表空間名,表空間大小,已使用大小。對查詢結果不再進行展示。我的剩餘大小為0.8M。

解決辦法:

    解決辦法有兩種,增加表空間大小或者增加資料檔案。

    3.增加表空間大小

alter database datafile '資料檔名稱' resize 5120M

    此處資料檔名稱在步驟2中已經查出,resize大小看自己硬碟空間,自己控制(不一定是5120M)。

    4.增加資料檔案

alter database SYSTEM add datafile '新增資料檔名' size 1024M
autoextend on next 8M maxsize 2048M;

    此處autoextend 可以不設定,僅僅指定size 1024M也是可以的。