OceanBase
  • 产品
  • 解决方案
  • 客户
  • 合作伙伴
  • 资源与服务
  • 文档
  • 社区
云控制台登录 / 注册
  • 免费试用
OceanBase AI 数据平台

基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。

一体化能力

TP 事务处理

关键业务稳定运行,保障数据零丢失

AP 实时分析

事务分析一体,驱动智能决策与运营

AI 现代负载

统一多模态数据,支撑生产级应用

关键产品
OceanBase 分布式数据库

首批通过安全可靠测评,面向关键业务

OceanBase 集中式数据库

集中式架构,兼具性能与成本优势

OceanBase AI 数据库

面向 AI 应用与 Agent 的多模数据库

OceanBase AI 湖库

湖库一体的 AI 多模态数据系统

OceanBase DataPilot

企业级 AI 数据分析 Agent

OceanBase Agentbase

企业级 Agent 后端基础设施

OceanBase OAgent

数据库 AI 运维 Agent

OB Cloud

一体化云数据库,提供多云一致体验

OceanBase 数据库一体机

软硬一体,极致性能与高可靠性保障

OceanBase AI 一体机

开箱即用的 AI 数据库一体机

OMA 迁移评估工具

全链路数据库迁移评估

OMS 数据迁移工具

一站式数据传输与同步

OCP 运维管理工具

数据库全生命周期管理

ODC 开发者工具

数据库开发与管控协同

OAS 自治服务工具

数据库智能诊断与自治

通用场景
全场景业务系统 OLTP
实时分析混合负载
异地多活
多基础设施部署
一站式传统数据库升级
混合云部署
一库多芯软硬件混合部署
分布式数据库单机部署
大存储类数据库降本
冷数据归档降本
多实例资源整合
分库分表一体化升级
高并发场景
数据中台
行业解决方案
国有大行和股份制银行核心系统解决方案
区域性银行核心系统解决方案
寿险核心系统解决方案
产险核心系统解决方案
资管交易类系统解决方案
资管 TA 清算类系统解决方案
运营商核心系统解决方案
人社核心系统解决方案
电力核心系统解决方案
行业专区
银行专区

助力银行完成各类核心业务系统升级

保险专区

寿险、产险核心系统升级的更佳选择

零售专区

助力200+零售行业客户规模化落地

DB 大咖说
oceanbase爱奇艺

百亿级卡券业务的“单库双擎”架构升级

oceanbase四川银行

800个测试用例选定分布式数据库

oceanbase太平洋保险

先难后易,核心系统数据库升级复盘

行业案例
oceanbase交通银行

核心数据库的“分布式革命”

oceanbase中国移动

B域核心CRM&BOSS近乎零改造分布式升级

oceanbase理想

打造领先的智能制造系统和自动驾驶体验

演讲实录
oceanbase中国联通

集团应用分布式数据库覆盖B/O/M域

oceanbase国泰海通

智能推送系统稳定支撑单日亿级消息处理量

oceanbase中国联合航空

中国首款机票盲盒背后的数据库力量

用户实践
oceanbase北京银行

最快速度完成40余套系统国产数据库升级

oceanbaseVIVO

替换 MySQL 分库分表,探索成本效益最优

oceanbase滴滴

数据库大规模运维体系建设及落地实践

合作伙伴
合作伙伴类型
联合解决方案
产业生态伙伴
经销商伙伴
技术服务伙伴
培训认证伙伴
生态联合解决方案
神州信息 x OceanBase 银行核心系统
长亮科技 x OceanBase 新核心系统
中电金信 x OceanBase 金融分布式核心系统
天阳科技 x OceanBase 贷记卡方案
易诚互动 x OceanBase 手机银行方案
恒生 x OceanBase UF3.0/O45/TA/估值方案
商业发行版
云树®数据库软件 ActionDB
服务
支持与服务
提交工单
软件下载
OceanBase 企业版
OceanBase 社区版
OB Cloud
学习
培训与认证
在线课堂
在线体验
开发者
开发者中心
资料
行业报告与白皮书
官方博客
年度发布会资料
开发者大会资料
oceanbase白皮书

金融核心系统数据库升级路径与场景实践

oceanbase白皮书

人社关键业务数据库一体化升级实践

产品文档
oceanbaseOceanBase 数据库
数据库一体机
oceanbaseOceanBase AI 数据库
工具与组件
oceanbaseOB Cloud 云数据库
驱动和中间件
快速上手
OceanBase 数据库
OB Cloud 云数据库
知识库
汇聚常见产品使用问题案例
在线体验

Demo与实验,感受 OceanBase 的核心能力与应用场景

OceanBase 最佳实践
了解 OceanBase 分布式数据库的架构与系统原理
技术博客

技术解析 | 用户实践 | 社区月报

在线课堂

电子书 |视频课程|在线培训

Developer Hub
应用开发Demo | 数据开发与集成工具
问答论坛

快速答疑 | 常见问题 | 技术交流

社区活动

Meetup | 技术公开课

GitHub

查看源码 | 贡献代码 | 建议反馈

加入社区

社区组织 | 社区用户贡献 |开发者贡献

进入社区首页
oceanbase数据库大赛

第六届OceanBase数据库大赛

oceanbase免费课程

《Easy Data x AI》:面向所有 AI 爱好者的 Data 与 AI 基础知识入门教程

切换语言
  • 中文站 - 简体中文
  • International - English
  • 日本站 - 日本語
文档反馈
  1. 文档中心
  2. OceanBase 安装部署工具
  3. V4.3.0
  4. 使用指南
  5. 命令行
  6. 组件部署
  7. 部署 obconfigserver
