OBserver 初始化不了

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

各位大神好,本人是 OceanBase 小白,想请教个问题:

我先创建了这些目录:

mkdir -p /d99/oceanbase-ce/{etc,log,run}
mkdir -p /d99/oceanbase-ce/store/{clog,slog,sstable}

当前用的是 4.2 版本的 obd,看到社区里有大佬直接用 observer 命令初始化集群,我照着试了却一直不行,想问问是不是我命令写的有问题?
我的 observer 执行命令如下:
/root/.obd/repository/oceanbase-ce/4.5.0.0/ea2a91329c00190d20c01dd73da81b2f081abd4e/bin/observer
-i enp0s8
-I 192.168.20.99
-p 2881
-P 2882
-n jiff
-c 1003
-d /d99/oceanbase-ce/store/
-r 192.168.20.99:2882:2881
-z zone1
-o “__min_full_resource_pool_memory=1073741824,enable_syslog_wf=False,max_syslog_file_count=5,memory_limit=6G,system_memory=1G,cpu_count=4,datafile_size=10G,datafile_maxsize=5G,datafile_next=2G,log_disk_size=5G,enable_record_trace_log=False,enable_syslog_recycle=1,config_additional_dir=/d99/oceanbase-ce/etc3;/d99/oceanbase-ce/etc2”

端口有了,进程也有了,但为啥登录不进去,还有为什么初始化没有oceanbase这个DB?想知道问题出在哪,麻烦各位大神指点下,谢谢!

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3 个赞

observer是通过obd安装的么?还是?

observer是通过oceanbase-all-in-one,install来的。

使用命令行登陆报错了么。
observer日志可以提供一份看下

我log是空的~~我也不知道错在哪里…这样可以登录,但db是none的,估计不知道哪步做错了…
[root@master log]# pwd
/d99/oceanbase-ce/log
[root@master log]# pwd
/d99/oceanbase-ce/log
[root@master log]# ls
[root@master log]# obclient -h192.168.20.99 -P2881 -A
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221226642
Server version: OceanBase_CE 4.5.0.0 (r100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a) (Built Nov 27 2025 12:06:16)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

obclient(root@sys)[(none)]>
obclient(root@sys)[(none)]>
obclient(root@sys)[(none)]>
obclient(root@sys)[(none)]> Bye

根据你描述的现象,命令行登录后,没有db 是吗,感觉是少了或者bootstrap有问题。先试试:
1、obclient -h127.0.0.1 -uroot -P2881 -p******
2、SET SESSION ob_query_timeout=1000000000;
3、ALTER SYSTEM BOOTSTRAP ZONE ‘zone1’ SERVER ‘192.168.20.99:2882’;

show databases 看下

[root@master oceanbase-ce]# obclient -h192.168.20.99 -P2881 -uroot@sys -Doceanbase
ERROR 1049 (42000): Unknown database ‘oceanbase’
[root@master oceanbase-ce]# obclient -h192.168.20.99 -P2881 -uroot@sys -Doceanbase -A
ERROR 1049 (42000): Unknown database ‘oceanbase’
[root@master oceanbase-ce]# obclient -h192.168.20.99 -P2881 -uroot@sys
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221225670
Server version: OceanBase_CE 4.5.0.0 (r100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a) (Built Nov 27 2025 12:06:16)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

obclient(root@sys)[(none)]>
obclient(root@sys)[(none)]> SET SESSION ob_query_timeout=1000000000;
Query OK, 0 rows affected (0.003 sec)

obclient(root@sys)[(none)]> ALTER SYSTEM BOOTSTRAP ZONE ‘zone1’ SERVER ‘192.168.20.99:2882’;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘‘192.168.20.99:2882’’ at line 1
obclient(root@sys)[(none)]> show database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near ‘database’ at line 1
obclient(root@sys)[(none)]>

不行压跟就没有这个DB.

show databases;

root@master d99]# obclient -h192.168.20.99 -P2881 -uroot@sys -A
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221227354
Server version: OceanBase_CE 4.5.0.0 (r100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a) (Built Nov 27 2025 12:06:16)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

obclient(root@sys)[(none)]> show databases;
ERROR 1146 (42S02): Table ‘oceanbase.__all_database’ doesn’t exist
obclient(root@sys)[(none)]>

安装之前我的架构:
[root@master oceanbase-ce]# tree
.
├── data
│ └── jiff
│ └── sstable
├── redo
│ └── jiff
│ ├── clog
│ ├── ilog
│ └── slog
└── store
└── jiff
├── clog → /d99/oceanbase-ce/redo/jiff/clog
├── ilog → /d99/oceanbase-ce/redo/jiff/ilog
├── slog → /d99/oceanbase-ce/redo/jiff/slog
└── sstable → /d99/oceanbase-ce/data/jiff/sstable

安装之后我的架构:
[root@master d99]# tree |grep -v “[1,2,3,4,5,6,7,8,9]”
.
└── oceanbase-ce
├── audit
├── data
│ └── jiff
│ └── sstable
│ └── block_file
├── etc
│ └── observer.data_version.bin
├── log
│ ├── alert
│ │ └── alert.log
│ ├── election.log
│ ├── election.log.wf
│ ├── observer.log
│ ├── observer.log.wf
│ ├── rootservice.log
│ ├── rootservice.log.wf
│ └── trace.log
├── redo
│ └── jiff
│ ├── clog
│ │ ├── log_pool
│ │ │ ├── 0
│ │ │ └── meta
│ ├── ilog
│ └── slog
│ ├── server
├── run
│ ├── observer.pid
│ ├── rpc.sock
│ └── sql.sock
└── store
└── jiff

谢谢各位同学解答!

谢谢大家!解决了,原来还要初始化一下Zone1.
obclient(root@sys)[(none)]> set session ob_query_timeout=1000000000;
Query OK, 0 rows affected (0.009 sec)
obclient(root@sys)[(none)]> alter system bootstrap ZONE ‘zone1’ SERVER ‘192.168.20.99:2882’;
Query OK, 0 rows affected (35.387 sec)

obclient(root@sys)[oceanbase]> SELECT SVR_IP, SVR_PORT, ZONE, STATUS FROM oceanbase.DBA_OB_SERVERS;
±--------------±---------±------±-------+
| SVR_IP | SVR_PORT | ZONE | STATUS |
±--------------±---------±------±-------+
| 192.168.20.99 | 2882 | zone1 | ACTIVE |
±--------------±---------±------±-------+
1 row in set (0.010 sec)

2 个赞

我看前面是sql格式不对语法错误。现在符合预期

后来呢

1 个赞

好复杂

1 个赞

学到了

结束了