标签云
asm 恢复 asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 2663 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)
- 操作系统 (100)
- 数据库 (1,597)
- DB2 (22)
- MySQL (70)
- Oracle (1,463)
- Data Guard (49)
- EXADATA (7)
- GoldenGate (21)
- ORA-xxxxx (158)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (13)
- ORACLE 21C (3)
- Oracle ASM (65)
- Oracle Bug (7)
- Oracle RAC (47)
- Oracle 安全 (6)
- Oracle 开发 (27)
- Oracle 监听 (27)
- Oracle备份恢复 (530)
- Oracle安装升级 (84)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (75)
- PostgreSQL (17)
- PostgreSQL恢复 (5)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (36)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (19)
-
最近发表
- Oracle 19c/21c最新patch信息-202404
- PostgreSQL恢复系列:pg_filedump批量处理
- PostgreSQL部分主要字典信息
- PostgreSQL恢复系列:pg_filedump恢复字典构造
- PostgreSQL 16 源码安装
- ORA-00742 ORA-00312 恢复
- 数据库open成功后报ORA-00353 ORA-00354错误引起的一系列问题(本质ntfs文件系统异常)
- ORA-600 ktsiseginfo1故障
- ORA-00600: internal error code, arguments: [16703], [1403], [4] 原因
- 最近遇到几起ORA-600 16703故障(tab$被清空),请引起重视
- ORA-600 2662快速恢复之Patch scn工具
- TNS-12518: TNS:listener could not hand off client connection
- ora.storage无法启动报ORA-12514故障处理
- 断电引起文件scn异常数据库恢复
- ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
- .[hudsonL@cock.li].mkp勒索加密数据库完美恢复
- 模拟带库实现rman远程备份
- 又一例:ORA-600 kclchkblk_4和2662故障
- Oracle误删除数据文件恢复
- Oracle 19C 备库DML重定向—DML Redirection
月归档:三月 2012
ASMM表空间强制终止DML操作导致ORA-600 [ktspfupdst-1]
发现错误ORA-00600 [ktspfupdst-1],trace关键内容如下
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: 389 Unix process pid: 1896900, image: oracle@zwq_crm1 (TNS V1-V3) ---------------------------------------------- *** 2012-03-31 02:50:48.509 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [ktspfupdst-1], [], [], [], [], [], [], [] ORA-00604: error occurred at recursive SQL level 1 ORA-01013: user requested cancel of current operation Current SQL statement for this session: INSERT INTO XIFENFEI SELECT * FROM T_XFF ----- 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 kgeasnmierr+004c bl kgerinv 000000001 ? 000000000 ? 000000005 ? 000000001 ? 000000001 ? ktspfupdst+0540 bl kgeasnmierr 110006308 ? 1103994E8 ? 102A9239C ? 000000000 ? 000000005 ? 000000010 ? 000000020 ? 000000006 ? ktspstchg+00e4 bl ktspfupdst 000000060 ? 300000004 ? FFFFFFFFFFF6E48 ? 50601CE000000ED ? 3B401B34C5D02F2A ? B92000004000020 ? kdoiur+062c bl ktspstchg 000000000 ? 700000C39D779E8 ? 000000000 ? kcoubk+00e4 bl _ptrgl ktundo+0988 bl kcoubk 1010CCD80 ? FFFFFFFFFFF76C0 ? 100ED51C0 ? FFFFFFFFFFF7150 ? 1101FAF78 ? 1102567C0 ? 700000C396A1300 ? 000000002 ? ktubko+03bc bl ktundo 1840DFB30 ? 3B401B3400000002 ? 000000000 ? 000000000 ? FFFFFFFFFFF85D8 ? 700000C80A1E880 ? 2FFFF8540 ? FFFFFFFFFFF8780 ? ktuabt+0638 bl ktubko DF000000DF ? FFFFFFFFFFF8690 ? 000000000 ? FFFFFFFFFFF85D8 ? 102973880 ? 700000C844FA418 ? ktcrab+02b4 bl ktuabt 700000C80A1E840 ? 200017CD8 ? ktcrsp+026c bl ktcrab 100F698E4 ? 000000001 ? ksures+0074 bl ktcrsp 700000C844FA448 ? opiexe+3380 bl 01FD4138 opiall0+102c bl opiexe 400000000 ? 110002A48 ? FFFFFFFFFFFA0A0 ? kpoal8+0a78 bl opiall0 5EFFFFBED4 ? 22103A43F8 ? FFFFFFFFFFFA5B8 ? 000000000 ? FFFFFFFFFFFA508 ? 1103A4B00 ? 6FF00000738 ? 24000000007FFF ? opiodr+08cc bl _ptrgl ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000CF90 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? opiino+0758 bl opitsk 000000000 ? 000000000 ? opiodr+08cc bl _ptrgl opidrv+032c bl opiodr 3C00000018 ? 4101FAF78 ? FFFFFFFFFFFF7B0 ? 0A000F350 ? sou2o+0028 bl opidrv 3C0C000000 ? 4A00E8B50 ? FFFFFFFFFFFF7B0 ? main+0138 bl 01FD3A28 __start+0098 bl main 000000000 ? 000000000 ? --------------------- Binary Stack Dump ---------------------
这里可以得到信息如下:
1)系统平台aix 5.3,数据库版本9.2.0.8 rac
2)这个错误可能和一个insert select操作,然后取消有关系
表空间管理方式
SQL> SELECT tablespace_name, SEGMENT_SPACE_MANAGEMENT from dba_tablespaces 2 where tablespace_name= 3 (select tablespace_name from dba_tables where table_name='XIFENFEI'); TABLESPACE_NAME SEGMEN ------------------------------ ------ CUSTSERV AUTO
查看MOS发现和[ID 388599.1]相符
错误原因:
1. An insert or update on a table causes the addition of a new extent and the operation is cancelled. 2. The segment uses Automatic Segment Space Management (ASSM). 3. The call stack in the associated trace file resembles: ktspfupdst ktspstchg kdoiur kcoubk ktundo ktubko ktuabt ktcrab ktcrsp
解决方法:
官方给出方案就是升级到新版本,不过可以采取一个比较折中的处理方案,先想办法导出或者备份该对象数据,然后trunate或者重建表和相关index操作,解决该问题
DB2入门操作之二
查看db2版本 db2 => select * from sysibm.sysversions 列出所有实例 [db2inst1@xifenfei ~]$ db2ilist db2inst1 列出当前实例 [db2inst1@xifenfei ~]$ db2 get instance The current database manager instance is: db2inst1 察看示例配置文件 [db2inst1@xifenfei ~]$ db2 get dbm cfg|more 察看数据库配置参数信息 [db2inst1@xifenfei ~]$ db2 get db cfg for TOOLSDB|more 列出所有表空间的详细信息 [db2inst1@xifenfei ~]$ db2 list tablespaces show detail|more 连接数据库 [db2inst1@xifenfei ~]$ db2 connect to TOOLSDB Database Connection Information Database server = DB2/LINUX 9.7.4 SQL authorization ID = DB2INST1 Local database alias = TOOLSDB sql操作数据库 [db2inst1@xifenfei ~]$ db2 "select * from t_xff" 查看端口号 [db2inst1@xifenfei ~]$ db2 get dbm cfg|grep SVCENAME 查看表结构 [db2inst1@xifenfei ~]$ db2 describe table t_xifenfei 查看某个表索引 [db2inst1@xifenfei ~]$ db2 describe indexes for table t_xff 显示当前活动数据库 [db2inst1@xifenfei ~]$ db2 list active databases 列出所有的系统表 [db2inst1@xifenfei ~]$ db2 list tables for system 列出表空间 [db2inst1@xifenfei ~]$ db2 list tablespaces 显示用户数据库的存取权限 [db2inst1@xifenfei ~]$ db2 GET AUTHORIZATIONS 检查 DB2 数据库管理程序配置 [db2inst1@xifenfei ~]$ db2 get dbm cfg
发表在 DB2
评论关闭
通过hash_value获取sql语句执行计划
当我们没有权限访问业务表,但是需要查看shared pool中部分sql语句的执行计划,原则上来说,查询v$sql_plan视图结合hash_value可以实现,但是因为这个是表格形式,看起来不太美观,和我们长看的执行计划有一定的出入,这里提供两个脚本,实现查看该种情况下的执行计划。
oracle 9i
[oracle@xifenfei ~]$ more get_plan.sql set pagesize 0 set linesize 150 set serveroutput on size 10000 col plan_table_output format a125 undefine hash_value set verify off feedback off var hash_value varchar2(20) begin :hash_value := '&hash_value'; end; / insert into plan_table (statement_id,timestamp,operation,options,object_node,object_owner,object_name, optimizer,search_columns,id,parent_id,position,cost,cardinality,bytes,other_tag, partition_start,partition_stop,partition_id,other,distribution, cpu_cost,io_cost,temp_space,access_predicates,filter_predicates ) select distinct hash_value,sysdate,operation,options,object_node,object_owner,object_name, optimizer,search_columns,id,parent_id,position,cost,cardinality,bytes,other_tag, partition_start,partition_stop,partition_id,other,distribution, cpu_cost,io_cost,temp_space,access_predicates,filter_predicates from v$sql_plan where hash_value = :hash_value / col piece noprint select distinct piece,sql_text from v$sqltext where hash_value = :hash_value order by piece / @?/rdbms/admin/utlxplp.sql set linesize 80 set verify on feedback on pagesize 1000
oracle 10g/11g
[oracle@xifenfei ~]$ more get_plan.sql set pagesize 0 set linesize 150 set serveroutput on size 10000 col plan_table_output format a125 undefine hash_value set verify off feedback off var hash_value varchar2(20) begin :hash_value := '&hash_value'; end; / insert into plan_table (statement_id,timestamp,operation,options,object_node,object_owner,object_name, optimizer,search_columns,id,parent_id,position,cost,cardinality,bytes,other_tag, partition_start,partition_stop,partition_id,other,distribution, cpu_cost,io_cost,temp_space,access_predicates,filter_predicates, plan_id,OBJECT_ALIAS,DEPTH,PROJECTION,TIME,QBLOCK_NAME ) select distinct hash_value,sysdate,operation,options,object_node,object_owner,object_name, optimizer,search_columns,id,parent_id,position,cost,cardinality,bytes,other_tag, partition_start,partition_stop,partition_id,other,distribution, cpu_cost,io_cost,temp_space,access_predicates,filter_predicates, :hash_value,OBJECT_ALIAS,DEPTH,PROJECTION,TIME,QBLOCK_NAME from v$sql_plan where hash_value = :hash_value / col piece noprint select distinct piece,sql_text from v$sqltext where hash_value = :hash_value order by piece / @?/rdbms/admin/utlxplp.sql set linesize 80 set verify on feedback on pagesize 1000
使用方法
SQL> SELECT hash_value FROM V$SQL WHERE SQL_TEXT 2 LIKE 'SELECT * FROM SYS.SMON_SCN_TIME'; HASH_VALUE ---------- 3019898357 SQL> @get_plan.sql Enter value for hash_value: 3019898357 SELECT * FROM SYS.SMON_SCN_TIME ----------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 3 (100)| | | 1 | TABLE ACCESS FULL| SMON_SCN_TIME | 1 | 1163 | 3 (0)| 00:00:01 | -----------------------------------------------------------------------------------
补充说明
其实9i和10g/11g中得出执行计划的出入就是在plan_table表上
在9i中:plan_table表需要通过脚本创建并且授权
SQL> connect / as sysdba; SQL> @?/rdbms/admin/utlxplan.sql; SQL> create public synonym plan_table for plan_table; --建立同义词 SQL> grant all on plan_table to public;--授权所有用户
在10g/11g中:plan_table表系统自带,不需要创建。因为plan_table表中含有plan_id列,而得出执行计划时该列不能为空,所以上面脚本中对于10/11g数据库必须要填充plan_id值
发表在 Oracle
评论关闭