V4.3.0
  • 什么是 obd
  • 快速上手
  • obd 命令
  • 使用指南
    • 使用概述
    • 图形化界面
    • 命令行
      • 配置文件说明
      • 组件部署
        • 部署 OceanBase 集群
        • 部署 seekdb
        • 部署 obconfigserver
        • 部署 OMS
        • 部署 OCP
        • 部署 Alertmanager
        • 部署 obbinlog
        • 部署 oblogproxy
      • 集群管理
      • 集群接管
      • 组件升级
  • 升级 obd
  • 常见问题
  • 错误码
  • 版本发布记录
  • 使用 obd 交互式部署社区版实践
  • 使用 obd 图形化界面部署社区版实践
  • 使用 obd 配置文件部署社区版实践
  1. 文档中心
  2. OceanBase 安装部署工具
  3. V4.3.0
  4. 使用指南
  5. 命令行
  6. 组件部署
  7. 部署 obconfigserver

部署 obconfigserver

更新时间:2026-05-06 20:11:20

github-fill编辑
编组分享

部署 obconfigserver 时,您可以选择单独部署,也可以和 OceanBase 数据库以及 ODP 一起部署,本文将介绍 obconfigserver 常见的几种部署方法。

组件介绍

  • oceanbase-ce

    OceanBase 数据库社区版,OceanBase 数据库一款完全自研的企业级原生分布式数据库,详细信息请参见 OceanBase 数据库文档。

  • obproxy-ce

    OceanBase Database Proxy,OceanBase 数据库代理,是 OceanBase 数据库专用的代理服务器,简称为 ODP(又称为 OBProxy)。详细信息请参见 OceanBase 数据库代理文档。

  • ob-configserver

    OceanBase Configserver,简称为 obconfigserver,可提供 OceanBase 的元数据注册,存储和查询服务。详细信息请参见 ob-configserver。

前提条件

在开始之前,请确保您已满足以下条件:

  • 直接部署 obconfigserver 要求您已安装 V2.3.0 或之后版本的 obd,为集群新增 obconfigserver 要求您已安装 V2.5.0 或之后版本的 obd,建议安装最新版本。安装 obd 的详细操作您可参见 安装 obd。

    说明

    建议通过下载 OceanBase All in One 进行安装,OceanBase All in One 目前提供部署所需要的全部组件(除 obbinlog 组件),且组件已经经过相互适配测试,为官方推荐版本。

  • 您的机器可以联网,或者 obd 本地镜像库中有部署所需安装包。

    可执行 obd mirror list local 命令查看本地镜像库中的安装包。若您通过 OceanBase All in One 安装 obd,本地镜像库中默认包含所有部署所需组件的安装包。

  • 同时部署 OceanBase 集群时,需确保 OBServer 节点机器支持 AVX 指令集(仅 x86 架构服务器有此限制)。可执行 lscpu | grep Flags | grep avx 命令查看是否支持 AVX 指令集。

    说明

    当使用 x86 架构机器时,若待部署的 OceanBase 数据库版本在以下范围中,不再限制机器是否支持 AVX 指令集:

    • 对于 V4.2.x 版本,要求为 V4.2.5.6 或之后版本。
    • 对于 V4.3.x 版本,要求为 V4.3.5.4 或之后版本。
    • 对于 V4.4.x 版本,要求为 V4.4.1.0 或之后版本。
  • 离线部署场景下,若同时部署 OceanBase 集群,且使用 ARM 架构服务器部署,需查看 OBServer 节点机器是否支持 LSE 指令集,可执行 lscpu | grep Flags | grep atomics 命令查看是否支持。若机器不支持 LSE 指令集,需下载带 nonlse 的 OceanBase 数据库安装包,并使用 obd mirror clone 命令将安装包上传到 obd 本地镜像库。

    说明

    OceanBase All in One 包中未包含带有 nonlse 的 OceanBase 数据库安装包。

操作步骤

本节分为如下三种场景介绍如何使用 obd 命令部署 obconfigserver,您可根据实际情况选择合适的部署方式:

  • 同时部署 OceanBase 数据库和 ODP

    在同一份配置文件中同时配置 obconfigserver、OceanBase 数据库和 ODP,部署成功后一同部署的 OceanBase 数据库会被注册到 obconfigserver 中,并且 ODP 也是使用 config url 方式启动,也就是说可以通过该 ODP 连接任何被注册到当前 obconfigserver 中的集群。

    注意

    使用 ODP 连接 OceanBase 数据库时,需保证 ODP 中的配置项 observer_sys_password 与 OceanBase 数据库中 proxyro@sys 用户密码一致,否则连接会报错。

  • 为集群新增 obconfigserver

    使用 obd cluster component add 命令向 obd 管理的 OceanBase 集群中新增 obconfigserver,若已存在的 OceanBase 集群中有部署 ODP,执行成功并重启 ODP 后,ODP 将使用新增 obconfigserver 的 config url 启动。

  • 仅部署 obconfigserver

    部署成功后,需手动将 OceanBase 集群注册到该 obconfigserver 中,并修改 ODP 的 obproxy_config_server_url 配置项,具体操作可参见下文 使用 obconfigserver 介绍。

同时部署 OceanBase 数据库、ODP
为集群新增 obconfigserver
仅部署 obconfigserver

步骤一:修改配置文件

