阿里oceanbase-ce:纯纯手工创建实例、初始化 ...

 

[root@test77 oceanbase]# ps -ef|grep obs
root 3190081 1 99 20:47 pts/4 00:00:08 /home/admin/oceanbase/bin/observer -N -I 118.4.40.77 -c 123321 -n obcluster -z zone1 -r 118.4.40.77:2882:2881 -o memory_limit=10G,datafile_size=20G,log_disk_size=20G -d /home/admin/oceanbase/data

 

./bin/observer -N -I 118.4.40.77 -c 123321 -n obcluster -z zone1 -r '118.4.40.77:2882:2881' -o "memory_limit=10G,datafile_size=20G,log_disk_size=20G" -d ./data/

 

已知关键点:

数据目录-d内必须包含三个目录:clog、slog、sstable

【必须注意】指定-r参数。该参数一经设定,不要更改!

 

关于安装时默认产生的systemd管理服务oceanbase.service :

oceanbase-ce 通过系统systemd服务的方式,本质上也仅仅是对obshell的封装,它包含了从/etc/oceanbase.conf读取配置的初始化过程。

如果自己能实现 直接修改指定-d数据目录的位置,或能够直接修改实例的配置文件的重要参数,完全可以不用这个systemd服务封装!

 

================================================

如何纯手工管理oceanbase实例?

================================================

第一:要么自始至终总使用最最底层的observer,通过传参启动空白进程,然后进行bootstrap初始化,然后进一步配置集群的参数,然后正常关闭(会自动在当前目录生成etc配置文件目录及文件),然后就可以再次 直接(或以很少的核心参数)去启动observer了!

 

第二:要么自始至终始终用obshell来管理。obshell 【必须 与 observer放在一起】的启动目录{bin/obshell}决定了etc配置文件的位置!!!

另外,需要首先 以正确的--ip 和 --port 启动一次obshell,以便产生正确的obshell外部.meta配置。然后才能正常通过obshell管理observer!!

不过,如果真的obshell与observer实例内的 ocs.all_agent 字典表的配置不一致。可以直接更新该字典表与实际obshell配置一致。 或者删除.meta重新启动obshell配置与oceanbase内一致!

 

posted on 2026-03-05 20:55  jinzhenshui  阅读(26)  评论(0)    收藏  举报