记一次rac数据库服务器重启后crsctl命令调用出错的问题

问题描述:

在一次重启RAC数据库服务器之后,使用crsctl命令查询各资源与服务的状态,发现调用出错,还以为 是集群软件出了问题,结果用crs_stat -t 命令发现各资源状态都是正常的。

 

 

查找了几个小时未果,最后终于确定前面在调试一个监听起不来的问题时,增加了环境变量LDR_CNTRL=SHARED_SYMTAB=Y

因为是听别的大神说的,要加这个变量,也不太明白这个变量代表的是什么,这次出问题,查了一下一个这个变量

https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/performance/misc_tun_params.html

IBM的官方文档

 

The LDR_CNTRL environment variable can be used to control one or more aspects of the system loader behavior. You can specify multiple options with the LDR_CNTRL variable. When specifying the option, separate the options with the '@' sign. An example of specifying multiple options is: LDR_CNTRL=PREREAD_SHLIB@LOADPUBLIC.

Specifying the SHARED_SYMTAB=Y option causes the system to create a shared symbol table for a 64-bit program, if the program exports any symbols. If multiple instances of the program run concurrently, using a shared symbol table can reduce the amount of system memory that is required by the program.

 

Specifying the SHARED_SYMTAB=N option prevents the system from creating a shared symbol table for a 64-bit program. This option overrides the AOUT_SHR_SYMTAB flag in the XCOFF auxiliary header.

LDR_CNTRL=SHARED_SYMTAB=Y这个设置会使系统创建共享symbol

很显然我的报错信息里提示 crsctl.bin调用时,某些symbol is not exported, 所以才会报错。

注释掉环境变量就没有问题了。

这提示我不懂的事情一定要搞明白,一定不能只是按照别人教的来弄,还是要每做一步操作都要十分清楚明白。

 

最后搞清楚了一点,crsctl 只是一个运维工具,跟集群的正常启动没有关系。

posted on 2020-11-30 14:02  JennyYu  阅读(387)  评论(0)    收藏  举报