创建一个配置文件,此处以配置文件名为 config.yaml 为例,该配置文件中各个组件的配置及注意事项如下所示。

  1. 用户配置

    ## Only need to configure when remote login is required
    user:
      username: admin
    #   password: your password if need
      key_file: /home/admin/.ssh/id_rsa
    #   port: your ssh port, default 22
    #   timeout: ssh connection timeout (second), default 30
    

    username 为登录到目标机器的用户名,确保您的用户名有 home_path 的写权限。password 和 key_file 均用于验证用户,通常情况下只需要填写一个。

    注意

    在配置秘钥路径后,如果您的秘钥不需要口令,请注释或者删除 password,以免 password 被视为秘钥口令用于登录,导致校验失败。

  2. OceanBase 数据库

    oceanbase-ce:
      depends:
        - ob-configserver
      servers:
        - name: server1
          # Please don't use hostname, only IP can be supported
          ip: 10.10.10.2
        - name: server2
          ip: 10.10.10.3
        - name: server3
          ip: 10.10.10.4
      global:
        # The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
        home_path: /home/admin/observer
        # The directory for data storage. The default value is $home_path/store.
        # data_dir: /data
        # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
        # redo_dir: /redo
        # Please set devname as the network adaptor's name whose ip is  in the setting of severs.
        # if set severs as "127.0.0.1", please set devname as "lo"
        # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
        devname: eth0
        cluster_id: 1
        # please set memory limit to a suitable value which is matching resource.
        memory_limit: 6G # The maximum running memory for an observer
        system_memory: 1G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
        datafile_size: 20G # Size of the data file.
        log_disk_size: 15G # The size of disk space used by the clog files.
        cpu_count: 16
        scenario: htap
        enable_auto_start: true
        mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
        rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
        obshell_port: 2886
        production_mode: false
        enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
        max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
        # Cluster name for OceanBase Database. The default value is obcluster. When you deploy OceanBase Database and obproxy, this value must be the same as the cluster_name for obproxy.
        appname: test
        root_password: ****** # root user password
        proxyro_password: ****** # proxyro user password, consistent with obproxy's observer_sys_password, can be empty
      server1:
        zone: zone1
      server2:
        zone: zone2
      server3:
        zone: zone3
    

    配置文件中各配置项含义可参见 配置文件说明 一文 配置项说明 部分。需要注意的配置项如下:

    • depends:您需配置 oceanbase-ce 组件依赖于 ob-configserver 组件,否则无法将该 OceanBase 数据库注册到 obconfigserver 中。

    • appname:用于配置集群的名字,不配置的情况下 OceanBase 数据库无法注册到 obconfigserver 中。

    • 若待部署的 OceanBase 数据库版本号不小于 V4.2.5,配置文件中未配置 scenario 时,obd 会提供交互式选项供用户选择负载类型。

    • 配置 enable_auto_start 为 true 即表示开启 observer 进程开机自启动功能,该功能需确保部署用户拥有 sudo 权限,且部署环境非容器环境。

  3. ODP 组件

    obproxy-ce:
      # Set dependent components for the component.
      # When the associated configurations are not done, obd will automatically get the these configurations from the dependent components.
      depends:
        - oceanbase-ce
        - ob-configserver
      servers:
        - 10.10.10.5
      global:
        listen_port: 2883 # External port. The default value is 2883.
        prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
        rpc_listen_port: 2885
        home_path: /home/admin/obproxy
        # oceanbase root server list
        # format: ip:mysql_port;ip:mysql_port. When a depends exists, obd gets this value from the oceanbase-ce of the depends.
        # rs_list: 10.10.10.1:2881;10.10.10.2:2881;10.10.10.3:2881
        enable_cluster_checkout: false
        # observer cluster name, consistent with oceanbase-ce's appname. When a depends exists, obd gets this value from the oceanbase-ce of the depends.
        # cluster_name: obcluster
        skip_proxy_sys_private_check: true
        enable_strict_kernel_release: false
        # obproxy_sys_password: # obproxy sys user password, can be empty. When a depends exists, obd gets this value from the oceanbase-ce of the depends.
        # observer_sys_password: # proxyro user password, consistent with oceanbase-ce's proxyro_password, can be empty. When a depends exists, obd gets this value from the oceanbase-ce of the depends.
    

    配置文件中各配置项含义可参见 配置文件说明 一文 配置项说明 部分。您需注意请勿配置 rs_list 配置项,否则 ODP 无法获取 obconfigserver 中注册的集群信息。

  4. obconfigserver 组件

    ob-configserver:
      servers:
        - 10.10.10.1
      global:
        listen_port: 8080 # The port of ob-configserver web
        server_ip: 0.0.0.0 # Listen to the ob-configserver server IP。When you want to listen to the specified IP address,use it.
        home_path: /home/admin/ob-configserver  # The working directory for prometheus. ob-configserver is started under this directory. This is a required field.
        ## log config
        # log_level: info # Log printing level of ob-configserver。The default value is `info`
        # log_maxsize: 30 # The total size of manager ob-configserver.Log size is measured in Megabytes.The default value is 30
        # log_maxage:7 # The days of manager expired ob-configserver.Log retention days. The default value is 7
        # log_maxbackups: 10  #The number of manager expired ob-configserver.Log. The default value is 10
        # log_localtime: true #  Switch of ob-configserver.Log naming with localtime. The default value is true
        # log_compress: true # Compress ob-configserver.Log switch. The default value is true
    
        ## vip config, configserver will generate url with vip_address and port and return it to the client
        ## do not use some random value that can't be connected
        # vip_address: "10.10.10.1"
        # vip_port:8080
        ## storage config
        # storage:
          ## database type, support sqlite3 or mysql
          # sqlite3:
          # database_type: sqlite3
          # connection_url: "/home/admin/ob-configserver/.data.db?cache=shared&_fk=1"
    
          # mysql:
          # database_type: mysql
          # connection_url: "$user:$password@tcp($IP:$PORT)/$metadb?parseTime=true"
    

    配置文件中注释的配置项未打开时将使用默认值,您也可取消注释并配置为其他值。配置文件中需要注意的有如下几个配置项:

    • server_ip:ob-configserver 服务访问白名单,默认为 0.0.0.0,表示 ob-configserver 所在服务器的所有 IP 都可以访问。

    • vip_address 和 vip_port:vip_address 和 vip_port 为负载均衡访问地址配置项。若要在 servers 下配置多个节点,您需使用负载均衡,请在配置好负载均衡后,在配置文件中填写负载均衡地址 IP 与端口。

    • database_type:数据库类型,提供 sqlite3 与 mysql,默认为 sqlite3 类型,推荐使用 mysql 类型。

    • connection_url:数据库连接 URL。选择 sqlite3 类型时默认为 $home_path/.data.db?cache=shared&_fk=1;选择 mysql 类型时,connection_url 可以是 OceanBase 数据库,也可以是原生 MySQL。指定的数据库用户需要有 URL 里对应库 DDL 和 DML 的权限,需注意的是,使用 OceanBase 数据库时这里的库名请勿使用 oceanbase 库,否则会提示没有权限。

