event “library cache: mutex X” caused by Long time dynamic sampling of large tables

一日数据库多个会话出现较长时间的等待, 等待event是”library cache: mutex X”, 关于这个等待事件以前在post记录过,发生在SQL的解析阶段,在申请libary cache的锁时产生的等待,当时是部分应用session 被一些监控会话堵塞,这些会话正在执行v$sql ,v$sqlarea的收集统计,同时又被一个应用UPDATE会话堵塞,该会话当前是ON CPU,且已经执行了有近2万秒,正在执行动态采样的SQL…

AIX 增加白名单(ipfilter)后导致的CRS启动失败(CRS-1612:Network communication xxx timeout )

本次故障是因为前期主机配置了白名单,安全扫描导致CRS 2节点crash, 在CRS自动重启中又因为白名单,网络通信异常,无法启动CRS进程。此时手动启动2节点甚至会导致1节点crash. 因为目前没有找到官方文档描述对123端口的描述…

Troubleshooting performance wait event ‘row cache lock’

Row Cache 或 Data Dictionary Cache 是共享池中的一个内存区域,用于保存数据字典信息以减少数据字典表的物理 I/O。行高速缓存锁主要用于序列化对数据字典的更改,当需要对数据字典高速缓存进行锁定时,将等待该锁,数据字典行上的锁称为row cache lock。等待此事件通常表示发生了某种形式的 DDL,或者可能是递归操作,例如存储管理和递增序列号。

Oracle Internal C functions (非官方)

anbob.com收集的一些ORACLE 数据库内部调用C函数,以后会一直更新下去,如果有不存在的可以提供发函数给我。 abort ==> No direct match action ==> No direct match adbdrv ==> alter database driver al ==> No direct match A ==> No direct match apadrv ==> SQL Access Path Analysis drive access path selection for a sql command assert ==> No direct match auddft ==> audit default function BackgroundThreadStart ==> No direct … Read more

Oracle Database 配置IPV6 (一)

Oracle 11.2中除了ORACLE RAC和Oracle Clusterware所有功能都支持IPV6, 还有也不支持ASM使用IPV6,支持IPV6和IPV4共存. 在ORACLE 12C中,Oracle支持IPV4和IPV6在同一个网络,同样也可以配置PLUBIC network(Public/vip)在IPV6和IPV4,但是确保同一集群中所有节点使用相同的IP协议。但12.1 时不支持WINDOWS和private newwork. 在12.2 版本中 ORACLE提供了完全的支持IPV6,包括WINDOWS平台,ASM, FAN, 所有平台中的ORACLE Clusterwarer的private network。

“Out of Range” 谓词越界 dbms_stats.copy_table_stats

BMS_STATS.COPY_TABLE_STATS存储过程通常用于大的分区表的统计信息复制,当增加一个新分区后,如果立即收集统计信息使用dbms_stats.gather_table_stats当前的数据又不能反应数据的真实分布,更容易因统计不准确出现错误的执行计划或out-of-range(越界)使CBO估算错误的Cardination, 所以可以使用dbms_stats.copy_table_stats直接复制上个分区的统计给新的分区

Troubleshooting Oracle wait event ‘buffer busy wait’

在许多情况下,数据块的Buffer busy waits是因为多个进程重复访问相同的块。例如,如果多个用户正在扫描同一个索引,则第一个会话会快速处理缓冲区缓存中已有的块。但是,当需要从磁盘读取某个块时,扫描同一索引的其他会话会赶上并也需要该块。因此,它们必须等待缓冲区缓存,因为另一个会话已在从磁盘读取该块。

Oracle 18.3 hidden undocumented parameter list

here is all of the Oracle 18c 18.3 on-premises hidden undocumented parameters: SQL> select n.ksppinm p_name, c.ksppstvl p_value 2 from sys.x$ksppi n, sys.x$ksppcv c 3 where n.indx=c.indx 4 and lower(n.ksppinm) like lower(‘\_%’) escape ‘\’; P_NAME P_VALUE ————————————————– ————————————————– _appqos_qt 10 _appqos_po_multiplier 1000 _appqos_cdb_setting 0 _ior_serialize_fault 0 _shutdown_completion_timeout_mins 60 _inject_startup_fault 0 _wait_outlier_detection_enable OFF _wait_outlier_event_names _wait_outlier_lambda_x1000 1500 … Read more

Troubleshoot DDL递归SQL触发的row cache lock deadlock(死锁)

两个同时启动的JOB, truncate 了不同的对象DDL, 递归触发了DDL trigger的审计操作,在insert DDL日志表时,遇到了回收站空间再利用,再次递归触发了drop table BIN$ purge, 又属于DDL操作, 并且申请的回收站对象的row cache enqueue时,在2个跨实例会话互相等待对方持有对象lock造成死锁

Oracle 12cR2 RAC新特性”fast index split wait” 引入gc index split transaction增长导致ora-4031

几日朋友有套数据库升级到oracle 12C r2后出现了ORA-4031, 是一套on Linux x86 64-bit 2节点的RAC数据库,Hard parse并不高,并且没有使用AMM, ASMM。SGA分配80G, shared pool固定在13Gb.”gc index split transaction”也是在持续增长,符合bug 27163928.

MariaDB学习系列(一): MariaDB TX 3.0

MariaDB已联合Alibaba, Google 和 Facebook等改进和整合新的特性服务于整个社区,意在提供替代传统数据库的解决方案 。

MariaDB上周推出了MariaDB TX 3版本, MariaDB TX有一系列组件组成,有MariaDB Server、 MariaDB Cluster、 MariaDB MaxScale、 MariaDB connectors 、MariaDB tools、 MariaDB services。

案例: checkpoint hang等待log file switch(checkpoint incomplete) 11.2.0.4 on Solaris OS 5.11

前段时间遇到的一个案例,朋友开始给我说是数据库连接数很高,让我帮分析一下。这是一套 11.2.0.4 2nodes RAC on Sun OS 5.11环境,大多数会话等待enq: sq – contention, log file switch (checkpoint incomplete) , checkpoint 无法完成…

预警:2019年ORACLE SCN 兼容性特性( Compatibility)自动改变的影响

Oracle MOS中新发布预警对于版本和对应版本的已安装PSU高于11.1.0.7.20,11.2.0.7.57(for Windows), 11.2.0.3.9,11.2.0.3.29 (for Windows), 11.2.0.3 BP22(for Exadata), 11.2.0.4,12.1.0.2 ,12.2.0.1 的Oracle 数据库, 将在2019年06月23日后自动调整SCN的增长速率为更大的上限,DBLINK 在不同数据库之间访问时会同步SCN, 为了避免不同SCN 上限数据库之间因SCN拒接访问,建议所有DBLINK访问的数据库升级为相同的SCN 兼容性。