ORA-00257 錯誤分析及解決方法

lhb_immortal發表於2011-09-17
------------------------------                足行千里                -----------------------------------------



這個錯誤的原因,至今為止我個人發現有以下幾個方面的原因:
1. 歸檔日誌過多,空間不足
2. 歸檔日誌儲存路徑不正確(主要存在於資料遷移或者rman異機恢復後,特別是不同構建下的恢復,如普通資料恢復到DG,或者RAC,如果引數檔案沒有進行相應調整,就會出問題,也或者是有人故意修改引數檔案導致引數指向的路徑,資料庫無法識別)

如果有其他原因,小弟還沒有發現的,請大拿不吝賜教!

檢視閃回區狀態:

1. 檢視閃回區大小

    show parameter db_recovery
       會返回兩個引數:
       db_recovery_file_dest           --對應閃回區路徑
        db_recovery_file_dest_size       --對應閃回區總空間大小
       假設 db_recovery_file_dest_size = n,下面檢視閃回區使用情況時,會用到
      
2. 檢視閃回區空間使用情況
   通過該檢視來檢視v$flash_recovery_area_usage
   select sum(percent_space_used) from v$flash_recovery_area_usage;            --檢視空間使用率
    select n*sum(percent_space_used)/100 from v$flash_recovery_area_usage;          --檢視具體已用空間大小
  
解決方法:

1. 增加歸檔日誌儲存空間
        alter system set DB_RECOVERY_FILE_DEST_SIZE=10g;
2. 刪除歸檔日誌
        正確的刪除歸檔日誌,參見RMAN --&gt RMAN刪除歸檔日誌
3. 更改歸檔日誌的儲存路徑
   3.1 檢視歸檔日誌儲存路徑設定
       SQL> show parameter log_archive_dest_1
 
                NAME                                 TYPE        VALUE
                ------------------------------------ ----------- ------------------------------
                log_archive_dest_1                   string     
                log_archive_dest_10                  string     
                log_archive_dest_11                  string     
                log_archive_dest_12                  string     
                log_archive_dest_13                  string     
                log_archive_dest_14                  string     
                log_archive_dest_15                  string     
                log_archive_dest_16                  string     
                log_archive_dest_17                  string     
                log_archive_dest_18                  string     
                log_archive_dest_19                  string     

           通過以上命令我們看到,log_archive_dest_1 的值是空,這說明,該設定使用的預設值,預設儲存位置位於閃回區。
           這裡需要注意的是,更改歸檔日誌的儲存路徑不是更改log_archive_dest 的值,而是更改log_archive_dest_1的值。

     3.2    執行更改命令

            
                SQL> ALTER SYSTEM SET log_archive_dest_1 = 'location=D:/';
 
                System altered
 
                SQL> show parameter log_archive_dest_1
 
                NAME                                 TYPE        VALUE
                ------------------------------------ ----------- ------------------------------
                log_archive_dest_1                   string      location=D:/
                log_archive_dest_10                  string     
                log_archive_dest_11                  string     
                log_archive_dest_12                  string     
                log_archive_dest_13                  string     
                log_archive_dest_14                  string     
                log_archive_dest_15                  string     
                log_archive_dest_16                  string     
                log_archive_dest_17                  string     
                log_archive_dest_18                  string     
                log_archive_dest_19                  string 

                修改後,歸檔日誌的儲存路徑就會存儲存在D:/ 下,注意,該路徑必須存在。
                如果要改為預設值怎麼辦?把value的值變為空就好了。

                alter system set log_archive_dest_1 = '';

                如下:
                SQL> alter system set log_archive_dest_1 = '';
 
                System altered
 
                SQL> show parameter log_archive_dest_1
 
                NAME                                 TYPE        VALUE
                ------------------------------------ ----------- ------------------------------
                log_archive_dest_1                   string     
                log_archive_dest_10                  string     
                log_archive_dest_11                  string     
                log_archive_dest_12                  string     
                log_archive_dest_13                  string     
                log_archive_dest_14                  string     
                log_archive_dest_15                  string     
                log_archive_dest_16                  string     
                log_archive_dest_17                  string     
                log_archive_dest_18                  string     
                log_archive_dest_19                  string     

----------------------------------            The End        -----------------------------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25313300/viewspace-707777/,如需轉載,請註明出處,否則將追究法律責任。

相關文章