configserver,obproxy

社区版的基础上:
我使用obd命令行分别部署oceanbase集群,obconfigserver,obproxy,但是命令curl -s ‘http://10.10.10.4:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster’ |jq .却报错404 resource not found: no obcluster found with query param &{obcluster 0 0}", 但是我的oceanbase集群的名字就是obcluster,这个是什么原因

show parameters like ‘obconfig_url’;
看一下结果

show parameters like ‘obconfig_url’;
±------±---------±--------------±---------±-------------±----------±------±-------------------------±---------±--------±--------±------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
±------±---------±--------------±---------±-------------±----------±------±-------------------------±---------±--------±--------±------------------+
| zone1 | observer | 10.10.10.4 | 2882 | obconfig_url | NULL | | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 10.10.10.9 | 2882 | obconfig_url | NULL | | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 10.10.10.5 | 2882 | obconfig_url | NULL | | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |

这个ob集群实际没有注册到obconfigserver上

alter system set obconfig_url = ‘http://10.10.10.4:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster’;
试一下

这种方式已经试过了依然报错404,
“Message”: “resource not found: no obcluster found with query param &{obcluster 0 0}”,
我的obconfigserver配置的是域名,然后存储的配置是ocenbase集群,我的obconfigserver配置如下ob-configserver:
servers:

  • 10.10.10.4
  • 10.10.10.9
  • 10.10.105
    global:
    listen_port: 9080 # The port of ob-configserver web
    home_path: /disk/nvme1n1/ob-configserver
    oceanbase:
    database_type: oceanbase
    connection_url: “root:root@n2F#Y#3y@tcp(10.10.10.4:2883)/test?parseTime=true”

show parameters like ‘cluster’;
这条命令结果是什么?

alter system set obconfig_url = ‘http://10.10.10.4:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster’;以后没有做任何操作,obclient [oceanbase]> show parameters like ‘cluster’;
±------±---------±--------------±---------±--------±----------±----------±--------------------±---------±--------±--------±------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
±------±---------±--------------±---------±--------±----------±----------±--------------------±---------±--------±--------±------------------+
| zone1 | observer | 10.10.10.4 | 2882 | cluster | NULL | obcluster | Name of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 10.10.10.9 | 2882 | cluster | NULL | obcluster | Name of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 10.10.10.5 | 2882 | cluster | NULL | obcluster | Name of the cluster | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
±------±---------±--------------±---------±--------±----------±----------±--------------------±---------±--------±--------±------------------+,为什么现在就可以了呢

我查看obproxy的日志obproxy.log发现init_meta_client_proxy (ob_proxy.cpp:516) [48852][Y0-00007F16BD3427E0] [lt=56] [dc=0] invalid proxy meta table login info(login_info={username:{config_string:""}, db:{config_string:""}}, ret=-4002)
[2024-03-04 17:51:40.034792] WARN [PROXY] init_meta_client_proxy (ob_proxy.cpp:557) [48852][Y0-00007F16BD3427E0] [lt=54] [dc=0] fail to init meta client proxy(is_raw_init=false, ret=-4002)
[2024-03-04 17:51:40.034825] WARN [PROXY] do_repeat_task (ob_proxy.cpp:573) [48852][Y0-00007F16BD3427E0] [lt=32] [dc=0] fail to init meta mysql proxy, will retry
[2024-03-04 17:51:40.034854] WARN [PROXY] handle_repeat_task (ob_async_common_task.cpp:284) [48852][Y0-00007F16BD3427E0] [lt=28] [dc=0] fail to do repeat task(this={this:0x5629b572e810, task_name:“meta_mysql_proxy_init_task”, terminate:false, need_callback:false, is_repeat:false, is_stop:false, interval_us:580278, timeout_action:null, pending_action:0x7f16a2681d20, cb_cont:null, submit_thread:NULL}, ret=-4002),这个是什么原因导致的呢, ‘http://10.10.10.4:8080/services?Action=ObRootServiceInfo&ObCluster=obcluster’已经没问题了

set obconfig_url之后observer会定时发起注册,这中间可能需要等一会

还有个问题,社区版如何单独部署ocp -server在物理机上面呢,这三个参数’jdbc_url’, ‘jdbc_password’, 'jdbc_username’还必须填写的吗,为什么使用ocp白屏部署就不需要呢,[ERROR] OBD-1009: 10.201.172.14 ocp-server-ce need config: [‘jdbc_url’, ‘jdbc_password’, ‘jdbc_username’]
[ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘jdbc_url’,

低版本是可以单独部署ocp服务,高版本都是集成到使用obd去部署。

那是用obd部署的ocp和容器部署得ocp有什么区别呢,ocp容器可以部署4.x版本吧

功能上没什么区别,部署方式和管理不同,obd部署的是rpm包安装的,也是通过obd进行管理。容器OCP是docker方式部署,无法obd管理,例如升级版本等。目前推荐还是rpm更方便点。

那如果使用obd 部署的话我想把ocenabse数据库和ocp分开部署应该怎么操作呢,同时如果我想用容器部署obproxy,这个镜像是哪个呢,貌似文档没有给出容器obporoxy吧

没有obproxy镜像的。
obd部署把oceanbase和ocp分开部署是可以选择各个服务的节点IP的。
可以直接使用 obd web 命令白屏部署,比较方便。

好的,谢谢

我在同一个机房的三台机器设置了alter system set obconfig_url 以后,我这边大概10分钟才能完全的可以确定找到机器,然后我在其中的一个zone添加了同成别的机房的机器,我过了大半天还没有发现我新添加的机器,为什么同步时间这么长,同时为啥大半天过去还没有发现我手动添加的新的observer机器呢