步骤二:启动 obconfigserver

  1. 部署 obconfigserver

    [admin@obtest ~]$ obd cluster deploy test -c config.yaml
    

    此处以使用配置文件 config.yaml 部署 test 集群为例,您需根据实际情况修改部署集群名和配置文件名。

  2. 启动 obconfigserver

    [admin@obtest ~]$ obd cluster start test
    

    输出如下,可以看到 obconfigserver 访问地址的打印信息。

    +-----------------------------------------------------------+
    |                      ob-configserver                      |
    +---------+------+---------------+----------+--------+------+
    | server  | port | vip_address   | vip_port | status | pid  |
    +---------+------+---------------+----------+--------+------+
    | 0.0.0.0 | 8080 | 10.10.10.1    | 8080     | active | 6270 |
    +---------+------+---------------+----------+--------+------+
    curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig'
    Wait for observer init ok
    +-------------------------------------------------+
    |                 oceanbase-ce                    |
    +---------------+---------+------+-------+--------+
    | ip            | version | port | zone  | status |
    +---------------+---------+------+-------+--------+
    | 10.10.10.2    | 4.3.5.0 | 2881 | zone1 | ACTIVE |
    +---------------+---------+------+-------+--------+
    | 10.10.10.3    | 4.3.5.0 | 2881 | zone2 | ACTIVE |
    +---------------+---------+------+-------+--------+
    | 10.10.10.4    | 4.3.5.0 | 2881 | zone3 | ACTIVE |
    +---------------+---------+------+-------+--------+
    obclient -h10.10.10.2 -P2881 -uroot -p'********' -Doceanbase -A
    
    +----------------------------------------------------------------+
    |                           obproxy-ce                           |
    +------------+------+-----------------+-----------------+--------+
    | ip         | port | prometheus_port | rpc_listen_port | status |
    +------------+------+-----------------+-----------------+--------+
    | 10.10.10.5 | 2883 | 2884            | 2885            | active |
    +------------+------+-----------------+-----------------+--------+
    obclient -h10.10.10.5 -P2883 -uroot@proxysys -p'********' -Doceanbase -A
    
    obshell program health check ok
    display obshell dashboard ok
    +-----------------------------------------------------------+
    |                        obshell Dashboard                  |
    +---------------------------+------+---------------+--------+
    | url                       | user | password      | status |
    +---------------------------+------+---------------+--------+
    | http://10.10.10.2:2886    | root | '********'    | active |
    +---------------------------+------+---------------+--------+
    
  1. 创建配置文件

    为 obd 管理的 OceanBase 集群新增 obconfigserver 时,新创建的配置文件中只需要配置 ob-configserver 组件的信息,示例如下:

    ob-configserver:
      servers:
        - 10.10.10.1
      global:
        listen_port: 8080 # The port of ob-configserver web
        server_ip: 0.0.0.0 # Listen to the ob-configserver server IP。When you want to listen to the specified IP address,use it.
        home_path: /home/admin/ob-configserver  # The working directory for prometheus. ob-configserver is started under this directory. This is a required field.
        ## log config
        # log_level: info # Log printing level of ob-configserver。The default value is `info`
        # log_maxsize: 30 # The total size of manager ob-configserver.Log size is measured in Megabytes.The default value is 30
        # log_maxage:7 # The days of manager expired ob-configserver.Log retention days. The default value is 7
        # log_maxbackups: 10  #The number of manager expired ob-configserver.Log. The default value is 10
        # log_localtime: true #  Switch of ob-configserver.Log naming with localtime. The default value is true
        # log_compress: true # Compress ob-configserver.Log switch. The default value is true
    
        ## vip config, configserver will generate url with vip_address and port and return it to the client
        ## do not use some random value that can't be connected
        # vip_address: "10.10.10.1"
        # vip_port:8080
        ## storage config
        # storage:
          ## database type, support sqlite3 or mysql
          # sqlite3:
          # database_type: sqlite3
          # connection_url: "/home/admin/ob-configserver/.data.db?cache=shared&_fk=1"
    
          # mysql:
          # database_type: mysql
          # connection_url: "$user:$password@tcp($IP:$PORT)/$metadb?parseTime=true"
    

    配置文件中注释的配置项未打开时将使用默认值,您也可取消注释并配置为其他值。配置文件中需要注意的有如下几个配置项:

    • server_ip:ob-configserver 服务访问白名单,默认为 0.0.0.0,表示 ob-configserver 所在服务器的所有 IP 都可以访问。

    • vip_address 和 vip_port:vip_address 和 vip_port 为负载均衡访问地址配置项。若要在 servers 下配置多个节点,您需使用负载均衡,请在配置好负载均衡后,在配置文件中填写负载均衡地址 IP 与端口。

    • database_type:数据库类型,提供 sqlite3 与 mysql,默认为 sqlite3 类型,推荐使用 mysql 类型。

    • connection_url:数据库连接 URL。选择 sqlite3 类型时默认为 $home_path/.data.db?cache=shared&_fk=1;选择 mysql 类型时,connection_url 可以是 OceanBase 数据库,也可以是原生 MySQL。指定的数据库用户需要有 URL 里对应库 DDL 和 DML 的权限,需注意的是,使用 OceanBase 数据库时这里的库名请勿使用 oceanbase 库,否则会提示没有权限。

  2. 执行新增组件命令

    obd cluster component add test1 -c configserver.yaml
    

    此处以已存在的 OceanBase 集群名为 test1(执行 obd cluster list 命令输出的 Name),新增 obconfigserver 时创建的配置文件名为 configserver.yaml 为例,您需根据实际集群名和组件名进行替换。

    命令执行后输出如下:

    Connect to ob-configserver ok
    +-----------------------------------------------------------------+
    |                         ob-configserver                         |
    +---------------+------+---------------+----------+--------+------+
    | server        | port | vip_address   | vip_port | status | pid  |
    +---------------+------+---------------+----------+--------+------+
    | 10.10.10.1    | 8080 | 10.10.10.1    | 8080     | active | 2725 |
    +---------------+------+---------------+----------+--------+------+
    curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig'
    

    当待新增组件的集群中存在 ODP 时,根据 obd 版本的不同有如下两种情况:

    • obd 为 V3.2.0 或之后版本时,支持交互式控制是否重启集群,只需在输出中的如下位置输入 restart 即可使用新增的 obconfigserver 重启 ODP。

      Restart `obproxy-ce,oceanbase-ce` for test to take effect. You can do it manually later or enter `restart` now: 
      

      如果此处直接按 Enter 回车,或输入非 restart 值,obd 不会重启集群,流程结束后 ODP 仍是使用 rslist 方式启动。

    • obd 为 V3.2.0 之前版本时,会在输出中输出重启命令,您只需复制并执行输出中的 obd cluster restart 命令。执行命令后,将使用新增的 obconfigserver 重启 ODP。

      obd cluster restart demo -c obproxy-ce
      

