ORA-00257 錯誤分析及解決方法
------------------------------ 足行千里 -----------------------------------------
這個錯誤的原因,至今為止我個人發現有以下幾個方面的原因:
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 --> 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 -----------------------------------------------
這個錯誤的原因,至今為止我個人發現有以下幾個方面的原因:
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 --> 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-14452錯誤及解決方法
- IMP-00098 錯誤及解決方法
- 目標板掛載NFS方法及錯誤解決NFS
- 【ora 錯誤及解決方法】ORA-01652
- ORA-01537 錯誤及解決方法
- Oracle 常見的錯誤問題及解決方法Oracle
- 帝國CMS搬家常見錯誤及解決方法
- MySQL常見錯誤分析與解決方法總結MySql
- PbootCMS 404 錯誤解決方法boot
- 中科三方——SSL常見錯誤及解決方法
- tensorflow安裝使用過程錯誤及解決方法
- SSL證書7大常見錯誤及解決方法!
- 資料庫連線錯誤的原因及解決方法資料庫
- vsftpd 錯誤:530 and 500 錯誤解決方法FTP
- ORA-00257 archiver error. 錯誤的處理方法HiveError
- undefined reference to錯誤的解決方法Undefined
- AFNetworkingErrorDomain 錯誤解決方法ErrorAI
- PHP錯誤“Thisfilehasexpired”的解決方法PHP
- dbfread報錯ValueError錯誤解決方法Error
- PHP初學者最常遇到的8個錯誤及解決方法PHP
- SSL證書七大常見錯誤及解決方法
- 伺服器出現 HTTP 錯誤程式碼,及解決方法伺服器HTTP
- 【oracle 錯誤及解決】ORA-39139Oracle
- oracle錯誤及解決方式集(轉)Oracle
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- 【Oracle】ORA-00054 錯誤解決方法Oracle
- 錯誤Namenodeisinsafemode的解決方法
- Android錯誤解決方法集錦Android
- hadoop日常錯誤解決方法整理Hadoop
- ORA-04098錯誤解決方法
- ORA-25154錯誤解決方法
- npm WARN unmet dependency錯誤解決方法NPM
- Hadoop常見錯誤及解決方案Hadoop
- 開發常見錯誤及解決方案
- PHP編譯錯誤及解決辦法PHP編譯
- sqplus 的 segmentation fault錯誤及解決!Segmentation
- PHP原始碼包編譯安裝錯誤及解決方法彙總PHP原始碼編譯
- MySQL 主從複製,常見的binlog錯誤及解決方法MySql