前些天數據庫服務器出現了一下錯誤:

SQL*Loader-961:  對錶 table1 調用一次/加載完成時出錯
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [8], [565129], [18021], [], [], [], []

SQL*Loader-2026:  加載因 SQL 加載程序無法繼續而被終止

該錯誤主要是由於數據庫非法關閉造成的。

關於ORA-00600錯誤描述:

引用

ORA-00600: internal error code, arguments: [string], [string], [string], [string], [string], [string], [string], [string], [string], [string], [string], [string]
Cause: This is the generic internal error number for Oracle program exceptions. It indicates that a process has encountered a low-level, unexpected condition. The first argument is the internal message number. This argument and the database version number are critical in identifying the root cause and the potential impact to your system.
Action: Visit My Oracle Support to access the ORA-00600 Lookup tool (reference Note 600.1) for more information regarding the specific ORA-00600 error encountered. An Incident has been created for this error in the Automatic Diagnostic Repository (ADR). When logging a service request, use the Incident Packaging Service (IPS) from the Support Workbench or the ADR Command Interpreter (ADRCI) to automatically package the relevant trace information (reference My Oracle Support Note 411.1). The following information should also be gathered to help determine the root cause:
- changes leading up to the error

- events or unusual circumstances leading up to the error

- operations attempted prior to the error

- conditions of the operating system and databases at the time of the error Note: The cause of this message may manifest itself as different errors at different times. Be aware of the history of errors that occurred before this internal error.


關於ORA-00607錯誤描述:

引用

ORA-00607: Internal error occurred while making a change to a data block
Cause: An internal error or memory exception occurred while Oracle was applying redo to a data block.
Action: call Oracle Support



參考了網上的一些資料,通過以下操作解決ORA-00600和ORA-00607錯誤:

Ora-00600解決步驟--代碼  

sqlglot支持的python版本_加載

1. sqlplus /nolog  
2. conn / as sysdba;  
3. #查看undo的表空間管理方式應該是auto  
4. show parameter undo;  
5. #修改undo的表空間管理方式為manual  
6. alter system set undo_management=manual scope=spfile;  
7. shutdown immediate;  
8. startup;  
9. #創建undo臨時表空間  
10. create undo tablespace undo2 datafile '/opt/oradata/tgt/undo2.dbf' size 200M;  
11. #修改undo表空間為undo2  
12. alter system set undo_tablespace=undo2 scope=spfile;  
13. #將undo表空間管理模式修改為auto  
14. alter system set undo_management=auto scope=spfile;  
15. shutdown immediate;  
16. startup;  
17.   
18. 執行完以上操作後為發現ORA-00600錯誤,説明重建表空間問題解決,接下來將undo表空間改回undotbs1  
19.   
20. drop tablespace undotbs1 including contents and datafiles;  
21. create undo tablespace undotbs1 datafile '/opt/oradata/tgt/undotbs1.dbf' size 500M;  
22. alter system set undo_management=manual scope=spfile;  
23. shutdown immediate;  
24. startup;  
25. alter system set undo_tablespace=undotbs1 scope=spfile;  
26. alter system set undo_management=auto scope=spfile;  
27. shutdown immediate;  
28. startup;  
29. #刪除剛剛臨時重建的undo2表空間  
30. drop tablespace undo2 including contents and datafiles;


Ora-00607解決步驟--代碼  

sqlglot支持的python版本_加載

1. 大致確定是由於塊當中存在邏輯訛誤導致的這個錯誤  
2. {當Oracle進程在讀取數據塊時會做一系列邏輯檢測,當發現塊當中存在邏輯訛誤就會觸發該ORA-00600 [kddummy_blkchk]等內部錯誤;[kddummy_blkchk]內部函數  
3. 的功能大致與[kdBlkCheckError]相仿,它們都有3個參數argument:  
4. ORA-600 [kddummy_blkchk] [file#] [block#] [check code]  
5. ORA-600 [kdBlkCheckError]   [file#] [block#] [check code]  
6. file#即問題塊所在datafile的文件號,block#即問題塊的塊號,check code為發現邏輯訛誤時的檢測種類代碼  
7. }  
8. 我們也可以通過file#和block#查找到存在問題的對象:譬如這個case中的file#為121,block#為2275853,檢查種類代碼為18021:  
9.   
10. SELECT tablespace_name,segment_type,owner,segment_name  
11. FROM dba_extents  
12. 8  
13. AND 565129 between block_id AND block_id+blocks-1;  
14.   
15. 查詢結果如:  
16. TABLESPACE_NAME                SEGMENT_TYPE       OWNER     SEGMENT_NAME  
17. ------------------------------ ------------------ ------------------------------  
18. DATA01                         TABLE              USER1     TABLE1  
19.   
20. 該查詢結果中的表需要重建,問題解決。


參考資料:
http://blog.sina.com.cn/s/blog_487f7b730100ovoh.html http://blog.chinaunix.net/uid-23249684-id-3208290.html