用obd cluster start demo数据库初始化正常,用命令手动起,报ERROR 1146 (42S02): Table 'oceanbase.__all_database' doesn't exist

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
OceanBase_CE 4.1.0.0
【问题描述】
1.用obd cluster start demo起数据库,数据库初始化正常,show databases命令可以看到库。停掉demo程序,用demo程序起来后的通过ps -ef|grep observer查看的observer命令,手动起observer,observer进程正常启动,但是用show databases查看报错:ERROR 1146 (42S02): Table ‘oceanbase.__all_database’ doesn’t exist
image
手动起之前,会把之前clog,slog,sstable里面的数据清空。
2.不想用obd起的原因是,只需要部署oceanbase-ce,所以想只直接用observer命令起
3.启动命令:/usr/local/oceanbase/bin/observer -r 127.0.0.1:2882:2881 -p 2881 -P 2882 -z zone1 -c 1 -d /opt/log/oceanbase/store/ -i lo -o __min_full_resource_pool_memory=1073741824,enable_syslog_recycle=True,enable_syslog_wf=False,max_syslog_file_count=4,memory_limit=8G,system_memory=3G,cpu_count=16,datafile_size=20G,log_disk_size=15G

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
rootservice.log日志内容


observer.log日志部分内容

直接用命令起,就没有默认的数据库,请问是什么原因导致。

同时obd起的demo程序,observer.log里打印,这是为什么?把system_memory调整为2G,还是会打印。

启动之前,是把这里面的数据清理了吗?

store目录下的clog slog sstable下日志是不可以删除的。里面是数据库的(核心)数据。

把当前observer手动kall 掉 ,用 obd cluster restart demo 重启下试试看。

基本是内存不足导致初始化失败,可以obd cluster edit-config demo 把memory_limit 参数调大,重start试下。

obd起就正常,相同的命令手起不正常,不能说是内存不足导致吧。 手起之前还把obd stop掉了

obd起没问题,用命令行手动起有问题。 store目录下的clog slog sstable目录都在,只是把数据删了,正常情况下,手起应该能自动初始化才对。

删除什么数据了呢?

clog slog sstable目录里的所有数据。
我再另一台服务器上一键安装后,用obd起不来。请问这个可能是什么原因导致?


redo日志不能删除,删除无法恢复的,重装即可。

在另一台服务器上,重新安装,但是起不来。


请问是因为OB_FILE_OR_DIRECTORY_EXIST 这个错误导致吗? 这个错误是什么原因导致呢?

这个报错一般是数据或者redo目录的权限有关系。建议查一下目录权限所属或者目录是否存在。

感谢解答,问题已解决。
问题一:使用obd部署数据库正常启动,手动部署数据库可以正常起来,但是报 Table ‘oceanbase.__all_database’ doesn’t exist的原因是没有进行集群自举。obd部署的集群,在start启动时会自动bootstrap初始化集群。 手动部署的集群,需要在observer启动后,执行alter system bootstrap ZONE ‘zone1’ SERVER ‘127.0.0.1:2882’;进行集群自举。自举完成后,系统数据库也正常创建完成。
问题二:使用obd在另一台服务器上部署启动失败,怀疑是部署的路径空间不足导致,将部署路径换到数据磁盘后,可以正常启动。