创建一个配置文件,此处以配置文件名为 config-only.yaml 为例,该配置文件中各个组件的配置及注意事项如下所示。

  1. 用户配置

    ## Only need to configure when remote login is required
    user:
      username: admin
    #   password: your password if need
      key_file: /home/admin/.ssh/id_rsa
    #   port: your ssh port, default 22
    #   timeout: ssh connection timeout (second), default 30
    

    username 为登录到目标机器的用户名,确保您的用户名有 home_path 的写权限。password 和 key_file 均用于验证用户,通常情况下只需要填写一个。

    注意

    在配置秘钥路径后,如果您的秘钥不需要口令,请注释或者删除 password,以免 password 被视为秘钥口令用于登录,导致校验失败。

  2. 配置 ob-configserver 组件

    ob-configserver:
      servers:
        - 10.10.10.1
      global:
        listen_port: 8080 # The port of ob-configserver web
        server_ip: 0.0.0.0 # Listen to the ob-configserver server IP。When you want to listen to the specified IP address,use it.
        home_path: /home/admin/ob-configserver  # The working directory for prometheus. ob-configserver is started under this directory. This is a required field.
        ## log config
        # log_level: info # Log printing level of ob-configserver。The default value is `info`
        # log_maxsize: 30 # The total size of manager ob-configserver.Log size is measured in Megabytes.The default value is 30
        # log_maxage:7 # The days of manager expired ob-configserver.Log retention days. The default value is 7
        # log_maxbackups: 10  #The number of manager expired ob-configserver.Log. The default value is 10
        # log_localtime: true #  Switch of ob-configserver.Log naming with localtime. The default value is true
        # log_compress: true # Compress ob-configserver.Log switch. The default value is true
    
        ## vip config, configserver will generate url with vip_address and port and return it to the client
        ## do not use some random value that can't be connected
        # vip_address: "10.10.10.1"
        # vip_port:8080
        ## storage config
        # storage:
          ## database type, support sqlite3 or mysql
          # sqlite3:
          # database_type: sqlite3
          # connection_url: "/home/admin/ob-configserver/.data.db?cache=shared&_fk=1"
    
          # mysql:
          # database_type: mysql
          # connection_url: "$user:$password@tcp($IP:$PORT)/$metadb?parseTime=true"
    

    配置文件中注释的配置项未打开时将使用默认值,您也可取消注释并配置为其他值。配置文件中需要注意的有如下几个配置项:

    • server_ip:ob-configserver 服务访问白名单,默认为 0.0.0.0,表示 ob-configserver 所在服务器的所有 IP 都可以访问。

    • vip_address 和 vip_port:vip_address 和 vip_port 为负载均衡访问地址配置项。若要在 servers 下配置多个节点,您需使用负载均衡,请在配置好负载均衡后,在配置文件中填写负载均衡地址 IP 与端口。

    • database_type:数据库类型,提供 sqlite3 与 mysql,默认为 sqlite3 类型,推荐使用 mysql 类型。

    • connection_url:数据库连接 URL。选择 sqlite3 类型时默认为 $home_path/.data.db?cache=shared&_fk=1;选择 mysql 类型时,connection_url 可以是 OceanBase 数据库,也可以是原生 MySQL。指定的数据库用户需要有 URL 里对应库 DDL 和 DML 的权限,需注意的是,使用 OceanBase 数据库时这里的库名请勿使用 oceanbase 库,否则会提示没有权限。

  3. 部署 obconfigsever

    [admin@obtest ~]$ obd cluster deploy config-only -c config-only.yaml
    

    此处以使用配置文件 config-only.yaml 部署 config-only 集群为例,您需根据实际情况修改部署集群名和配置文件名。

  4. 启动 obconfigserver

    [admin@obtest ~]$ obd cluster start config-only
    

    输出如下,可以看到 obconfigserver 访问地址的打印信息。

    +-----------------------------------------------------------+
    |                      ob-configserver                      |
    +---------+------+---------------+----------+--------+------+
    | server  | port | vip_address   | vip_port | status | pid  |
    +---------+------+---------------+----------+--------+------+
    | 0.0.0.0 | 8080 | 10.10.10.1    | 8080     | active | 6270 |
    +---------+------+---------------+----------+--------+------+
    curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig'
    

