Tag Archives: PURGE

DROP PARTITION为什么不进回收站

前几天在给公司的员工讲一个案例的提到这个问题。 其实当时提到了这个特点,DROP TABLE会进入回收站,但是DROP PARTITION并不会,因此DROP PARTITION之后,数据无法简单的回复,只能通过逻辑或物理备份的方式来进行数据的回复。 SQL> CREATE TABLE t_drop (id NUMBER); TABLE created. SQL> DROP TABLE t_drop; TABLE dropped. SQL> SELECT object_name, original_name FROM recyclebin; OBJECT_NAME ORIGINAL_NAME —————————— ——————————– BIN$xJhZqpmfWZXgRDzZK0pZWw==$0 T_DROP SQL> CREATE TABLE t_part_drop (id NUMBER) partition BY range … Continue reading

Posted in ORACLE | Tagged , , , , | Leave a comment

客户数据库出现大量cache buffer chains latch

客户产品数据库上午出现了严重的性能问题,简单记录一下问题的诊断和解决过程。 可以看到,数据库的DB TIME已经涨到了非常高的地步,这说明系统正经受着非常严重的性能问题: Snap Id Snap Time Sessions Cursors/Session Begin Snap: 7170 31-3月 -12 08:00:50 395 10.5 End Snap: 7172 31-3月 -12 09:00:27 689 11.7 Elapsed: 59.61 (mins) DB Time: 17,270.93 (mins)   从TOP 5看,等待事件中最明显的是latch: cache buffers chains,从当前系统的状态也可以看到这一点: SQL> SELECT … Continue reading

Posted in ORACLE | Tagged , , , | Leave a comment

将指定SQL的执行计划从共享池删除

如果Oracle的优化器产生了某种错误的执行计划,或者我们希望Oracle对于某个SQL重新进行分析,那么就需要这个SQL的执行计划在共享池中过期,而简单的方法在10.2.0.4以后才出现。 对于以前的版本而言,最显而易见的方法莫过于直接刷新共享池,但是如果是数据库中绝大部分的SQL都存在问题,那么这种方法无可厚非,也可能是见效最快的方法,而如果数据库中仅仅是个别的SQL存在问题,那么这种方法就过于暴力了。 SQL> SELECT COUNT(*) FROM dual; COUNT(*) ———- 1 SQL> SELECT sql_id, address, hash_value, executions, loads, parse_calls, invalidations 2 FROM v$sqlarea 3 WHERE sql_text = ‘select count(*) from dual’; SQL_ID ADDRESS HASH_VALUE EXECUTIONS LOADS PARSE_CALLS INVALIDATIONS ————- —————- ———- … Continue reading

Posted in ORACLE | Tagged , , , , , | 2 Comments

DDL触发器设置导致DDL无法执行(二)

公司测试数据库发现执行DDL报错。 继续描述问题的诊断和解决。 DDL触发器设置导致DDL无法执行(一):http://yangtingkun.itpub.net/post/468/526410 从对象定义是找不到问题的原因的,只能通过10046跟踪一下: SQL> ALTER SESSION SET EVENTS ‘10046 TRACE NAME CONTEXT FOREVER, LEVEL 12’; Session altered. SQL> CREATE TABLE T_CREATE (ID NUMBER); CREATE TABLE T_CREATE (ID NUMBER) * ERROR at line 1: ORA-00604: error occurred at recursive SQL … Continue reading

Posted in ORACLE | Tagged , , , | Leave a comment

DDL触发器设置导致DDL无法执行(一)

公司测试数据库发现执行DDL报错。 由于篇幅所限,这里简单描述一下问题产生的现象。 打算进行个测试,结果发现建表时报错: SQL> CREATE TABLE T_EXCHANGE (ID NUMBER, CREATED DATE, TYPE VARCHAR2(18)) 2 PARTITION BY RANGE (CREATED) SUBPARTITION BY LIST (TYPE) 3 (PARTITION P1 VALUES LESS THAN (TO_DATE(’2012-1′, ‘YYYY-MM’)) 4 (SUBPARTITION P1SP1 VALUES (’TABLE’), 5 SUBPARTITION P1SP2 VALUES (’INDEX’), … Continue reading

Posted in ORACLE | Tagged , , , , | Leave a comment