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. 分布式版
  4. V4.2.5
  5. 管理数据库
  6. 日志流管理
  7. 变更日志流
分布式版-V4.2.5LTS
  • V4.2.5 文档更新记录
  • What's New
  • 简介
  • 快速上手
  • 应用开发
  • 部署
  • 升级
  • 数据迁移
  • 管理数据库
    • 登录 OceanBase 租户
    • 集群管理
    • 租户管理
    • 日志流管理
      • 创建日志流
      • 变更日志流
    • 副本管理
    • 高可用
    • 安全权限
    • 备份恢复
    • 监控指标
    • 日志
    • 日常巡检
    • 性能调优
    • 问题排查
    • 应急处理
  • 参考指南
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.2.5
  5. 管理数据库
  6. 日志流管理
  7. 变更日志流

变更日志流

更新时间:2026-04-15 17:16:58

github-fill编辑
编组分享

一个日志流属于一个日志流组,在每个日志流组中,日志流的个数由 Primary Zone 中 Zone 的个数决定。从而 Primary Zone 的 Zone 列表中的每个 Zone 都可以分布着日志流组中一个日志流的 Leader。

用户可以根据需要,对日志流执行变更操作,手动均衡日志流在各个 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)间的分布。

使用限制

  • 对于 V4.2.5 版本,仅 V4.2.5 BP1 及以上版本支持变更日志流操作。

  • 在 V4.x 之前版本中,OceanBase 数据库仅支持租户的同构 Zone 模式。在 V4.2.5 版本中,从 V4.2.5 BP5 版本开始支持租户的异构 Zone 模式。其中:

    • 同构 Zone 模式下,可以修改日志流分布的 UNIT_GROUP 以及日志流的 PRIMARY_ZONE。
    • 异构 Zone 模式下,可以修改日志流分布的 UNIT_LIST 以及日志流的 PRIMARY_ZONE。

    有关同构 Zone 模式和异构 Zone 模式的详细说明,参见 数据分布。

注意事项

执行变更日志流操作前,需要注意以下事项:

  • 待变更的日志流必须存在且状态必须为 NORMAL。

  • 待变更日志流的租户其租户状态必须为 NORMAL。

    说明

    对于 V4.2.5 BP1 版本,要求待变更日志流的租户其租户状态不能是 CREATING 或者 DROPPING。

  • 在主租户上修改日志流的 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)时,要求租户的所有日志流当前没有负载均衡任务。

  • 不建议在备租户上修改日志流的 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)属性。由于备租户会自动调整日志流的 UNIT_GROUP/UNIT_LIST 属性,手动修改备租户日志流的 UNIT_GROUP/UNIT_LIST属性可能不生效。

  • 修改日志流的 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式) 时,要求目标 UNIT_GROUP/UNIT_LIST 的状态必须为 ACTIVE。

  • 修改日志流的 PRIMARY_ZONE 时,需要保证修改后的 Zone 在租户的 ZONE_LIST 中。对于日志流而言,设置日志流的 PRIMARY_ZONE 与设置租户的 PRIMARY_ZONE 略有不同,日志流仅允许设置一个 Zone,例如 z1 或z2,不能像租户一样设置 z1,z2、z1; z2 或 RANDOM。

  • 变更日志流时,要求租户级配置项 enable_rebalance 为关闭状态,即值为 False。当 enable_rebalance 为开启状态时,租户的负载均衡模块可能会自动调整日志流的 PRIMARY_ZONE 和 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)属性。

  • 只有广播日志流和系统日志流(1 号日志流)才支持指定 UNIT_GROUP 为 0。

  • 异构 Zone 模式下,用户日志流指定的 UNIT_LIST 不能为空。