使用 obconfigserver

本节介绍部署 obconfigserver 后如何使用,具体包含如何向 obconfigserver 中注册 OceanBase 集群、如何查看注册信息、如何启动 ODP,以及如何删除被注册到 obconfigserve 中的集群。

注册 OceanBase 集群

本节介绍如何将 OceanBase 集群注册到 obconfigserver 中。有修改 OceanBase 集群配置文件和执行 SQL 命令两种方式,您可根据实际需要选择任一方式进行操作。

修改 OceanBase 集群配置项
执行 SQL 命令

注意

  • 待注册的 OceanBase 集群配置文件需配置 appname 配置项,否则配置 obconfig_url 后重启会报错。

  • 待注册的 OceanBase 集群需是已启动的集群,目前暂不支持配置待启动集群。

  1. 您可执行 obd cluster edit-config 命令编辑已有集群的配置文件,将 obconfig_url 配置到 oceanbase-ce 组件的 global 模块下。

    配置项示例如下:

    obconfig_url: 'http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test1'
    
    • 10.10.10.1:8080:obconfigserver 访问地址,此处仅为示例,您需根据实际情况修改。

    • test1:待注册的 OceanBase 集群的 appname 值,此处以 appname 值为 test1 为例,您需根据实际情况修改。

  2. 执行 obd cluster reload 命令重启集群,此处以部署名为 test1 为例。

    obd cluster reload test1
    
  3. 重启成功后可参照下文 查看 obconfigserver 中注册信息 内容验证该集群是否成功注册到 obconfigserver 中。

  1. 使用 root 用户登录待注册数据库的 sys 租户

    obclient -h<IP> -P<PORT> -uroot@sys -p -c -A
    # example
    obclient -h10.10.10.4 -P4883 -uroot@sys -p -c -A
    

    其中,IP 为连接 OceanBase 数据库的 IP 地址;PORT 为连接 OceanBase 数据库的的端口,直连时为 mysql_port 配置项的值,通过 ODP 连接时为 listen_port 配置项的值。

    使用 OBClient 客户端连接 OceanBase 集群的详细操作可参考 通过 OBClient 连接 OceanBase 租户。

  2. 执行如下命令查看 obconfig_url 配置项的值

    obclient> SHOW PARAMETERS LIKE 'obconfig_url';
    

    输出如下,表示当前集群没有配置 obconfig_url。

    +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------+----------+---------+---------+-------------------+---------------+-----------+
    | zone  | svr_type | svr_ip        | svr_port | name         | data_type | value | info                     | section  | scope   | source  | edit_level        | default_value | isdefault |
    +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------+----------+---------+---------+-------------------+---------------+-----------+
    | zone3 | observer | 10.10.10.4   |     2882  | obconfig_url | STRING    |       | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |               |         1 |
    | zone1 | observer | 10.10.10.2   |     2882  | obconfig_url | STRING    |       | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |               |         1 |
    | zone2 | observer | 10.10.10.3   |     2882  | obconfig_url | STRING    |       | URL for OBConfig service | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |               |         1 |
    +-------+----------+---------------+----------+--------------+-----------+-------+--------------------------+----------+---------+---------+-------------------+---------------+-----------+
    
  3. 执行如下命令配置 obconfig_url

    alter system set obconfig_url = 'http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test1';
    

    10.10.10.1:8080 为 obconfigserver 访问地址,test1 为待注册的 OceanBase 集群的 appname 值,可连接集群后执行 SHOW PARAMETERS LIKE 'cluster'; 命令查看,此处仅为示例,您需根据实际情况修改。

  4. 退出集群后验证 obconfigserver 是否可以解析出 OceanBase 集群的信息

    curl -s 'http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test1' |jq .
    

    说明

    将 OceanBase 集群注册到 obconfigserver 后,需等待几分钟后,obconfigserver 中才能查到相关信息。

输出如下,成功解析出集群中 OBServer 节点的 IP 和端口。

{
  "Code": 200,
  "Message": "successful",
  "Success": true,
  "Data": {
    "ObClusterId": 1,
    "ObRegionId": 1,
    "ObCluster": "test1",
    "ObRegion": "test1",
    "ReadonlyRsList": [],
    "RsList": [
      {
        "address": "10.10.10.4:4882",
        "role": "LEADER",
        "sql_port": 4881
      }
    ],
    "Type": "PRIMARY",
    "timestamp": 1692699586370950
  },
  "Trace": "362172a2d5de734c",
  "Server": "10.10.10.1",
  "Cost": 1
}  

