问题描述:
某项目根据OB原厂的建议优化参数后,observer停止后无法再次启动,observer.log报错如下:
[2022-03-30 12:19:56.536075] WARN [RPC.OBRPC] init (ob_rpc_proxy.cpp:55) [55268][0][Y0-0000000000000000] [lt=3] [dc=0] invalid argument(ret=-4002, transport=NULL)[2022-03-30 12:19:56.536082] WARN [RPC] init (ob_batch_rpc.h:461) [55268][0][Y0-0000000000000000] [lt=6] [dc=0] hp_rpc init failed(ret=-4002)[2022-03-30 12:19:56.536089] WARN [SERVER] init_network (ob_server.cpp:1191) [55268][0][Y0-0000000000000000] [lt=6] [dc=0] init batch rpc failed(ret=-4002)[2022-03-30 12:19:56.536095] ERROR [SERVER] init (ob_server.cpp:222) [55268][0][Y0-0000000000000000] [lt=5] [dc=0] init network fail(ret=-4002) BACKTRACE:0x9f9b43a 0x2bbfb82 0x2c6d818 0x2c6e012 0x2c6f37a 0x6f28e07 0x2c7690e 0x7f0171732555 0x2c6a9ed
问题排查
经过建单给OB原厂,原厂排查参数时发现high_priority_net_thread_count为2
sys租户查:
select * from __all_virtual_sys_parameter_stat where name like '%high_priority_net_thread_count%';
查出来是0,但是配置文件中为2
cd /home/admin/oceanbase/etc
启动时加上
su - admin
cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -o "high_priority_net_thread_count=0"
就可以成功启动observer
但是其他两个节点的配置文件还是2,执行
ALTER SYSTEM SET high_priority_net_thread_count = 0;
就将配置文件更新成0了
问题复盘
此参数是OB提供的优化文档中建议设为2的
https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000365420
设为0表示关闭
也有可能是OB版本为3.1,版本太老,对此参数的支持粒度不够
总之,ob内部有很多参数我们无法得知会有何种影响,而ob也没有像mos那种提供workaround和解释的网站,暂时只能依靠提单给原厂,这也是国产数据库让人望而却步的原因之一。