步骤一:变更前检查

  1. 管理员用户登录到集群的 sys 租户或用户租户。

    连接示例如下,连接数据库时请以实际环境为准。

    obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A
    
  2. 查询待变更日志流的租户的状态,确保租户状态为 NORMAL。

    说明

    对于 V4.2.5 BP1 版本,要求待变更日志流的租户的状态不是 CREATING 或者 DROPPING。

    • 系统租户

      obclient> SELECT TENANT_ID, TENANT_NAME, STATUS, TENANT_ROLE FROM oceanbase.DBA_OB_TENANTS WHERE tenant_name = 'mq_t1';
      
    • 用户租户

      MySQL 模式
      Oracle 模式

      MySQL 模式下,执行以下命令,查询租户状态。

      obclient> SELECT TENANT_ID, TENANT_NAME, STATUS, TENANT_ROLE FROM oceanbase.DBA_OB_TENANTS;
      

      Oracle 模式下,执行以下命令,查询租户状态。

      obclient> SELECT TENANT_ID, TENANT_NAME, STATUS, TENANT_ROLE FROM SYS.DBA_OB_TENANTS;
      

    查询结果的示例如下:

    +-----------+-------------+--------+-------------+
    | TENANT_ID | TENANT_NAME | STATUS | TENANT_ROLE |
    +-----------+-------------+--------+-------------+
    |      1002 | mq_t1       | NORMAL | PRIMARY     |
    +-----------+-------------+--------+-------------+
    1 row in set
    

    根据查询结果,租户状态为 NORMAL。

  3. 查询租户的日志流当前是否有正在进行的负载均衡任务。在主租户上修改日志流的 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)时,要求租户的所有日志流当前没有负载均衡任务。

    • 系统租户

      obclient> SELECT count(*) AS task_cnt FROM oceanbase.CDB_OB_BALANCE_TASKS WHERE TENANT_ID=1002 AND (SRC_LS = 1001 or DEST_LS=1001);
      
    • 用户租户

      MySQL 模式
      Oracle 模式

      MySQL 模式下,执行以下命令,查询租户的日志流的负载均衡任务状态。

      obclient> SELECT count(*) AS task_cnt FROM oceanbase.DBA_OB_BALANCE_TASKS WHERE SRC_LS = 1001 or DEST_LS=1001;
      

      Oracle 模式下,执行以下命令,查询租户的日志流的负载均衡任务状态。

      obclient> SELECT count(*) AS task_cnt FROM SYS.DBA_OB_BALANCE_TASKS WHERE SRC_LS = 1001 or DEST_LS=1001;
      

    查询结果的示例如下:

    +----------+
    | task_cnt |
    +----------+
    |        0 |
    +----------+
    1 row in set
    

    查询结果为 0,表示租户的日志流当前无正在进行中的负载均衡任务。

  4. 查询租户下日志流的相关信息,确保待变更的日志流存在且状态为 NORMAL。如果想要变更广播日志流,还需要确认指定的日志流是否为广播日志流。

    1. 查询租户下的日志流信息。

      • 系统租户

        obclient> SELECT LS_ID, PRIMARY_ZONE LS_GROUP_ID, UNIT_LIST FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=1002 AND LS_ID != 1 AND STATUS = 'NORMAL';
        
      • 用户租户

        MySQL 模式
        Oracle 模式

        MySQL 模式下,执行以下命令,查询租户下的日志流信息。

        obclient> SELECT LS_ID, PRIMARY_ZONE, LS_GROUP_ID, UNIT_LIST FROM oceanbase.DBA_OB_LS WHERE LS_ID != 1 AND STATUS = 'NORMAL';
        

        Oracle 模式下,执行以下命令,查询租户下的日志流信息。

        obclient> SELECT LS_ID, PRIMARY_ZONE, LS_GROUP_ID, UNIT_LIST FROM SYS.DBA_OB_LS WHERE LS_ID != 1 AND STATUS = 'NORMAL';
        

      查询结果的示例如下:

      +-------+--------------+-------------+----------------+
      | LS_ID | PRIMARY_ZONE | LS_GROUP_ID | UNIT_LIST      |
      +-------+--------------+-------------+----------------+
      |  1001 | z1;z2,z3     |        1001 | 1001,1002,1003 |
      |  1002 | z2;z1,z3     |        1001 | 1001,1002,1003 |
      |  1003 | z3;z1,z2     |        1001 | 1001,1002,1003 |
      |  1004 | z1;z2,z3     |        1002 | 1004,1005,1006 |
      |  1005 | z2;z1,z3     |        1002 | 1004,1005,1006 |
      |  1006 | z3;z1,z2     |        1002 | 1004,1005,1006 |
      +-------+--------------+-------------+----------------+
      6 rows in set
      
    2. 根据查询到的日志流信息,如果需要确认日志流是否为广播日志流,还需要查看日志流 FLAG 列的信息,如果 FLAG 列的值 DUPLICATE,则表示该日志流为广播日志流。

      • 系统租户

        obclient> SELECT LS_ID, STATUS, PRIMARY_ZONE, LS_GROUP_ID, FLAG, UNIT_LIST FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=1002 AND LS_ID=1003;
        
      • 用户租户

        MySQL 模式
        Oracle 模式

        MySQL 模式下,执行以下命令,确认日志流是否为广播日志流。

        obclient> SELECT LS_ID, STATUS, PRIMARY_ZONE, LS_GROUP_ID, FLAG, UNIT_LIST FROM oceanbase.DBA_OB_LS WHERE LS_ID=1003;
        

        Oracle 模式下,执行以下命令,确认日志流是否为广播日志流。

        obclient> SELECT LS_ID, STATUS, PRIMARY_ZONE, LS_GROUP_ID, FLAG, UNIT_LIST FROM SYS.DBA_OB_LS WHERE LS_ID=1003;
        
  5. 如果要修改日志流的 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式),需要查询租户的 Unit 信息,并确保目标 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)上的数据盘剩余容量能容纳待变更的日志流。

    以下操作需要在系统租户下执行。

    1. 执行以下命令,查询租户的 Unit 信息,并确认目标 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)的状态为 ACTIVE。

      obclient> SELECT UNIT_GROUP_ID, UNIT_ID, ZONE, SVR_IP, SVR_PORT FROM oceanbase.DBA_OB_UNITS WHERE TENANT_ID=1002 AND STATUS = 'ACTIVE' ORDER BY UNIT_GROUP_ID;
      

      查询结果如下:

      +---------------+---------+------+----------------+----------+
      | UNIT_GROUP_ID | UNIT_ID | ZONE | SVR_IP         | SVR_PORT |
      +---------------+---------+------+----------------+----------+
      |          1001 |    1001 | z1   | xxx.xx.xxx.198 |     2882 |
      |          1001 |    1002 | z2   | xxx.xx.xxx.196 |     2882 |
      |          1001 |    1003 | z3   | xxx.xx.xxx.204 |     2882 |
      |          1002 |    1004 | z1   | xxx.xx.xxx.194 |     2882 |
      |          1002 |    1005 | z2   | xxx.xx.xxx.192 |     2882 |
      |          1002 |    1006 | z3   | xxx.xx.xxx.197 |     2882 |
      +---------------+---------+------+----------------+----------+
      6 rows in set
      
    2. 根据获取到的 UNIT_GROUP_ID、UNIT_ID 以及对应的 SVR_IP 和 SVR_PORT 信息,查询目标 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)对应机器的数据盘的剩余容量。

      obclient> SELECT SVR_IP, SVR_PORT, (DATA_DISK_CAPACITY - DATA_DISK_IN_USE) / 1024 / 1024 / 1024 AS REST_DATA_SIZE_IN_GB FROM oceanbase.GV$OB_SERVERS;
      

      查询结果如下:

      +----------------+----------+----------------------+
      | SVR_IP         | SVR_PORT | REST_DATA_SIZE_IN_GB |
      +----------------+----------+----------------------+
      | xxx.xx.xxx.196 |     2882 |       4.925781250000 |
      | xxx.xx.xxx.198 |     2882 |       4.875000000000 |
      | xxx.xx.xxx.204 |     2882 |       4.925781250000 |
      | xxx.xx.xxx.194 |     2882 |       4.925781250000 |
      | xxx.xx.xxx.192 |     2882 |       4.875000000000 |
      | xxx.xx.xxx.197 |     2882 |       4.925781250000 |
      +----------------+----------+----------------------+
      6 rows in set
      
    3. 查询待变更的日志流对数据盘容量的要求。

      obclient> SELECT SVR_IP, SVR_PORT, TENANT_ID, LS_ID, 
      SUM(OCCUPY_SIZE)/1024/1024/1024 AS OCCUPY_SIZE_GB, 
      SUM(REQUIRED_SIZE)/1024/1024/1024 AS REQUIRED_SIZE_GB 
      FROM __ALL_VIRTUAL_TABLET_POINTER_STATUS 
      WHERE TENANT_ID=1002 AND LS_ID=1001 
      GROUP BY SVR_IP, SVR_PORT, TENANT_ID, LS_ID 
      ORDER BY REQUIRED_SIZE_GB;
      

      查询结果如下:

      +----------------+----------+-----------+-------+----------------+------------------+
      | SVR_IP         | SVR_PORT | TENANT_ID | LS_ID | OCCUPY_SIZE_GB | REQUIRED_SIZE_GB |
      +----------------+----------+-----------+-------+----------------+------------------+
      | xxx.xx.xxx.198 |     2882 |      1002 |  1001 | 0.000007629395 |   0.000007629395 |
      | xxx.xx.xxx.196 |     2882 |      1002 |  1002 | 0.000007629395 |   0.000007629395 |
      | xxx.xx.xxx.204 |     2882 |      1002 |  1003 | 0.000007629395 |   0.000007629395 |
      | xxx.xx.xxx.194 |     2882 |      1002 |  1004 | 0.000007629395 |   0.000007629395 |
      | xxx.xx.xxx.192 |     2882 |      1002 |  1005 | 0.000007629395 |   0.000007629395 |
      | xxx.xx.xxx.197 |     2882 |      1002 |  1006 | 0.000007629395 |   0.000007629395 |
      +----------------+----------+-----------+-------+----------------+------------------+
      6 rows in set
      

      查询结果中,OCCUPY_SIZE_GB 表示 Tablet 的实际数据占用的磁盘空间大小;REQUIRED_SIZE_GB 表示存放 Tablet 所需的磁盘空间大小。将 OCCUPY_SIZE_GB 和 REQUIRED_SIZE_GB 与目标 UNIT_GROUP/UNIT_LIST 上数据盘的剩余容量进行对比,如果 OCCUPY_SIZE_GB 和 REQUIRED_SIZE_GB 的值均小于目标 UNIT_GROUP/UNIT_LIST 上数据盘的剩余容量,则符合要求。

  6. 如果要修改日志流的 PRIMARY_ZONE,需要确保修改后的 Zone 在租户的 ZONE_LIST 中。租户的 ZONE_LIST 可以通过租户的 Locality 信息来确认。

    • 系统租户

      obclient> SELECT PRIMARY_ZONE, LOCALITY FROM oceanbase.DBA_OB_TENANTS WHERE tenant_name = 'mq_t1';
      
    • 用户租户

      MySQL 模式
      Oracle 模式

      MySQL 模式下,执行以下命令,查询租户状态。

      obclient> SELECT PRIMARY_ZONE, LOCALITY FROM oceanbase.DBA_OB_TENANTS;
      

      Oracle 模式下,执行以下命令,查询租户状态。

      obclient> SELECT PRIMARY_ZONE, LOCALITY FROM SYS.DBA_OB_TENANTS;
      

    查询结果的示例如下:

    +--------------+------------------------------------+
    | PRIMARY_ZONE | LOCALITY                           |
    +--------------+------------------------------------+
    | RANDOM       | FULL{1}@z1, FULL{1}@z2, FULL{1}@z3 |
    +--------------+------------------------------------+
    

    示例结果中,租户 mq_t1 的 LOCALITY 为 FULL{1}@z1, FULL{1}@z2, FULL{1}@z3,表示租户的 ZONE_LIST 包含 z1、z2、z3 三个 Zone。

  7. 检查配置项 enable_rebalance 的值是否为 False。如果值为 True,执行日志流变更操作后,租户的负载均衡模块可能会自动调整日志流的 PRIMARY_ZONE 和 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)属性。

    obclient> SHOW PARAMETERS LIKE '%enable_rebalance%';
    

    如果值不为 False,则需要执行以下命令,将配置项 enable_rebalance 的值设置为 False。

    • 系统租户

      obclient> ALTER SYSTEM SET enable_rebalance = 'False' TENANT = mq_t1;
      
    • 用户租户

      obclient> ALTER SYSTEM SET enable_rebalance = 'False';
      

