關於Oracle8i回退段引起的錯誤
os:windows2000
db:oracle8.0.1.2
dd:2010-8-10
週二去使用者單位解決oracle問題,使用者反映在前臺應用中,執行完插入功能後,資料沒有完全被寫入到資料庫後臺,出現了丟失資料的現象,檢視警告日誌後,報錯如下:
ORA-01595: error freeing extent (1) of rollback segment (72))
ORA-01594: attempt to wrap into rollback segment (62) extent (1) which is being used
由於對oracle8i接觸不多,看到這個錯誤資訊有些發懵,不過看報錯記錄分析是跟回退段有關。google下,果然是因為回滾段擴充套件過小所致。
SQL> select segment_name,tablespace_name,bytes,next_extent
2 from dba_segments where segment_type='ROLLBACK';
SEGMENT_NAME TABLESPACE_NAME BYTES NEXT_EXTENT
---------------- ----------------- ---------- ------------
SYSTEM SYSTEM 409600 57344
RBS0 RBS 4194304 2097152
RBS1 RBS 4194304 2097152
RBS2 RBS 4194304 2097152
RBS3 RBS 4194304 2097152
RBS4 RBS 4194304 2097152
RBS5 RBS 4194304 2097152
RBS6 RBS 4194304 2097152
下一個區間分配的太小,只有56KB。
SQL> col name for a12
1 select s.usn,n.name,s.extents,s.optsize,s.hwmsize,s.status
2* from v$rollstat s, v$rollname n where s.usn=n.usn
USN NAME EXTENTS OPTSIZE HWMSIZE STATUS
---------- ------------ ---------- ---------- ---------- ---------------
0 SYSTEM 2 401408 ONLINE
1 RBS0 8 8388608 4186112 ONLINE
2 RBS1 8 8388608 4186112 ONLINE
3 RBS2 8 8388608 4186112 ONLINE
4 RBS3 8 8388608 4186112 ONLINE
5 RBS4 8 8388608 4186112 ONLINE
6 RBS5 8 8388608 4186112 ONLINE
已選擇8行。
Oracle不允許修改各個段的初始分配值,所以只能修改NEXT_EXTENT的值,由於OPTSIZE 為空,也一起設定。
這裡轉一個對optsize的解釋:
注:optimal 表示在事務處理當中,該回滾段由於增、刪、改的資料量的需要而不斷對回滾段進行擴充套件,以滿足事務的要求,但是在事務處理完成後可以讓回滾段縮小到一個最佳的範圍內。這就是由回滾段的OPTIMAL引數來控制。一般optimal = initial + n* next , 且 n >1 。
根據情況optimal = initial + 2 * next = 409600 + 2* 1024000 = 2457600
SQL> alter rollback segment system storage(next 1m optimal 2457600);
重算段已修改。
SQL> select segment_name,tablespace_name,bytes,next_extent
2 from dba_segments where segment_type='ROLLBACK';
SEGMENT_NAME TABLESPACE_NAME BYTES NEXT_EXTENT
---------------- ----------------- ---------- ------------
SYSTEM SYSTEM 409600 1024000
RBS0 RBS 4194304 2097152
RBS1 RBS 4194304 2097152
RBS2 RBS 4194304 2097152
RBS3 RBS 4194304 2097152
RBS4 RBS 4194304 2097152
RBS5 RBS 4194304 2097152
RBS6 RBS 4194304 2097152
SQL> col name for a12
1 select s.usn,n.name,s.extents,s.optsize,s.hwmsize,s.status
2* from v$rollstat s, v$rollname n where s.usn=n.usn
USN NAME EXTENTS OPTSIZE HWMSIZE STATUS
---------- ------------ ---------- ---------- ---------- ---------------
0 SYSTEM 2 2457600 401408 ONLINE
1 RBS0 8 8388608 4186112 ONLINE
2 RBS1 8 8388608 4186112 ONLINE
3 RBS2 8 8388608 4186112 ONLINE
4 RBS3 8 8388608 4186112 ONLINE
5 RBS4 8 8388608 4186112 ONLINE
6 RBS5 8 8388608 4186112 ONLINE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7417660/viewspace-1036739/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於win7安全機制引起的Oracle10g的錯誤Win7Oracle
- 關於vuex的錯誤Vue
- TensorFlow不同版本引起的錯誤
- 記憶體拷貝引起的錯誤記憶體
- 由JS註釋引起的JS錯誤JS
- 關於mysql 1067的錯誤MySql
- 關於jivejdon 4.0的執行錯誤
- 關於 JavaScript 錯誤捕獲JavaScript
- 關於記憶體錯誤記憶體
- Double型別精度問題引起的錯誤型別
- Redhat防火牆引起的一個NDB錯誤。Redhat防火牆
- Oracle8i匯出出現EXP-8錯誤Oracle
- 關於weblogic pool 一錯誤除錯Web除錯
- 關於Symbian的"程式已經關閉"錯誤
- 關於系統效能的10大錯誤
- 關於PHP 時區錯誤的問題PHP
- backtrace() 段錯誤定位
- 檔案格式引起的指令碼執行錯誤指令碼
- 檔名與庫名相似引起的錯誤——randomrandom
- mysql memory引擎引起的主從 1032 錯誤MySql
- DB2 DDL操作引起的GoldenGate錯誤DB2Go
- 分散式事務對於兩階段提交的錯誤處理分散式
- 關於Mapreduce Text型別賦值的錯誤型別賦值
- 關於洗牌演算法的錯誤認識演算法
- 關於jive資料庫連結的錯誤?資料庫
- 關於”kccrsz“錯誤處理一則
- HEAD請求方法引起方法未定義的錯誤
- 物理DG的FAL_CLIENT設定錯誤引起的主庫報錯client
- 關於c語言記憶體分配,malloc,free,和段錯誤,記憶體洩露C語言記憶體洩露
- 關於ORACLE_OCM.MGMT_DB_LL_METRICS的錯誤Oracle
- 關於在vm安裝soalris10的錯誤
- oracle關於ORA-12988錯誤Oracle
- convert函式引起的ora-01482錯誤函式
- 關於 IIS 上執行 ASP.NET Core 站點的“HTTP 錯誤 500.19”錯誤ASP.NETHTTP
- 關於 ABAP 的執行時錯誤 ITAB_ILLEGAL_ORDER
- [譯] 關於 `ExpressionChangedAfterItHasBeenCheckedError` 錯誤你所需要知道的事情ExpressError
- 關於VS報無法解析外部符號的錯誤符號
- 關於oracle 9i的閃回的一個錯誤Oracle