在重启 OBServer 时,正确修改相关配置项是保证服务顺利启动和稳定运行的关键。不当的配置修改方式可能导致 OBServer 无法重启。
正确的配置项修改方式
在重启 OBServer 时,使用正确的命令格式修改配置项:
/home/admin/oceanbase/bin/observer -l 日志打印等级 -o 参数=值,参数=值
注意
- 多个配置项:多个配置项之间用英文逗号 , 分割,切勿加入空格或其他字符。
- 避免文本编辑器修改:不要直接通过文本编辑器(如 vim)修改
/home/admin/oceanbase/etc/observer.config.bin,这会导致 OBServer 无法正确启动。
正确格式示例:
推荐的标准示例:
/home/admin/oceanbase/bin/observer -l INFO -o memory_limit=16G,net_thread_count=4其他写法 (不推荐使用)
/home/admin/oceanbase/bin/observer -l INFO -o memory_limit='16G',net_thread_count='4' /home/admin/oceanbase/bin/observer -l INFO -o memory_limit="16G",net_thread_count="4"
问题格式
OBServer 无法重启
两层引号导致参数值识别失败
错误命令:
/home/admin/oceanbase/bin/observer -l INFO -o "syslog_io_bandwidth_limit='40M',role_change_timeout='15s'"日志报错:
WARN [SHARE] add_extra_config (ob_common_config.cpp:99) [65480][0][Y0-0000000000000000] [lt=34] Invalid config value(name="syslog_io_bandwidth_limit", value="'40M'", ret=-4147) ERROR [SERVER] init_config (ob_server.cpp:845) [80546][0][Y0-0000000000000000] [lt=7] invalid config from cmdline options(opts_.optstr_="syslog_io_bandwidth_limit='40M',role_change_timeout='15s'", ret=-4147)参数值格式错误导致参数值识别失败
错误命令示例:
/home/admin/oceanbase/bin/observer -o syslog_io_bandwidth_limit=40l,role_change_timeout=15s日志报错:
WARN [SHARE] add_extra_config (ob_common_config.cpp:99) [127433][0][Y0-0000000000000000] [lt=53] Invalid config value(name="syslog_io_bandwidth_limit", value="40l", ret=-4147) ERROR [SERVER] init_config (ob_server.cpp:845) [127433][0][Y0-0000000000000000] [lt=7] invalid config from cmdline options(opts_.optstr_="syslog_io_bandwidth_limit=40l,role_change_timeout=15s", ret=-4147)
OBServer 可以重启
参数间含有特殊字符(空格,'\r','\n','\t' 等)。
命令示例:
/home/admin/oceanbase/bin/observer -o syslog_io_bandwidth_limit=44M ,datafile_size=44G ### ,前含有空格**结果:**忽略特殊字符后的参数,成功设置特殊字符前的参数并重启。此命令等效于
/home/admin/oceanbase/bin/observer -o syslog_io_bandwidth_limit=44M不同参数间含有其他普通字符。
命令示例:
/home/admin/oceanbase/bin/observer -o syslog_io_bandwidth_limit=43M,abc,datafile_size=43G**结果:**忽略无效字符,成功设置相应参数并重启。此命令等效于
/home/admin/oceanbase/bin/observer -o syslog_io_bandwidth_limit=44M,datafile_size=43G
修改 observer.config.bin 文件导致 OBServer 重启失败
/home/admin/oceanbase/etc/observer.config.bin 文件不可编辑修改,否则将导致OBServer 无法重启。OBServer 会定期将其配置(尤其是修改过的)刷新到 observer.config.bin 文件中,为防止该文件被误修改,特意将其设计为 binary 格式。
案例
修改 observer.config.bin 文件并重启 ==> 启动失败,日志报错:
init config fail -4103

将上述修改的参数值恢复为原值 ==> 启动失败,日志报错:
init config fail -4034

解决方法
确保
observer.config.bin.history与最新的配置一致的前提下,使用同目录下的observer.config.bin.history覆盖observer.config.bin文件,命令如下:cp -f /home/admin/oceanbase/etc/observer.config.bin.history /home/admin/oceanbase/etc/observer.config.bin拷贝该集群其他节点的
observer.config.bin文件并覆盖当前文件,请确保拷贝来的配置文件与当前节点的最新配置相同且有效,命令如下:cp -f {拷贝文件} /home/admin/oceanbase/etc/observer.config.bin注意
重启时需要修改 zone 的信息,命令如下:
/home/admin/oceanbase/bin/observer -o zone=zone1或/home/admin/oceanbase/bin/observer -z zone1
适用版本
OceanBase 数据库 V3.x 版本。