步骤二:变更日志流

确保各项检查符合要求后,根据业务情况,选择合适的操作,变更日志流。

系统租户修改用户租户的日志流

  1. 使用 root 用户登录到集群的 sys 租户。

    连接示例如下,连接数据库时请以实际环境为准。

    obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A
    
  2. 变更日志流。

    系统租户下,修改用户租户日志流的 SQL 语句如下:

    ALTER SYSTEM MODIFY LS [=] ls_id [UNIT_GROUP [=] unit_group_id] | [UNIT_LIST [=] (unit_id_list) ][,PRIMARY_ZONE [=] 'zone_name'] TENANT [=] 'tenant_name';
    

    语句相关说明如下:

    • ls_id:待变更的日志流的 ID。

    • unit_group_id:指定待变更的日志流的目标 Unit Group 的 ID,仅适用于同构 Zone 模式的租户。unit_group_id 可在系统租户下,通过查询 oceanbase.DBA_OB_UNITS 视图获取。

    • unit_id_list:指定待变更的日志流分布的目标 Unit 列表,仅适用于异构 Zone 模式的租户。unit_id_list 可在系统租户下,通过查询 oceanbase.DBA_OB_UNITS 视图获取,每个 Zone 不超过一个 Unit。

    • zone_name:目标 Zone 的名称。

    • tenant_name:待变更日志流的目标租户的名称。

    • 执行变更日志流的操作时,需要至少修改日志流的其中一个属性 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)或 PRIMARY_ZONE。

    示例如下:

    同构 Zone 模式
    异构 Zone 模式
    • 仅修改日志流的 UNIT_GROUP

      修改租户 mq_t1 的 1002 号日志流的位置到 1002 号的 UNIT_GROUP。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_GROUP 1002 TENANT = mq_t1;
      
    • 仅修改日志流的 PRIMARY_ZONE

      修改租户 mq_t1 的 1002 号日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 PRIMARY_ZONE 'z1' TENANT = mq_t1;
      
    • 同时修改日志流的 UNIT_GROUP 和 PRIMARY_ZONE

      修改租户 mq_t1 的 1002 日志流的位置到 1002 的 UNIT_GROUP,并修改日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_GROUP 1002, PRIMARY_ZONE 'z1' TENANT = mq_t1;
      
    • 仅修改日志流的 UNIT_LIST

      修改租户 mq_t1 的 1002 号日志流的位置到 1004、1005、1006 的 UNIT_LIST 上。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_LIST (1004,1005,1006) TENANT = mq_t1;
      
    • 仅修改日志流的 PRIMARY_ZONE

      修改租户 mq_t1 的 1002 号日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 PRIMARY_ZONE 'z1' TENANT = mq_t1;
      
    • 同时修改日志流的 UNIT_LIST 和 PRIMARY_ZONE

      修改租户 mq_t1 的 1002 日志流的位置到 1004、1005、1006 的 UNIT_LIST 上,并修改日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_LIST (1004,1005,1006), PRIMARY_ZONE 'z1' TENANT = mq_t1;
      
  3. 检查日志流是否变更成功。

    obclient> SELECT LS_ID, PRIMARY_ZONE, LS_GROUP_ID, UNIT_LIST FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=1002 AND LS_ID = 1002 AND STATUS = 'NORMAL';
    

    查询结果的示例如下:

    +-------+--------------+-------------+----------------+
    | LS_ID | PRIMARY_ZONE | LS_GROUP_ID | UNIT_LIST      |
    +-------+--------------+-------------+----------------+
    |  1002 | z1;z2,z3     |        1001 | 1004,1005,1006 |
    +-------+--------------+-------------+----------------+
    

    对比变更前与变更后的日志流,如果日志流对应的 UNIT_LIST(同构 Zone 模式下,对应 UNIT_GROUP_ID 相同的一组 Unit)、PRIMARY_ZONE 等与预期一致,则表示变更成功。

