ORACLE_07445[_kill()+48][SIGIOT]錯誤_附巢狀表研究
Thu Jan 24 02:12:36 2008
Errors in file /opt/app/oracle/admin/gzgov/udump/gzgov1_ora_8417.trc:
ORA-07445: exception encountered: core dump [_kill()+48] [SIGIOT] [unknown code] [0x0000020E1] [] []
相應的trc檔案中,有一些資訊:
*** 2008-01-24 02:12:36.394
*** SESSION ID:(20.39311) 2008-01-24 02:12:36.355
Exception signal: 6 (SIGIOT), code: -1 (unknown code), addr: 0x20e1, exception issued by pid: 8417, uid: 200, PC: [0xc00000000031a89
0, _kill()+48]
r1: 9fffffffbf470128 r20: 0 br5: 0
r2: 0 r21: 0 br6: 0
r3: 0 r22: 0 br7: 0
r4: c00000006bad1598 r23: 0 ip: c00000000031a890
r5: 9fffffffffff669c r24: 0 iipa: 0
r6: e r25: 0 cfm: 2
r7: 9fffffffbf166590 r26: 0 um: 1a
r8: 25 r27: 0 rsc: 1f
r9: 2 r28: 0 bsp: 9fffffffbf800d50
r10: 20 r29: 0 bspstore: 9fffffffbf800d50
r11: c000000000000185 r30: 0 rnat: 0
r12: 9fffffffffff21b0 r31: 0 ccv: 0
r13: 9fffffffbf7ed420 NaTs: ffffc00c unat: 0
r14: 0 PRs: 29 fpsr: 9804c8277433f
r15: 0 br0: c00000000023f1d0 pfs: c000000000000002
r16: 0 br1: 4000000001205520 lc: 0
r17: 0 br2: 0 ec: 0
r18: 0 br3: 0 isr: 9fffffffbf800d50
r19: 0 br4: 0 ifa: 0
Reason code: 0000
*** 2008-01-24 02:12:36.421
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [_kill()+48] [SIGIOT] [unknown code] [0x0000020E1] [] []
Current SQL statement for this session:
SELECT /*+NESTED_TABLE_GET_REFS+*/ "GZGOVII"."GZGOV_NEWSCLICK".* FROM "GZGOVII"."GZGOV_NEWSCLICK"
………..
LIBRARY OBJECT LOCK: lock=c00000006d17d8a0 handle=c000000073a51cd0 mode=N
This is also consistent with seeing large amounts of queries with this hint, and that those queries are not reused. If this is a problem for you, try to export at another time of day. If the exports are really long-running or the system load is constant, try to find out what you are using exports for and suggest alternatives (eg. backup and recovery purposes, etc). If this is a DSS system, you probably have a smaller shared pool and use import/export heavily. If so, it might be a good idea to use a bigger shared pool when doing this activity.
. . exporting table GZGOV_MESSAGE 11789 rows exported . . exporting table GZGOV_NEWSCLICK EXP-00056: ORACLE error 3113 encountered ORA-03113: end-of-file on communication channel EXP-00056: ORACLE error 24324 encountered ORA-24324: service handle not initialized EXP-00056: ORACLE error 24324 encountered ORA-24324: service handle not initialized EXP-00056: ORACLE error 24324 encountered ORA-24324: service handle not initialized EXP-00056: ORACLE error 24324 encountered ORA-24324: service handle not initialized EXP-00000: Export terminated unsuccessfully ORA-24324: service handle not initialized EXP-00000: Export terminated unsuccessfully $
4)第一步結論
正式由於在執行exp的過程中,當開始匯出GZGOV_NEWSCLICK到一定時間後,資料庫就報了上面的07445的錯誤。
經過手工執行使用者的邏輯備份命令:
exp gzgovii/db110g file=`date +%Y%m%d`.dmp buffer=204800 compress=y grants=y indexes=yes constraints=yes log=exp.log &
確實發現GZGOV_NEWSCLICK到一定時間後,exp就異常退出了,且資料庫日誌裡報了以上的07445的錯誤。
5)巢狀表?
根據官方文件的說明,這個oracle自動加上的hints跟巢狀表有關,於是研究了一下巢狀表,過程如下:
(deptno NUMBER(2) PRIMARY KEY,
dname VARCHAR2(14),
loc VARCHAR2(13)
);
(empno NUMBER(4) PRIMARY KEY,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4) REFERENCES emp,
hiredate DATE,
sal NUMBER(7, 2),
comm NUMBER(7, 2),
deptno NUMBER(2) REFERENCES dept
);
INSERT INTO dept SELECT * FROM scott.dept;
INSERT INTO emp SELECT * FROM scott.emp;
commit;
AS OBJECT
(empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7, 2),
comm NUMBER(7, 2)
);
/
AS TABLE OF emp_type;
(deptno NUMBER(2) PRIMARY KEY,
dname VARCHAR2(14),
loc VARCHAR2(13),
emps emp_tab_type
)
NESTED TABLE emps STORE AS emps_nt;
UNIQUE(empno) ;
FOREIGN KEY(mgr) REFERENCES emps_nt(empno);
SELECT dept.*,
CAST( MULTISET( SELECT empno, ename, job, mgr, hiredate, sal, comm
FROM emp
WHERE emp.deptno = dept.deptno ) AS emp_tab_type )
FROM dept;
commit;
MULTISET用來告訴Oracle子查詢返回不止一行,CAST用來告訴Oracle將返回設定為一個集合型別。
FROM dept_and_emp d
WHERE deptno = 10;
TABLE( SELECT emps
FROM dept_and_emp
WHERE deptno = 10
)
SET comm = 100;
(SELECT emps FROM dept_and_emps WHERE deptno=10)
VALUES
(1234,'NewEmp','Clerk',7782,SYSDATE,1200,NULL);
(SELECT emps FROM dept_and_emps WHERE deptno=20)
WHERE ename='SCOTT';
NESTED_TABLE_ID, SYS_NC_ROWINFO$
FROM "EMPS_NT";
SET ename=INITCAP(ename);
查詢該表的定義:
-- Create table create table GZGOVII.GZGOV_NEWSCLICK ( CONTENT_ID NUMBER, CLICK_DATE DATE, CLICK_COUNT NUMBER ) tablespace FSDATA pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 200K minextents 1 maxextents unlimited );
這個表根本不是巢狀表,oracle為什麼會加上這個hint?呢,不得而知。
於是開始懷疑exp的引數有問題,因為這個表的記錄非常多,但buffer=204800似乎太小了,
所以修改命令,進行單獨對這個表匯出的測試:
$ exp gzgovii/db110g file=exptest.dmp buffer=4096000 tables=GZGOV_NEWSCLICK log=exptest.log feedback=5000
匯出過程中,監控v$session_longops:
SID TARGET MESSAGE START_TIME LAST_UPDATE_TIME
--- ------------------------ -------------------------------------------------------------------- ----------- ----------------
138 GZGOVII.GZGOV_NEWSCLICK Table Scan: GZGOVII.GZGOV_NEWSCLICK: 76410 out of 76410 Blocks done 2008-1-23 0 2008-1-23 2:26:2
138 GZGOVII.GZGOV_NEWSCLICK Table Scan: GZGOVII.GZGOV_NEWSCLICK: 73843 out of 77529 Blocks done 2008-1-29 1 2008-1-29 15:29:
發現當前正在的匯出的操作記錄還在,還有23號的匯出成功的記錄還在,23號後面的記錄都沒有了,說明都不正常執行完畢就退出了。
繼續監控匯出過程,最後又報錯:
Assertion failed: bd->seqno_skgxprbd == bid->seqno_skgxpbid, file skgxpu.c, line 2859
EXP-00056: ORACLE error 3113 encountered
ORA-03113: end-of-file on communication channel
EXP-00056: ORACLE error 24324 encountered
ORA-24324: service handle not initialized
EXP-00056: ORACLE error 24324 encountered
ORA-24324: service handle not initialized
EXP-00056: ORACLE error 24324 encountered
ORA-24324: service handle not initialized
EXP-00056: ORACLE error 24324 encountered
ORA-24324: service handle not initialized
EXP-00000: Export terminated unsuccessfully
$
此時v$session_ops顯示,其實已經快匯出完了:75943 out of 77529 Blocks done
同事分析,該表可能有不合法記錄,或者資料檔案有壞塊,於是檢查資料庫檔案:
$ dbv file=/dev/vgfsdata/rfsdata1 blocksize=8192
DBVERIFY: Release 9.2.0.6.0 - Production on Tue Jan 29 15:56:32 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = /dev/vgfsdata/rfsdata1
DBVERIFY - Verification complete
Total Pages Examined : 254720
Total Pages Processed (Data) : 76530
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 26362
Total Pages Failing (Index): 0
Total Pages Processed (Other): 177
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 151651
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 109856332 (0.109856332)
$ dbv file=/dev/vgfsdata/rfsdata2 blocksize=8192
DBVERIFY: Release 9.2.0.6.0 - Production on Tue Jan 29 16:00:43 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = /dev/vgfsdata/rfsdata2
DBVERIFY - Verification complete
Total Pages Examined : 254720
Total Pages Processed (Data) : 78363
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 28169
Total Pages Failing (Index): 0
Total Pages Processed (Other): 414
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 147774
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 109857157 (0.109857157)
$
可能是有不合法記錄,只能改天對錶做遊標一步一步的挪移了????
7)第二天,繼續檢查
發現該天的備份居然又成功了。
用bdf命令,發現exp的dump檔案所存目錄為nfs:
172.16.1.165:/data/gzgov_db_bak
85728728 66324200 15049712 82% /root/db_exp
登陸到172.16.1.165機器,發現該機器是linux,且用df -m命令程式會掛掉,並且檢視
chkconfig --list nfs,發現nfs服務顯示是關閉的(其實顯示不正常的)。
重啟了一下nfs服務
service nfs stop
service nfs start
最後建議使用者重啟該機器,使用者決定暫時不重啟,等適當時候重啟該nfs伺服器。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8861952/viewspace-1034694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle巢狀表Oracle巢狀
- Oracle 巢狀表Oracle巢狀
- Oracle 巢狀表(轉)Oracle巢狀
- 紅色警報--Oracle當機潮來臨,快快行動起來![ORA-7445 [__lwp_kill()+48] [SIGIOT]]Oracle
- oracle 巢狀表 索引表 使用Oracle巢狀索引
- PLSQL Language Referenc-巢狀表-巢狀表和陣列間的重要區別(正確地使用巢狀表)SQL巢狀陣列
- 巢狀表的測試(一)巢狀
- 巢狀表的測試(二)巢狀
- element-ui的----el-form表單校驗巢狀表單校驗(表單多層巢狀)+el-table和el-form巢狀使用表單校驗UIORM巢狀
- kill session遇到ORA-00031錯誤Session
- 巢狀表段的等同分割槽巢狀
- iOS Cell巢狀UIWebView(內附UIWebView詳解)iOS巢狀UIWebView
- vue elementUI 表單校驗(多層巢狀)VueUI巢狀
- less巢狀巢狀
- Datalist巢狀巢狀
- 巢狀表在表定義中的使用:一個例子巢狀
- http 錯誤表HTTP
- 兩表連線一:巢狀迴圈連線巢狀
- 巢狀評論的資料庫表設計巢狀資料庫
- 集合框架-集合的巢狀遍歷(HashMap巢狀HashMap)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(HashMap巢狀ArrayList)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(ArrayList巢狀HashMap)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(多層巢狀)框架巢狀
- 【react】實現動態表單中巢狀動態表單React巢狀
- vue路由巢狀Vue路由巢狀
- angular 巢狀路由Angular巢狀路由
- 迴圈_巢狀巢狀
- 集合的巢狀巢狀
- 盒子的巢狀巢狀
- 列表巢狀操作巢狀
- Oracle中Kill session的研究OracleSession
- 評論表設計 - 路徑列舉、巢狀集、閉包表巢狀
- 語法糾錯的研究現狀
- Go巢狀併發實現EDM,附坑點分析#1Go巢狀
- Locust 任務巢狀巢狀
- 巢狀子查詢巢狀
- vue(19)巢狀路由Vue巢狀路由
- SCSS 巢狀屬性CSS巢狀