查看 obconfigserver 中注册信息

  1. 查看集群详细信息

    obd cluster display test
    

    此处以 obconfigserver 所在集群部署名为 test 为例,您可执行 obd cluster list 命令查看实际部署名(Name 列对应值),并进行替换。

    输出如下:

    Connect to ob-configserver ok
    +-------------------------------------------------------------------+
    |                          ob-configserver                          |
    +---------------+-------+---------------+----------+--------+-------+
    | server        | port  | vip_address   | vip_port | status | pid   |
    +---------------+-------+---------------+----------+--------+-------+
    | 10.10.10.1    | 8080  | 10.10.10.1    | 8080     | active | 13616 |
    +---------------+-------+---------------+----------+--------+-------+
    curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig'
    Connect to observer 10.10.10.1:2881 ok
    Wait for observer init ok
    +-------------------------------------------------+
    |                   oceanbase-ce                  |
    +---------------+---------+------+-------+--------+
    | ip            | version | port | zone  | status |
    +---------------+---------+------+-------+--------+
    | 10.10.10.2    | 4.3.5.0 | 2881 | zone1 | ACTIVE |
    | 10.10.10.3    | 4.3.5.0 | 2881 | zone2 | ACTIVE |
    | 10.10.10.4    | 4.3.5.0 | 2881 | zone3 | ACTIVE |
    +---------------+---------+------+-------+--------+
    obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A
    
    cluster unique id: 253244ab-94b9-5def-9cbd-7a46e6c19621-1953714c460-00050304
    
    Connect to obproxy ok
    +-------------------------------------------------------------------+
    |                             obproxy-ce                            |
    +---------------+------+-----------------+-----------------+--------+
    | ip            | port | prometheus_port | rpc_listen_port | status |
    +---------------+------+-----------------+-----------------+--------+
    | 10.10.10.5    | 2883 | 2884            | 2885            | active |
    +---------------+------+-----------------+-----------------+--------+
    obclient -h10.10.10.1 -P2883 -uroot@proxysys -p'********' -Doceanbase -A
    obshell program health check ok
    display obshell dashboard ok
    +-----------------------------------------------------------+
    |                        obshell Dashboard                  |
    +---------------------------+------+---------------+--------+
    | url                       | user | password      | status |
    +---------------------------+------+---------------+--------+
    | http://10.10.10.2:2886    | root | '********'    | active |
    +---------------------------+------+---------------+--------+
    
    Trace ID: ea4340b6-f35a-11ef-a019-00163e4cf51e
    
  2. 查看 obconfigserve 中注册的集群

    复制执行 ob-configserver 组件下的访问信息即可查看 obconfigserver 中注册的 OceanBase 集群。您可使用 jq 命令格式化(美化)shell 命令行下 json 的输出,jq 命令可通过 sudo yum install jq 安装。

    curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig' | jq .
    

    输出如下,ObRootServiceInfoUrlList 中包含集群名为 test 的 OceanBase 集群的信息,表示该集群已被注册到 obconfigserver 中:

    {
      "Code": 200,
      "Message": "successful",
      "Success": true,
      "Data": {
        "ObProxyBinUrl": "http://10.10.10.1:8080/client?Action=GetObProxy",
        "ObProxyDatabaseInfo": {
          "DataBase": "***",
          "MetaDataBase": "http://10.10.10.1:8080/services?Action=ObRootServiceInfo&User_ID=alibaba&UID=admin&ObRegion=obdv1",
          "Password": "***",
          "User": "***"
        },
        "ObRootServiceInfoUrlList": [
          {
            "ObRegion": "test",
            "ObRootServiceInfoUrl": "http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test"
          }
        ],
        "Version": "4660b4b1f237893ba1da50a302e4c3e6"
      },
      "Trace": "07a7cac129713d00",
      "Server": "10.10.10.1",
      "Cost": 0
    }
    
  3. 查看对应 OceanBase 集群的详细信息

    再次请求命令输出中的 ObRootServiceInfoUrl 内容,可查看对应 OceanBase 集群的详细信息,示例如下:

    curl -s 'http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test' | jq .
    

    输出如下,成功解析出集群中 OBServer 节点的 IP 和端口。

    {
      "Code": 200,
      "Message": "successful",
      "Success": true,
      "Data": {
        "ObClusterId": 1,
        "ObRegionId": 1,
        "ObCluster": "test",
        "ObRegion": "test",
        "ReadonlyRsList": [],
        "RsList": [
          {
            "address": "10.10.10.4:2882",
            "role": "LEADER",
            "sql_port": 2881
          },
          {
            "address": "10.10.10.3:2882",
            "role": "FOLLOWER",
            "sql_port": 2881
          },
          {
            "address": "10.10.10.2:2882",
            "role": "FOLLOWER",
            "sql_port": 2881
          }
        ],
        "Type": "PRIMARY",
        "timestamp": 1694084002271443
      },
      "Trace": "2b2ee036276b068e",
      "Server": "10.10.10.1",
      "Cost": 3
    }
    

启动 ODP

ODP 有两种启动方式:配置 rs_list 启动、配置 obproxy_config_server_url 启动。配置 rs_list 启动时,ODP 仅可连接 rs_list 中配置的一个 OceanBase 集群;配置 obproxy_config_server_url 启动时,ODP 可连接对应 obconfigserver 中注册的所有 OceanBase 集群。

如需使用 obconfigserver 启动 ODP,可执行 obd cluster edit-config 命令打开配置文件,直接在配置文件中 obproxy-ce 组件的 global 模块下添加如下内容即可:

obproxy_config_server_url: http://10.10.10.1:8080/services?Action=GetObProxyConfig

示例中的 10.10.10.1:8080 为 obconfigserver 访问地址,您需根据实际情况进行修改。

删除集群注册信息

您可通过如下命令删去 obconfigserver 中注册的集群信息,此处以删除 test1 集群信息为例。

curl -X DELETE 'http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test1&ObClusterId=1&version=2' |jq .

示例中的 10.10.10.1:8080 为 obconfigserver 访问地址,可执行 obd cluster display 命令获取;test1 可查看待删除集群的配置文件中的 appname 值,也可连接集群后执行 SHOW PARAMETERS LIKE 'cluster'; 命令查看;ObClusterId 可查看待删除集群的配置文件中的 cluster_id 值,或参照上文 查看 obconfigserver 中注册信息 内容从集群详细信息中获取。

输出如下:

{
  "Code": 200,
  "Message": "successful",
  "Success": true,
  "Data": "success",
  "Trace": "caba1209b3a00c56",
  "Server": "10.10.10.1",
  "Cost": 4
}

再次查看 obconfigserver 中注册的集群信息。

curl -s 'http://10.10.10.1:8080/services?Action=GetObProxyConfig' |jq .

输出如下,可以看到 test1 的集群信息已不存在。

