记一次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 只是一个运维工具,跟集群的正常启动没有关系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?