标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,771)
- DB2 (22)
- MySQL (77)
- Oracle (1,612)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (593)
- Oracle安装升级 (98)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- 一次非常幸运的ORA-600 16703(tab$被清空)故障恢复
- Oracle 19c 202507补丁(RUs+OJVM)-19.28
- 2025年的Oracle 8.0.5数据库恢复
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
分类目录归档:Oracle
执行计划中常见index访问方式
近期有朋友对于单个表上的index各种情况比较模糊,这里对于单个表上,单个index出现的大多数情况进行了总结性测试,给出了测试结果,至于为什么出现这样的试验结果未做过多解释,给读者留下思考的空间.本篇文章仅仅是为了测试hint对index的影响,而不是说明走各种index方式的好坏.参考: INDEX FULL SCAN vs INDEX FAST FULL SCAN
创建表模拟测试
SQL> create table t_xifenfei as select object_id,object_name from dba_objects; Table created. SQL> create index i_t_object_id on t_xifenfei(object_id); Index created. SQL> exec dbms_stats.gather_table_stats(USER,'T_XIFENFEI',cascade=>true); PL/SQL procedure successfully completed. SQL> desc t_xifenfei Name Null? Type ----------------------------------------- -------- ---------------------------- OBJECT_ID NUMBER OBJECT_NAME VARCHAR2(128)
TABLE ACCESS FULL
SQL> SET AUTOT TRACE EXP STAT SQL> SELECT OBJECT_ID FROM T_XIFENFEI; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 548923532 -------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 57 (2)| 00:00:01 | | 1 | TABLE ACCESS FULL| T_XIFENFEI | 49838 | 243K| 57 (2)| 00:00:01 | -------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3544 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed SQL> SELECT /*+ INDEX(T i_t_object_id) */ OBJECT_ID FROM T_XIFENFEI; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 548923532 -------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 57 (2)| 00:00:01 | | 1 | TABLE ACCESS FULL| T_XIFENFEI | 49838 | 243K| 57 (2)| 00:00:01 | -------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3544 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed
从上面的执行计划中可知,此时走了全表扫描. 由于我们需要查询的列为object_id,因此理论上只需要读取索引就应该可以返回所有数据,而此时为什么是全表扫描呢? 这是因为NULL值与索引的特性所决定的.即null值不会被存储到B树索引.因此应该为表 t_xifenfei 的列 object_id 添加 not null 约束.
INDEX FAST FULL SCAN
SQL> alter table t_xifenfei modify(object_id not null); Table altered. SQL> SELECT object_id from t_xifenfei; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2036340805 -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 27 (4)| 00:00:01 | | 1 | INDEX FAST FULL SCAN| I_T_OBJECT_ID | 49838 | 243K| 27 (4)| 00:00:01 | -------------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3432 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed
INDEX FAST FULL SCAN:当在高速缓存中没有找到所需的索引块时,则根据db_file_multiblock_read_count的值进行多块读操作.对于索引的分支结构只是简单的获取,然后扫描所有的叶结点.其结果是导致索引结构没有访问,获取的数据没有根据索引键的顺序排序.INDEX FAST FULL SCAN使用multiblock_read,故产生db file scattered reads 事件.
INDEX RANGE SCAN
SQL> select object_id from t_xifenfei where object_id<10; 8 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2197008162 ---------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 10 | 2 (0)| 00:00:01 | |* 1 | INDEX RANGE SCAN| I_T_OBJECT_ID | 2 | 10 | 2 (0)| 00:00:01 | ---------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("OBJECT_ID"<10) Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3 consistent gets 0 physical reads 0 redo size 499 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 8 rows processed SQL> select /*+ index_ffs(t i_t_object_id) */ object_id from t_xifenfei t where object_id<10; 8 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2036340805 -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 10 | 27 (4)| 00:00:01 | |* 1 | INDEX FAST FULL SCAN| I_T_OBJECT_ID | 2 | 10 | 27 (4)| 00:00:01 | -------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter("OBJECT_ID"<10) Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 118 consistent gets 0 physical reads 0 redo size 499 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 8 rows processed 1 这里可以看出index_ffs已经生效,但是对于这样的情况hint index_ffs效率一般来说不会太高. <br> <strong>INDEX FULL SCAN</strong> 1 SQL> SELECT /*+ INDEX(T i_t_object_id) */ object_id from t_xifenfei t; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 431110666 ---------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 113 (2)| 00:00:02 | | 1 | INDEX FULL SCAN | I_T_OBJECT_ID | 49838 | 243K| 113 (2)| 00:00:02 | ---------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3426 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed
INDEX FULL SCAN:完全按照索引存储的顺序依次访问整个索引树.当访问到叶结点之后,按照双向链表方式读取相连节点的值.换言之,对于索引上所有的数据是按照有序的方式来读取的.如果索引块没有在高速缓存中被找到时,则需要从数据文件中单块进行读取.对于需要读取大量数据的全索引扫描而言,这将使其变得低效.INDEX FULL SCAN使用single read,故产生db file sequential reads事件.新版的Oracle支持db file parallel reads方式.
HINT INDEX不会使用INDEX FAST FULL SCAN功能.
INDEX列ORDER BY
SQL> SELECT OBJECT_ID FROM T_XIFENFEI order by object_id ; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 431110666 ---------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 113 (2)| 00:00:02 | | 1 | INDEX FULL SCAN | I_T_OBJECT_ID | 49838 | 243K| 113 (2)| 00:00:02 | ---------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3426 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed SQL> SELECT OBJECT_ID FROM T_XIFENFEI order by object_id desc; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2808014233 -------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| 113 (2)| 00:00:02 | | 1 | INDEX FULL SCAN DESCENDING| I_T_OBJECT_ID | 49838 | 243K| 113 (2)| 00:00:02 | -------------------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 3427 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 49838 rows processed SQL> SELECT /*+ index_ffs(t i_t_object_id) */ object_id from t_xifenfei t order by object_id; 49838 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 2527678987 ----------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | ----------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 49838 | 243K| | 185 (4)| 00:00:03 | | 1 | SORT ORDER BY | | 49838 | 243K| 1192K| 185 (4)| 00:00:03 | | 2 | INDEX FAST FULL SCAN| I_T_OBJECT_ID | 49838 | 243K| | 27 (4)| 00:00:01 | ----------------------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 117 consistent gets 0 physical reads 0 redo size 721203 bytes sent via SQL*Net to client 36927 bytes received via SQL*Net from client 3324 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 49838 rows processed
对于index 列排序,默认情况下会使用INDEX FULL SCAN/INDEX FULL SCAN DESCENDING而不选择使用INDEX FAST FULL SCAN,因为INDEX FAST FULL SCAN获得数据后,还需要做一次SORT ORDER BY操作
INDEX FAST FULL SCAN+SORT AGGREGATE
SQL> SELECT count(object_id) FROM T_XIFENFEI; Execution Plan ---------------------------------------------------------- Plan hash value: 3095383276 ------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Cost (%CPU)| Time | ------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 27 (4)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | | | | 2 | INDEX FAST FULL SCAN| I_T_OBJECT_ID | 49838 | 27 (4)| 00:00:01 | ------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 117 consistent gets 0 physical reads 0 redo size 421 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL> SELECT /*+ INDEX(T i_t_object_id) */ count(object_id) FROM T_XIFENFEI t; Execution Plan ---------------------------------------------------------- Plan hash value: 3079973526 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 113 (2)| 00:00:02 | | 1 | SORT AGGREGATE | | 1 | | | | 2 | INDEX FULL SCAN| I_T_OBJECT_ID | 49838 | 113 (2)| 00:00:02 | -------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 111 consistent gets 0 physical reads 0 redo size 421 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed
sort aggregate通常发生在使用一些聚合函数的时候,sum(),avg(),min(),max(),count()等等,实际上sort aggregate不做真正的sort,并不会用到排序空间,而是通过一个全局变量+全表或全索引扫描来实现.这样的操作在默认情况下使用INDEX FAST FULL SCAN
INDEX FULL SCAN (MIN/MAX)
SQL> SELECT max(object_id) FROM T_XIFENFEI; Execution Plan ---------------------------------------------------------- Plan hash value: 2939893782 -------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 5 | 2 (0)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | 5 | | | | 2 | INDEX FULL SCAN (MIN/MAX)| I_T_OBJECT_ID | 49838 | 243K| 2 (0)| 00:00:01 | -------------------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 2 consistent gets 0 physical reads 0 redo size 419 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed SQL> SELECT /*+ index_ffs(t i_t_object_id) */ max(object_id) FROM T_XIFENFEI t; Execution Plan ---------------------------------------------------------- Plan hash value: 2939893782 -------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 5 | 27 (4)| 00:00:01 | | 1 | SORT AGGREGATE | | 1 | 5 | | | | 2 | INDEX FULL SCAN (MIN/MAX)| I_T_OBJECT_ID | 49838 | 243K| 27 (4)| 00:00:01 | -------------------------------------------------------------------------------------------- Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 2 consistent gets 0 physical reads 0 redo size 419 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows processed
对于这样的查询INDEX FULL SCAN (MIN/MAX)明显是最优,但是此处奇怪的是使用了index_ffs提示无效,如果有知道的朋友,麻烦告知原因.
发表在 Oracle
评论关闭
ORA-00600[KSSADP1]
检查数据库发现ORA-00600[KSSADP1]错误
Thu Apr 19 21:16:45 2012 Errors in file /oracle9/app/admin/crm/udump/crm1_ora_442896.trc: ORA-00600: internal error code, arguments: [KSSADP1], [], [], [], [], [], [], [] Thu Apr 19 21:16:45 2012 Errors in file /oracle9/app/admin/crm/udump/crm1_ora_442896.trc: ORA-00600: internal error code, arguments: [KSSADP1], [], [], [], [], [], [], [] Thu Apr 19 21:16:45 2012 Trace dumping is performing id=[cdmp_20120419211645] Thu Apr 19 21:16:46 2012 Errors in file /oracle9/app/admin/crm/udump/crm1_ora_442896.trc: ORA-00600: internal error code, arguments: [KSSADP1], [], [], [], [], [], [], [] Thu Apr 19 21:16:47 2012 Errors in file /oracle9/app/admin/crm/udump/crm1_ora_442896.trc: ORA-00600: internal error code, arguments: [KSSADP1], [], [], [], [], [], [], []
分析crm1_ora_442896.trc信息
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining options JServer Release 9.2.0.8.0 - Production ORACLE_HOME = /oracle9/app/product/9.2.0 System name: AIX Node name: zwq_crm1 Release: 3 Version: 5 Machine: 00C420B44C00 Instance name: crm1 Redo thread mounted by this instance: 1 Oracle process number: 2354 Unix process pid: 442896, image: oracle@zwq_crm1 (TNS V1-V3) *** SESSION ID:(927.39278) 2012-04-19 21:16:45.317 *** 2012-04-19 21:16:45.317 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [KSSADP1], [], [], [], [], [], [], [] ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedmp+0148 bl ksedst 1029746FC ? ksfdmp+0018 bl 01FD4014 kgerinv+00e8 bl _ptrgl kgesinv+0020 bl kgerinv 9001000A02B56F8 ? 9001000A02B9450 ? FFFFFFFFFFF8430 ? 000000458 ? 900000000CBAFA4 ? ksesin+005c bl kgesinv FFFFFFFFFFF88E0 ? 1101FAF78 ? 900000000C0ECC0 ? 000010000 ? 000000002 ? kssadpm_stage+00c4 bl ksesin 102973C84 ? 000000000 ? 00000001E ? 000000000 ? 000000069 ? 00000000C ? 000000000 ? 000000000 ? ksqgel+0138 bl kssadpm_stage 000000000 ? 000000000 ? 000000000 ? 000000000 ? kcftis+003c bl ksqgel 000000000 ? 4029C61E0 ? 000000002 ? 0FFFFC16C ? 102A7977C ? 000000000 ? 000000003 ? 002A36408 ? kcfhis+001c bl kcftis krbbcc+0238 bl kcfhis 11043B590 ? krbpgc+001c bl krbbcc ksmupg+0074 bl _ptrgl ksuded+00b8 bl ksmupg 102924988 ? 000000020 ? ksupucg+10ec bl ksuded 700000C376F5740 ? 000000000 ? 000000000 ? opiodr+0474 bl ksupucg 100000001 ? ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000CF90 ? 442442216B736800 ? FFFFFFFFFFFBF00 ? 1102E04BC ? 1102D7D20 ? 0000006A0 ? 1102D83C0 ? 0000006A0 ? opiino+0758 bl opitsk 000000000 ? 000000000 ? opiodr+08cc bl _ptrgl opidrv+032c bl opiodr 3C00000018 ? 4101FAF78 ? FFFFFFFFFFFF840 ? 0A000F350 ? sou2o+0028 bl opidrv 3C0C000000 ? 4A00E8B50 ? FFFFFFFFFFFF840 ? main+0138 bl 01FD3A28 __start+0098 bl main 000000000 ? 000000000 ? --------------------- Binary Stack Dump --------------------- Cursor Dump: ---------------------------------------- Cursor 1 (110360418): CURROW curiob: 110369b78 curflg: 46 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: select nvl(max(cpmid),0) from x$kcccp where cpsta = 2 child pin: 0, child lock: 700000d9b9c5bb8, parent lock: 700000d088e0fa0 xscflg: 1100024, parent handle: 70000031d588d88, xscfl2: 4040401 bhp size: 160/600 ---------------------------------------- Cursor 2 (110360468): CURBOUND curiob: 1103656f0 curflg: c7 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: SELECT SUBSTR(VERSION,1,INSTR(VERSION,'.') - 1 ) FROM V$INSTANCE child pin: 0, child lock: 700000d21e60930, parent lock: 700000327837ce0 xscflg: 141024, parent handle: 700000304e2f020, xscfl2: 4000401 bhp size: 160/600 ---------------------------------------- Cursor 3 (1103604b8): CURBOUND curiob: 1103b6aa8 curflg: c7 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: SELECT SUBSTR(VERSION,1 + INSTR(VERSION,'.',1,1) ,INSTR(VERSION,'.',1,2) - INSTR(VERSION,'.',1,1) - 1 ) FROM V$INSTANCE child pin: 0, child lock: 700000d5e382ee8, parent lock: 700000c93581d40 xscflg: 141024, parent handle: 700000d73daa1c0, xscfl2: 4000401 bhp size: 160/600 ---------------------------------------- Cursor 4 (110360508): CURBOUND curiob: 1103b66b8 curflg: c7 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: SELECT SUBSTR(VERSION,1 + INSTR(VERSION,'.',1,2) ,INSTR(VERSION,'.',1,3) - INSTR(VERSION,'.',1,2) - 1 ) FROM V$INSTANCE child pin: 0, child lock: 700000d16de7978, parent lock: 700000c44059d30 xscflg: 141024, parent handle: 700000259c4a700, xscfl2: 4000401 bhp size: 160/600 ---------------------------------------- Cursor 5 (110360558): CURBOUND curiob: 1103b3868 curflg: 46 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: SELECT SYSDATE FROM SYS.DUAL child pin: 0, child lock: 700000d589cea48, parent lock: 70000026b311fb0 xscflg: 100024, parent handle: 700000d2eaee328, xscfl2: 4600409 bhp size: 280/632 ---------------------------------------- Cursor 6 (1103605a8): CURBOUND curiob: 1103b3408 curflg: 46 curpar: 0 curusr: 0 curses 700000c376f5740 cursor name: SELECT TO_CHAR(SYSDATE,'YYYY','NLS_CALENDAR=Gregorian'),TO_CHAR(SYSDATE,'MM','NLS_CALENDAR=Gregorian'), TO_CHAR(SYSDATE,'DD','NLS_CALENDAR=Gregorian') FROM X$DUAL child pin: 0, child lock: 70000033f1753c8, parent lock: 700000db8c6dd18 xscflg: 100024, parent handle: 700000cbc6ad8b0, xscfl2: 4600409 bhp size: 160/600 End of cursor dump ksedmp: no current context area ----- Dump of the Fixed PGA -----
找到相关文档Note:262996.1,经过分析,产生错误的原因是由在本版本的数据库中SGA管理中存在的漏洞造成,但此错误没有对数据库的数据造成损坏及性能影响.
处理建议
1.当前版本ORACLE已经不再提供补丁支持,建议升级到高版本解决(有sr中介绍10.2中解决);
2.由于此报错并没有对数据库的数据及性能造成损坏及影响,可以忽此错误。
记录一次ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned解决
Data Guard主库出现如下错误
导致归档日志不同通过LOG_ARCHIVE_DEST_2传输到备库
Thu Apr 19 19:58:40 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 19:58:40 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 19:58:40 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 20:00:26 2012 ARC1: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3113) ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned PING[ARC1]: Error 3113 when pinging standby standby. Thu Apr 19 20:18:18 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 20:18:18 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 20:18:18 2012 Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6756.trc: Thu Apr 19 20:33:27 2012 ARC1: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3113) ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned [oracle@localhost ~]$ oerr ora 3113 03113, 00000, "end-of-file on communication channel" // *Cause: The connection between Client and Server process was broken. // *Action: There was a communication error that requires further investigation. // First, check for network problems and review the SQL*Net setup. // Also, look in the alert.log file for any errors. Finally, test to // see whether the server process is dead and whether a trace file // was generated at failure time. 提示连接错误
orcl_ora_6756.trc文件内容
这里没有得任何重要的有效信息
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1 System name: Linux Node name: fcdb1 Release: 2.6.18-194.el5 Version: #1 SMP Fri Apr 2 14:58:14 EDT 2010 Machine: x86_64 Instance name: orcl Redo thread mounted by this instance: 1 Oracle process number: 21 Unix process pid: 6756, image: oracle@fcdb1 (TNS V1-V3) *** 2012-04-19 19:51:32.033 *** ACTION NAME:(0000045 STARTED16) 2012-04-19 19:51:32.026 *** MODULE NAME:(backup incr datafile) 2012-04-19 19:51:32.026 *** SERVICE NAME:(SYS$USERS) 2012-04-19 19:51:32.026 *** SESSION ID:(1518.294) 2012-04-19 19:51:32.026 *** ACTION NAME:(0000062 STARTED68) 2012-04-19 19:58:40.083 *** MODULE NAME:(backup full datafile) 2012-04-19 19:58:40.083 *** 2012-04-19 19:58:40.083 *** ACTION NAME:(0000068 STARTED16) 2012-04-19 19:58:40.156 *** 2012-04-19 20:18:18.436 *** ACTION NAME:(0000118 STARTED16) 2012-04-19 20:18:18.436 *** MODULE NAME:(backup incr datafile) 2012-04-19 20:18:18.436
查看相关参数
SQL> show parameter archive; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string DG_CONFIG=(primary,standby) log_archive_dest_1 string LOCATION=/u01/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_RO LES) DB_UNIQUE_NAME=primary log_archive_dest_2 string SERVICE=standby LGWR ASYNC VAL ID_FOR=(ONLINE_LOGFILES,PRIMAR Y_ROLE) DB_UNIQUE_NAME=standby log_archive_dest_state_1 string ENABLE log_archive_dest_state_2 string ENABLE
测试TNS
[oracle@fcdb1 bdump]$ tnsping standby TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 19-APR-2012 20:47:51 Copyright (c) 1997, 2005, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.203)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) OK (0 msec) [oracle@fcdb1 bdump]$ sqlplus sys/oracle@standby as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 19 20:49:05 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options
问题原因分析
从log_archive_dest_2 参数上可以看出默认是配置lgwr进程传输日志,但是因为备库没有配置standby redo log,所以使得启动arch传输日志,然后出现该问题,因为在传输过程中出现异常,导致arch不能继续和备库建立连接。
解决方法
查看了很多资料,给出的解决方法都是重启主库或者备库解决,我想既然是ARCH建立连接的失败,那么重启log_archive_dest_state_2参数,让arch进程重启。
SQL> ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH; System altered. SQL> ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH; System altered. SQL> alter system switch logfile; System altered. --alert日志 Thu Apr 19 20:51:12 2012 ALTER SYSTEM SET log_archive_dest_state_2='DEFER' SCOPE=BOTH; Thu Apr 19 20:51:32 2012 ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH; LNS1 started with pid=35, OS id=7012 Thu Apr 19 20:51:47 2012 Thread 1 advanced to log sequence 2025 Current log# 2 seq# 2025 mem# 0: /u01/app/oracle/oradata/orcl/redo02.log Thu Apr 19 20:51:48 2012 ****************************************************************** LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2 ****************************************************************** Thu Apr 19 20:52:02 2012 Thread 1 advanced to log sequence 2026 Current log# 3 seq# 2026 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log Thread 1 cannot allocate new log, sequence 2027
这个时候,查看备库日志也已经传输过去,通过修改log_archive_dest_state_2解决
ARC1: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3113) ARC1: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
发表在 Oracle
评论关闭