分析一则enq: HW – contention问题

同事在做压力测试的时候,说数据库很慢,于是登上数据库看了下,发现大量的enq: TX - row lock contention和enq: HW - contention事件。 %This SECONDS AAS WAIT_CHAIN ------ ---------- ---------- ------------------------------------------------------------------------------------------------------------------------------------------------ 18% 960 1.6 -> ON CPU 9% 470 .8 -> enq: TX - row lock contention -> ON CPU 8% 460 .8 -> enq: HW - contention -> ON CPU 8% 410 .7 -> enq: TX - row lock contention -> enq: HW - contention -> ON CPU 5% 260 .4 -> enq: TX - row lock contention -> enq: HW - contention -> enq: HW - contention 4% 220 .4 -> enq: HW - contention -> enq: HW - contention 4% 210 .4 -> enq: HW - contention -> enq: HW - contention -> ON CPU 3% 190……

阅读全文

12c新特性:信息生命周期管理

为了实现数据库中数据移动的信息生命周期管理,可以采用12c中引入的Heat Map和Automatic Data Optimization (ADO)特性。这两个特性是从12cR1中第一次引入,不过之前只能适用于NO-CDB环境,到了release 2版本中则可以适用多租户环境。 使用Heat Map Heat Map是Oracle Database 12c 中的一个特性,它可以在行级和段级自动跟踪表/分区的使用信息。在行级跟踪数据修改……

阅读全文

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below

在做一个rman异机恢复完成后,数据库无法打开,报错提示 Oracle Error: ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '+DG/xxx/datafile/system01.dbf' 用的源库一个rman 0级备份以及后来的部分归档日志,拷贝到这个测试环境,恢复完controlfile之后,进行了基于scn的recover,scn则是restore之后控制文件里显示的scn号 recover database until scn 75238614094; 尝试open时报错 16:54:07 sys. >alter database open resetlogs; alter database open resetlogs * ERROR at line 1:……

阅读全文

Oracle 11g 清理SYSAUX表空间

收到告警一个11g的库sysaux表空间不足,上去检查看到使用率达到了95%,所以接下来就说下如何处理这种情况。 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '%' "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大……

阅读全文

ORA-16086: standby database does not contain available standby log files

早上来检查告警邮件,一套10.2.0.5的dg主库一直在报ora-16086错误,根据错误提示大概是备库没有可用的standby log files。在11g以后,这个错误名称换成了ORA-16086 Redo data cannot be written to the standby redo log 16086, 0000, "standby database does not contain available standby log files" // *Cause: The primary database is in "no data loss" mode, but the standby // database does not contain any "standby log files". // *Action: Add one or more standby log files to the standby database. // This can be done while the standby database is mounted. 当前主备同步依旧正常,切换日志也……

阅读全文

工欲善其事必先利其器-sublime text 3

写这篇文章主要是为了分享日常工作中用到的好工具,可能以后会多写几篇,首推当然是必不可少的文本类工具 sublime text 3,而它也不仅仅是一个文本工具而已。 Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。相比于难于上手的Vim,浮肿沉重的Eclipse,VS,即便体积轻巧迅速启动的E……

阅读全文

Scripts: 查询2019年新个人所得税

昨天发工资已经试用了新的税改办法,主要采用全年的累计预扣预缴,理解起来比以往稍微复杂点,咋一看了半天还没搞懂,闲时写了个sql计算 SQL版本 with t as (select c_mon, sum_sal, case when sum_sal >= 36000 then (sum_sal * 0.03 - 0) when sum_sal >= 144000 then (sum_sal * 0.1 - 2520) when sum_sal >= 300000 then (sum_sal * 0.2 - 16920) when sum_sal >= 420000 then (sum_sal * 0.25 - 31920) when sum_sal >= 660000 then (sum_sal * 0.3 - 52920) when sum_sal >= 960000 then (sum_sal * 0.35 - 85920) else (sum_sal * 0.45 - 181920) end sum_tax from (select level c_mon, sum(&税前收入 - &五险一金 - &专项……

阅读全文

ORA-04031一例 ("shared pool","…","SQLA","tmp")

今天突然收到告警,一台11.2.0.4的数据库报错ORA-04031。 SYS@> show sga ORA-04031: 无法分配 32 字节的共享内存 ("shared pool","SELECT DECODE(null,'','Total...","SQLA","tmp") 根据错误代码可以判断是共享池使用出了问题 [oracle@xxx trace]$ oerr ora 4031 04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")" // *Cause: More shared memory is needed than was allocated in the shared // pool or Streams pool. // *Action: If the shared pool is out of memory, either use the // DBMS_SHARED_POOL package to pin large packages, // reduce your use of shared memory, or increase the amount of // available shared memory by increasing the value of the // initialization parameters SHARED_POOL_RESERVED_SIZE and // SHARED_POOL_SIZE. // If the large pool is out of memory, increase the initialization // parameter LARGE_POOL_SIZE. // If the error is issued from an……

阅读全文

12c在线操作数据文件

12c以前如果要移动或者rename一个datafile,必须要先将这个数据文件offline,虽然可以通过一些方法来减少offline的时间,但是无法完全避免。 如果数据库不是归档模式,甚至都无法offline sys@XB> archive log list; Database log mode No Archive Mode >>>>====非归档模式 Automatic archival Disabled Archive destination /u01/arch Oldest online log sequence 167 Current log sequence 169 sys@XB> alter database datafile 5 offline; alter database datafile 5 offline * ERROR at line 1: ORA-01145: offline immediate disallowed unless media recovery enabled 到……

阅读全文

MMON进程未自动重启导致awr未生成

问题现象 今天在生成一套rac的awr报告时,发现只有一号节点的数据,这是一套11.2.0.4的rac。 sys@TFDW1> select * from Dba_Hist_Snapshot where instance_number=2; 未选定行 查看mmon进程信息,发现二号节点并没有这个进程 [root@tfdw2 ~]# ps -ef|grep mmon grid 38361 1 0 Feb24 ? 01:30:51 asm_mmon_+ASM2 root 126466 126429 0 16:04 pts/1 00:00:00 grep mmon 而一号节点是正常的 [root@tfdw1 ~]# ps -ef|grep mmon grid 37050 1 0 Dec10 ? 00:03:04 asm_mmon_+ASM1 oracle 53834 1 0 Dec10 ? 00:12:44 ora_mmon_tfdw1 root 79038 42730 0 16:04 pts/0 00:00:00 grep mmon 要知道mmon进程属于可以被pmon respawned的进程之一,……

阅读全文