Oracle12c R2注意事项: 大量crsctl.bin进程cpu使用率高,等待crs call completion
前不久遇到的一个问题,一套12.2的RAC环境, CPU使用率高,使用top可以看到有大量crsctl.bin进程导致, sys cpu占用了大部分, 如果从数据库内查看等待会伴随着wait event “crs call completion”, 有时还会级联堵塞出现wait event “library cache lock”。crs call completion是当db instance layer 通知 CRS daemon process。
在11G时有时会因为 bug 10019726, bug 12615394, bug 12767563 出现这样的情况, 但是在11.2.0.3 已修复, 但好像有12.1也遇到这种情况的案例。
对于12C r2 给这个问题可以尝试配置hidden parameter “_notify_crs”=false, 调过crs通知等待,理论该调整不会给数据库性能问题带来影响。但是调整这个参数还是有一定的影响需要了解,下面整理一下”_notify_crs” 参数相关注意事项。
_notify_crs解决的问题
除了上面描述的问题,还有一些情况的解决方案也是调整该参数
1, The issue is caused by internal, unpublished Bug 13483672 “ORA-7445 [strlen()+16] creating database dependencies for large number of disk groups” which causes a buffer overflow if the diskgroup dependencies of the database resource exceed a certain size.
The Bug 13483672 has been fixed in 11.2.0.3 PSU 3 and windows 11.2.0.3.7 patch bundle. Interim patch has also been provided for 11.2.0.2 on certain platforms.
solution:
set “_notify_crs”=FALSE in pfile or spfile, then restart the database
2, Grid Infrastructure home and rdbms home is running on 11.2.0.3.7. Database instance fail to start, with ORA-7445 [strstr()]
The failing process is gen0, and the current Wait Stack shows waiting for ‘CRS call completion’, The bug fix is included in 12.2.0.2, request/apply the patch if there’s an impact.
The workaround for successful startup of instance is by setting hidden parameter “_notify_crs”=false, which will prevent the database instance from notifying the CRS daemon process.
BUG 22999793 – ORA-07445 [__STRSTR_SSE42()+10] – SIMILAR TO BUG 17230892 THAT CT IS HITTING3, The instance fails to start with the following error on GEN0 process,ORA-07445: exception encountered: core dump [PC:0xFE04] [SIGSEGV] [ADDR:0x0] [PC:0xFE04] [Invalid permissions for mapped object] []
The instance is terminated then fails to start with GEN0 process returns PC:0xFE04 [ADDR:0x0] on DB Instance. (文档 ID 2184308.1)
调整_notify_crs参数带来的影响
1, Setting _notify_crs to false prevents the ASM instance from notifying the CRS daemon process when diskgroups are being mounted.The diskgroup creates successfully in ASM however it doesn’t reflect in the OCR (crsctl stat res -t).
2, When hidden parameter “_notify_crs” is set to FALSE, database does not use password file whose location is specified within database resource registered to CRS. As a result, connecting as sysdba fails with ORA-1017
When “_notify_crs” is set to FALSE, database does not use password file specified by database resource, but use default location, Create or copy password file at default location, $ORACLE_HOME/dbs/orapw<ORACLE_SID>
小结
当解决一下问题时,如调整隐藏参数,同时需要确认一下调整该参数带来的影响,如开始提到的12.2 中的问题,调整_nodify_crs=false可以临时解决该问题,还有上面提到的几个BUG也是修改参数可以解决,但是修改此参数会导致填加新ASM磁盘组后不会自动注册到CRS资源中。同时crs中注册的实例密码文件将不会再使用,而是使用默认的路径,可能影响sysdba登录。
对不起,这篇文章暂时关闭评论。