用户租户修改本租户的日志流

  1. MySQL 模式租户或 Oracle 模式租户的租户管理员连接数据库。

    连接示例如下,连接数据库时请以实际环境为准。

    obclient -h10.xx.xx.xx -P2883 -uroot@mq_t1#obdemo -p***** -A
    
  2. 变更日志流。

    用户租户修改日志流的 SQL 语句如下:

    ALTER SYSTEM MODIFY LS [=] ls_id [UNIT_GROUP [=] unit_group_id] | [UNIT_LIST [=] (unit_id_list) ][,PRIMARY_ZONE [=] 'zone_name'];
    

    语句相关说明如下:

    • ls_id:待变更的日志流的 ID。

    • unit_group_id:指定待变更的日志流的目标 Unit Group 的 ID,仅适用于同构 Zone 模式的租户。unit_group_id 可在系统租户下,通过查询 oceanbase.DBA_OB_UNITS 视图获取。

    • unit_id_list:指定待变更的日志流分布的目标 Unit 列表,仅适用于异构 Zone 模式的租户。unit_id_list 可在系统租户下,通过查询 oceanbase.DBA_OB_UNITS 视图获取,每个 Zone 不超过一个 Unit。

    • zone_name:目标 Zone 的名称。

    • 执行变更日志流的操作时,需要至少修改日志流的其中一个属性 UNIT_GROUP(同构 Zone 模式)/UNIT_LIST(异构 Zone 模式)或 PRIMARY_ZONE。

    示例如下:

    同构 Zone 模式
    异构 Zone 模式
    • 仅修改日志流的 UNIT_GROUP

      修改 1002 号日志流的位置到 1002 号的 UNIT_GROUP。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_GROUP 1002;
      
    • 仅修改日志流的 PRIMARY_ZONE

      修改 1002 号日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 PRIMARY_ZONE 'z1';
      
    • 同时修改日志流的 UNIT_GROUP 和 PRIMARY_ZONE

      修改 1002 日志流的位置到 1002 的 UNIT_GROUP,并修改日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_GROUP 1002, PRIMARY_ZONE 'z1';
      
    • 仅修改日志流的 UNIT_LIST

      修改 1002 号日志流的位置到 1004、1005、1006 的 UNIT_LIST 上。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_LIST (1004,1005,1006);
      
    • 仅修改日志流的 PRIMARY_ZONE

      修改 1002 号日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 PRIMARY_ZONE 'z1';
      
    • 同时修改日志流的 UNIT_LIST 和 PRIMARY_ZONE

      修改 1002 日志流的位置到 1004、1005、1006 的 UNIT_LIST 上,并修改日志流 Leader 的第一优先级到 z1。

      obclient> ALTER SYSTEM MODIFY LS 1002 UNIT_LIST (1004,1005,1006), PRIMARY_ZONE 'z1';
      
  3. 检查日志流是否变更成功。

    obclient> SELECT LS_ID, PRIMARY_ZONE, LS_GROUP_ID, UNIT_LIST FROM oceanbase.DBA_OB_LS WHERE LS_ID = 1002 AND STATUS = 'NORMAL';
    

    查询结果的示例如下:

    +-------+--------------+-------------+----------------+
    | LS_ID | PRIMARY_ZONE | LS_GROUP_ID | UNIT_LIST      |
    +-------+--------------+-------------+----------------+
    |  1002 | z1;z2,z3     |        1001 | 1004,1005,1006 |
    +-------+--------------+-------------+----------------+
    

    对比变更前与变更后的日志流,如果日志流对应的 UNIT_LIST(同构 Zone 模式下,对应 UNIT_GROUP_ID 相同的一组 Unit)、PRIMARY_ZONE 等与预期一致,则表示变更成功。

本文目录

使用限制注意事项步骤一:变更前检查步骤二:变更日志流系统租户修改用户租户的日志流用户租户修改本租户的日志流
有帮助
无帮助
反馈
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 基础资源和备案服务由阿里云提供