{
  "Code": 200,
  "Message": "successful",
  "Success": true,
  "Data": {
    "ObProxyBinUrl": "http://10.10.10.1:8080/client?Action=GetObProxy",
    "ObProxyDatabaseInfo": {
      "DataBase": "***",
      "MetaDataBase": "http://10.10.10.1:8080/services?Action=ObRootServiceInfo&User_ID=alibaba&UID=admin&ObRegion=obdv1",
      "Password": "***",
      "User": "***"
    },
    "ObRootServiceInfoUrlList": [
      {
        "ObRegion": "test",
        "ObRootServiceInfoUrl": "http://10.10.10.1:8080/services?Action=ObRootServiceInfo&ObCluster=test"
      }
    ],
    "Version": "4840ade8a158753aa5b9ea69ba014fc1"
  },
  "Trace": "d4b4b27fae24e7b4",
  "Server": "10.10.10.1",
  "Cost": 1
}

常见问题

启动 obconfigserver 时,报错 prepared statement not supported

问题现象

当使用 OceanBase 数据库做 metadb 时,启动 obconfigserver 报错 prepared statement not supported,查看日志如下所示。

2022-11-16T09:52:14.47799+08:00 ERROR [12258,] caller=cmd/main.go:36:func1: start configserver failed: start config server: create configserver schema: sql/schema: reading schema information Error 1235: while parameter _ob_enable_prepared_statement is disabled, prepared statement not supported
[10.10.10.1:2882] [2022-11-16 09:52:14.459102] [YB42AC1EC731-0005EB5F1D83A0A7] fields: args:="[]"

可能原因

在启动 obconfigserver 时,作为元数据库的 OceanBase 数据库未开启 prepared statement 功能。

解决方法

您可通过如下两种方法解决。

  • 方法一:在配置文件里为 obconfigserver 的 connection_url 配置项添加上 interpolateParams=true,示例如下。

    connection_url: "user:password@tcp(IP:PORT)/test?parseTime=true&interpolateParams=true"
    
  • 方法二:连接 OceanBase 集群开启 _ob_enable_prepared_statement 参数。

    • 查询是否开启 _ob_enable_prepared_statement 参数。

      obclient> select name,value,svr_ip,svr_port from oceanbase.__all_virtual_sys_parameter_stat where name='_ob_enable_prepared_statement';
      +-------------------------------+-------+---------------+----------+
      | name                          | value | svr_ip        | svr_port |
      +-------------------------------+-------+---------------+----------+
      | _ob_enable_prepared_statement | False | 10.10.10.1    |     2882 |
      +-------------------------------+-------+---------------+----------+
      1 row in set
      
    • 开启 _ob_enable_prepared_statement 参数。

      obclient> alter system set _ob_enable_prepared_statement='True';
      

通过 ODP 连接 obconfigserver 中注册的集群时报错

问题现象

通过 ODP 连接 obconfigserver 中注册的集群时报错,示例如下。

$ obclient -h10.10.10.2 -P2883 -uroot@sys#cluster -p -Doceanbase -A
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 11

可能原因

ODP 使用配置的查询 OceanBase 数据库的用户和密码无法访问 OceanBase 集群查询数据。

解决方法

您可通过如下两种方法解决。

  • 方法一:执行 obd cluster edit-config 命令查看配置文件,您需查看 OceanBase 集群配置文件中的 proxyro_password 和 ODP 配置文件中的 observer_sys_password 两个配置项设置是否保持一致。若配置文件中对应配置项不一致,将两者修改统一后根据输出执行对应命令重启,重启后即可通过 ODP 连接该集群。

  • 方法二:查询 OceanBase 数据库中是否存在 proxyro 用户

    • 使用 root 用户登录 OceanBase 数据库的 sys 租户

      obclient -h10.10.10.2 -P2881 -uroot@sys -p -Doceanbase -A
      
    • 查看集群中是否有 proxyro 用户

      select user,password from mysql.user;
      
    • 根据输出结果有如下两种处理方法

      • 结果一:集群中无 proxyro 用户,执行如下命令创建 proxyro 用户,并将密码配置为和 ODP 配置文件中 observer_sys_password 配置项一致

        create user 'proxyro' identified by '*****';
        
      • 结果二:集群中存在 proxyro 用户,执行如下命令修改 proxyro 用户密码,使其与 ODP 配置文件中 observer_sys_password 配置项一致

        alter user 'proxyro' identified by '*****';
        

本文目录

组件介绍前提条件操作步骤使用 obconfigserver注册 OceanBase 集群查看 obconfigserver 中注册信息启动 ODP删除集群注册信息常见问题启动 obconfigserver 时,报错 prepared statement not supported通过 ODP 连接 obconfigserver 中注册的集群时报错
有帮助
无帮助
反馈
AI

OceanBase

OceanBase 海扬数据库始创于 2010 年,是完全自主研发的数据库公司。2020年开始独立商业化运作,历经15年大规模核心场景验证,目前是中国数据库的领军企业之一。从分布式数据库到 AI 数据库,为企业提供安全、稳定、可扩展的数据底座,推动数据基础设施全面拥抱 AI 时代。

关于我们

关于 OceanBase最新动态资质荣誉客户专家委员会招贤纳士合作伙伴年度发布会开发者大会

资源与服务

支持与服务文档知识库软件与工具下载培训与认证在线体验数据库专题视频

社区

快速上手开发者中心博客活动学习问答GitHub

数据库百科

分布式数据库国产数据库OLTP 数据库OLAP 数据库HTAP 数据库数据库向量数据库向量检索

联系我们

服务热线:
400-109-0633
商务咨询
培训认证技术支持媒体合作
京公网安备11010802047223号京公网安备11010802047223号
京ICP备20024574号-1
合字B1.B2-20250395
网站服务协议隐私协议安全响应协议
OceanBase 版权所有 © 2026 基础资源和备案服务由阿里云提供