node quota should greater than 1

【产品名称】

oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm

【产品版本】

oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm

【问题描述】

数据库初始化失败,报错日志如下:

[2022-03-23 19:47:00.710020] ERROR [SERVER.OMT] init (ob_multi_tenant.cpp:184) [8134][0][Y0-0000000000000000] [lt=13] [dc=0] node quota should greater than 1(node_quota_=0.000000000000000000e+00, ret=-4002) BACKTRACE:0x97b78ce 0x970a211 0x2225fdf 0x2225c2b 0x22259f2 0x49db856 0x906c8e4 0x9142015 0x91371ae 0x21e7705 0x2ae22f868555 0x21e63e9

[2022-03-23 19:47:00.710109] ERROR [SERVER] init_multi_tenant (ob_server.cpp:1186) [8134][0][Y0-0000000000000000] [lt=88] [dc=0] init multi tenant fail(ret=-4002) BACKTRACE:0x97b78ce 0x970a211 0x21eb0b4 0x21eab9b 0x21ea901 0x21e9598 0x9142f32 0x91371ae 0x21e7705 0x2ae22f868555 0x21e63e9

[2022-03-23 19:47:00.710177] ERROR [SERVER] init (ob_server.cpp:314) [8134][0][Y0-0000000000000000] [lt=63] [dc=0] init multi tenant fail(ret=-4002) BACKTRACE:0x97b78ce 0x970a211 0x21eb0b4 0x21eab9b 0x21ea901 0x21e9598 0x9139137 0x21e7705 0x2ae22f868555 0x21e63e9

请问这个错误:node quota should greater than 1 是什么原因导致的?

addr2line -pCfe observer_bin  0x97b78ce 0x970a211 0x2225fdf 0x2225c2b 0x22259f2 0x49db856 0x906c8e4 0x9142015 0x91371ae 0x21e7705 0x2ae22f868555 0x21e63e9

把observer_bin 换成你的observer二进制文件路径,看看栈信息啊。


[admin@observer3 oceanbase]$ addr2line -pCfe bin/observer 0x97b78ce 0x970a211 0x2225fdf 0x2225c2b 0x22259f2 0x49db856 0x906c8e4 0x9142015 0x91371ae 0x21e7705 0x2aab190cc555 0x21e63e9

oceanbase::common::lbt() at ??:?

oceanbase::common::ObLogger::check_error_log(oceanbase::common::ObPLogItem&) at ??:?

oceanbase::common::ObLogger::log_message_kv(char const*, int, char const*, int, char const*, unsigned long, char const*, char const*, char const*)::{lambda(oceanbase::common::ObPLogItem*)#1}::operator()(oceanbase::common::ObPLogItem*) const at ??:?

void oceanbase::common::ObLogger::do_async_log_message<oceanbase::common::ObLogger::log_message_kv(char const*, int, char const*, int, char const*, unsigned long, char const*, char const*, char const*)::{lambda(oceanbase::common::ObPLogItem*)#1}>(char const*, int, char const*, int, char const*, unsigned long, oceanbase::common::ObLogger::log_message_kv(char const*, int, char const*, int, char const*, unsigned long, char const*, char const*, char const*)::{lambda(oceanbase::common::ObPLogItem*)#1}&) at ??:?

oceanbase::common::ObLogger::log_message_kv(char const*, int, char const*, int, char const*, unsigned long, char const*, char const*, char const*) at ??:?

void oceanbase::common::OB_PRINT<double, int>(char const*, int, char const*, int, char const*, unsigned long, char const*, char const*, double const&, char const*, int const&) at ??:?

oceanbase::omt::ObMultiTenant::init(oceanbase::common::ObAddr, double, long, oceanbase::common::ObMySQLProxy*) at ??:?

oceanbase::observer::ObServer::init_multi_tenant() at ??:?

oceanbase::observer::ObServer::init(oceanbase::observer::ObServerOptions const&, oceanbase::common::ObPLogWriterCfg const&) at ??:?

main at ??:?

?? ??:0

_start at ??:?

看不太懂,可否帮忙看一下


今天还是得麻烦各位社区的专家帮忙看看,问题还是没有解决。

手工部署的命令如下:

[admin@observer3 ~]$ cd ~/oceanbase && bin/observer -i eth0 -p 2881 -P 2882 -z zone3 -d ~/oceanbase/store/obdemo -r '10.211.55.55:2882:2881;10.211.55.56:2882:2881;10.211.55.57:2882:2881' -c 20210912 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=2,net_thread_count=4,datafile_size=10G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2" -d ~/oceanbase/store/obdemo

先将OB手动部署目录下清空一遍,再调整cpu_count=8或者16 重新执行一下。

上面的问题已经解决 @和顺 老师给的解决方案是提高 cpu_count=2 为 cpu_count=8。

在observer.log里搜索一下:

1、grep  -i "alter system bootstrap" observer.log*

2、找到第6个字段的线程号 比如是[1234],在过滤后发出来看看。

日志格式字段可以参考https://open.oceanbase.com/docs/observer-cn/V3.1.1/10000000000013236

grep -F "[1234]" observer.log