首批通过分布式安全可靠测评,为关键业务系统打造
升级验证
更新时间:2026-04-07 10:55:47
升级版本检查
完成 OceanBase 开发者中心(OceanBase Developer Center,ODC)的升级后,您可以在浏览器中通过宿主机(高可用部署时是 Nginx 代理所在的宿主机)的 IP 和端口号(http://IP:PORT 或 http://DOMAIN:PORT)访问 Web 版 ODC。
访问并登录 ODC 后,在连接列表页面的右上角,选择帮助中心,单击下拉列表中的 关于开发者中心 标签,在弹出的窗口中您可以获得当前应用的版本号以确定升级是否成功。更多关于 Web 版 ODC 的使用操作,请参见 ODC 用户指南(Web 版 ODC)。

升级数据检查
在 ODC 版本升级后,因为版本迭代更新,可能导致部分定时任务展示内容有所差异。可以通过登录元数据库,执行 SQL 进行订正,具体方式如下。
订正数据:作业执行记录状态订正
工单迁移过程中非终态状态全部迁移为「CANCELED」,导致工单和迁移后的任务状态不一致。执行以下 sql 订正状态。
DELIMITER //
CREATE PROCEDURE batch_update_schedule_task()
BEGIN
DECLARE batch_size INT DEFAULT 1000;
DECLARE min_id BIGINT DEFAULT 0;
DECLARE max_id BIGINT DEFAULT 0;
DECLARE max_table_id BIGINT;
DECLARE updated_rows INT DEFAULT 0;
-- 获取最大ID
SELECT IFNULL(MAX(id), 0) INTO max_table_id FROM schedule_task WHERE job_id < 0;
my_loop: WHILE min_id < max_table_id DO
SET max_id = min_id + batch_size;
-- 执行批量更新
UPDATE schedule_task st
JOIN (
SELECT
-fint.flow_instance_id AS job_id,
tt.status AS task_status
FROM flow_instance_node_task fint
JOIN task_task tt ON tt.id = fint.task_task_id
WHERE fint.flow_instance_id IN (
SELECT -job_id
FROM schedule_task WHERE job_id < 0
)
) source_data ON st.job_id = source_data.job_id
SET st.status = source_data.task_status
WHERE st.status != source_data.task_status
AND st.id > min_id
AND st.id <= max_id;
-- 可选:获取影响行数,如需打印日志
-- SELECT ROW_COUNT() INTO updated_rows;
SET min_id = max_id;
END WHILE my_loop;
END //
DELIMITER ;
CALL batch_update_schedule_task();
隐藏数据:隐藏已迁移至作业执行记录中的工单
ODC V4.4.1 版本以前 SQL 计划和分区计划的子任务为数据库变更,展示在工单模块「数据库变更」,现在已迁移至作业模块中的「执行记录」中,如果不希望历史数据展示在工单中,则执行以下 SQL 进行订正。
DELIMITER //
CREATE PROCEDURE batch_update_flow_instance_node_task()
BEGIN
DECLARE batch_size INT DEFAULT 10000;
DECLARE last_id BIGINT DEFAULT 0;
DECLARE max_id BIGINT;
SELECT MAX(id) INTO max_id FROM flow_instance_node_task;
WHILE last_id < max_id DO
-- SQL_PLAN
UPDATE flow_instance_node_task fint
JOIN task_task tt ON tt.id = fint.task_task_id
SET fint.task_type = 'SQL_PLAN'
WHERE tt.task_type = 'ASYNC'
AND fint.flow_instance_id IN (
SELECT -job_id
FROM schedule_task
WHERE job_group = 'SQL_PLAN' AND job_id < 0
)
AND fint.id > last_id AND fint.id <= last_id + batch_size;
-- PARTITION_PLAN
UPDATE flow_instance_node_task fint
JOIN task_task tt ON tt.id = fint.task_task_id
SET fint.task_type = 'PARTITION_PLAN'
WHERE tt.task_type = 'ASYNC'
AND fint.flow_instance_id IN (
SELECT -job_id
FROM schedule_task
WHERE job_group = 'PARTITION_PLAN' AND job_id < 0
)
AND fint.id > last_id AND fint.id <= last_id + batch_size;
SET last_id = last_id + batch_size;
END WHILE;
END //
DELIMITER ;
CALL batch_update_flow_instance_node_task();
检查逻辑库变更历史数据
升级后逻辑库变更工单的历史数据将不支持查看,您可以从元数据库中获取历史变更数据。
前提条件
- 已安装 OBClient 客户端。安装详细操作,请参见 下载 OceanBase 客户端。
操作步骤
获取历史数据查看 执行脚本。
登录源数据库所在服务器,执行该脚本。
$sh logical_db_view.sh 逻辑库变更任务信息查看工具 用法:luojiku.sh<命令>[参数...] 注意:所有命令使用的ID都是schedule_schedule表的id 命令: list 列出所有逻辑库变更任务(最近20条) detail <schedule_id> 查看任务详情(使用 schedule_schedule.id) all <schedule_id> 查看任务所有物理库的执行情况 physical <schedule_id> <db_id> 查看指定物理库的执行详情 help 显示此帮助信息 环境变量: ODC_DATABASE_HOST 数据库主机(默认:localhost) ODC_DATABASE_PORT 数据库端口(默认:2883) ODC_DATABASE_NAME 数据库名称(默认:odc) ODC_DATABASE_USERNAME 数据库用户名(默认:root) ODC_DATABASE_PASSWORD 数据库密码 示例: logical_db_view.sh list logical_db_view.sh detail 123 #使用 schedule_schedule.id = 123 logical_db_view.sh all 123 logical_db_view.sh physical 123 456 注意:本脚本使用obclient客户端工具连接OceanBase数据库如果出现如下数据库连接报错,需要先配置环境变量,保证数据库连接信息准确。

环境变量配置命令格式如下,按照元数据实际配置信息填写:
export ODC_DATABASE_HOST=xx.xx.xx.xx export ODC_DATABASE_PORT=2883 export ODC_DATABASE_NAME=odc export ODC_DATABASE_USERNAME=root export ODC_DATABASE_PASSWORD=********数据库连接成功后,可执行如下命令进行逻辑库变更历史数据查看。下文介绍一些常用使用场景。
列出所有逻辑库变更任务:
sh logical_db_view.sh list。
查看逻辑库任务详情:
sh logical_db_view.sh detail 532。
查看物理库执行情况:
sh logical_db_view.sh all 532。
根据物理库ID查看具体执行详情:
sh logical_db_view.sh physical 532 55658。