---
title: "OceanBase 集群常见问题 - 云平台 OCP V4.2.1 | OceanBase 文档中心"
description: "OceanBase 集群常见问题 本节描述 OceanBase 集群管理相关的常见问题。 功能实现 Q1: X86 环境的 OCP 能管理 ARM 架构的 OceanBase 集群吗? A: OCP V2.5.2 以及上版本支持。 Q2: V1.4.79 的 OceanBase 集群，可以使用什么版本的 OCP 进行…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lJTmRZ61jSUAAAAAAAAAAAAADiGDAQ/original) 云平台 OCPV 4.2.1

# OceanBase 集群常见问题

更新时间：2023-11-21 09:58:00

[编辑](https://github.com/oceanbase/ocp-doc/edit/V4.2.1/zh-CN/2000.faq/300.common-o-m-problems/300.oceanbase-cluster-faq.md)  

本节描述 OceanBase 集群管理相关的常见问题。

## 功能实现

**Q1: X86 环境的 OCP 能管理 ARM 架构的 OceanBase 集群吗?**

A: OCP V2.5.2 以及上版本支持。

**Q2: V1.4.79 的 OceanBase 集群，可以使用什么版本的 OCP 进行部署？**

A: 当前 OCP 版本均可支持，建议使用最新版本的 OCP。

**Q3: OCP 是否支持 OceanBase 主集群为 X86 ，备集群为 ARM 的部署规划？**

A: OCP V3.1.0 及以上版本支持。

## OceanBase 集群管理

**Q1: 主备集群的延迟在哪里查看？**

A：进入到集群概览，切换到集群拓扑图，在图上查看主备集群之间的延迟。

**Q2: 任务报错 `machine resource is not enough to hold a new unit` ，应如何处理？**

A：机器资源不足，导致副本迁移类的运维任务无法正常进行，可添加主机解决问题。

**Q3: 请问 OCP-Agent 自动清理 observer.log 的清理策略是什么？**

A： 当空间利用率达到 80% 时，将只保留最近的 100 个日志记录。

**Q4: 集群的拓扑图状态是如何获取的？**

A: 状态是根据 MetaDB 中的 ob_server 表记录获取。

**Q5: OCP 的会话总数是如何统计出来的？**

A: 从 OceanBase 内部表 __all_virtual_processlist 中查询。

**Q6: 什么是非活跃会话，管理机制是什么？**

A: 建立连接后一段时间没有操作的会话是非活跃会话，默认将 28800 秒没有操作的会话标记成 inactive 状态。依赖客户端的超时释放，OceanBase 不会主动释放连接。

**Q7: inactive 的会话会占用 Unit 的最大连接数吗？**

A: Unit 的最大连接数不会影响真实连接数分配，真正有用的是 OBServer 的连接数上限，OCP 使用 Unit 连接数来做告警。

**Q8: OCP 与 OceanBase 不在同一个网段应打通哪些端口？**

A: 详见 [组件监听端口列表](https://www.oceanbase.com/docs/common-ocp-1000000000348017) 。

**Q9: 有过失败的任务的集群如何快速删除？**

A: 修改 MetaDB 的 ob_cluster 表中集群的状态 `Operating` 为 `NORMAL` 。

**Q10: OceanBase 集群健康巡检的巡检结果描述中提示 `区副本数：unknown > 100000，严重`，什么意思？**

A: unknown 表示获取分区数失败。建议按如下顺序定位问题：

1. 查看 OceanBase 集群内 **租户管理** 界面中的 **容量_分区数量** 图中是否显示相关数据，结果未显示。
 2. 查看对应主机的 **进程列表** 中进程是否正常，发现 obstat 和 logtailer 进程异常停止。
 3. 可能是域名解析有问题，主机无法访问数据库，导致 obstat 和 logtailer 启动失败。

建议在报错主机的 `/etc/resolve.conf` 配置域名服务器地址后再查看。

**Q11: OCP 删除集群不能执行也不能放弃，什么原因？**

A: 用户黑屏删除了 OBServer 集群的主机，导致该主机异常离线且 MetaDB 中保存的集群信息与 OceanBase 集群里不一致。OceanBase 集群中有个别 OBServer 离线的情况下，不建议执行强制删除集群。这种情况下建议联系技术支持工程师手工修正 MetaDB 中的相关数据。

## OceanBase 集群部署

**Q1: 新建集群报错 illegal argument exception ，怎么解决？**

A: 请检查 RPM 包是否重名。

**Q2: 安装 OceanBase 在确认提交信息时，界面报错 `发生一个未知的错误，错误原因：{0}，错误信息：{1}，请联系管理员`， 什么原因？**

A: 检查使用的 OceanBase 软件包包名是否被修改过。

**Q3: 主集群为 X86，打算添加的备集群的主机为 AArch64，部署的备集群使用了 X86 软件包，是否可行？**

A：异构主备集群存在风险，不建议异构部署。

**Q4: 使用 OCP 创建集群，报错 `zone 优先级不正确`，什么原因？**

A: 第一优先级的 Zone 所对应的 Region 下，至少要有两个 Zone 存在。

**Q5: 使用 OCP 创建备库，是否这个创建备库的任务结束时整个数据的主备同步就结束了？**

A: 目前创建备库任务的时间与备库开始同步的时间没有直接关系。但只有创建备库任务完成，这个备库才能对外提供服务。

**Q6: OCP V2.5.x 版本创建主备库时，tenant 和 table 的 primary_zone 都设置为 RANDOM，执行任务时却报错 `Add cluster not allowed` 并提示 `CHECK PRIMARY ZONE OR LOCALITY CONFIG` ， 什么原因？**

A：用户表配置了 primary_zone 或 locality 。参考如下方法修改：

1. 在系统租户的 OceanBase 库中查看哪些表配置 primary_zone 或 locality。

   ```sql
   select table_id,tenant_id,primary_zone,locality,table_name from __all_virtual_table；

   ```

   记录配置了 primary_zone 或 locality 的表名为 t ，租户 id 为 1001 。
 2. 在对应租户的库中执行 `alter table t set primary_zone = default;` 取消 table 级别 Primary Zone 的设置。
 3. 在对应租户的库执行如下语句，取消表级别 locality 的设置。

   ```sql
   select locality from __all_tenant where tenant_id = 1001;     #记录查询结果为 F@zone1,F@zone2,F@zone3 。
   alter table t set locality = 'F@zone1,F@zone2,F@zone3'；

   ```

**Q7: 私有云同一网络环境中，已有一套创建了 OceanBase 的 OCP ，在部署一套 OCP 并在其上创建 OceanBase V2.2.7x，除了 OCP 部署时需要修改 `/root/t-oceanbase-antman/obcluster.conf` 中 `cluster_id` 的默认值为 `100000` ，业务集群创建时，还有其他需要修改的吗？**

A: 使用 OCP 创建 OceanBase 集群时，clusterid 和 clustername 的值要保持唯一。

## OceanBase 集群接管

**Q1: 导入集群时，主机准备任务报 `python 依赖不存在`，如何解决？**

A：主机未通过装机模板来安装，手动安装 python 脚本。建议走正规的装机模板安装。

**Q2: 使用 OCP V2.5.x 接管集群时，报错 `error code:11042 接管集群预检查失败，失败原因：OBServer 节点检查不通过`，怎么解决？**

A: 建议使用预检查接口查看 OBServer 节点检查不通过的具体原因。调用接口方法如下：

```shell
curl -X POST --user admin:xxx \
  -H "Content-Type:application/json" \
  -d '{"rootSysPassword":"xxxxx",                   #必填，root@sys密码。
         "address":"xxxxx",                                 #必填，集群连接地址。
         "port":2888,                                           #必填，集群连接端口。
         "connectionMode": "proxy"                  #选填，连接模式，可选值 direct | proxy，缺省为direct。
         "clusterName": "xxx",                            #选填，当连接模式为 proxy 时必填。
         "obClusterId": xxx                                 #选填，当连接模式为 proxy 且被接管集群为备集群时必填。
        }' \
  "http://example.com:8080/api/v2/ob/clusters/takeOverPreCheck"

```

**Q4：OCP 接管其他 OCP 部署的集群注意事项？**

A：您在 OCP 接管其他 OCP 部署的集群应注意以下几点：

- 需要确认业务访问待接管 OceanBase 集群的方式，确认接管集群对业务的影响。
 - 需要将接管的集群从其他 OCP 中迁出，或者停掉其他的 OCP。
 - 单 OCP 场景下接管集群时，需先接管 OceanBase 主集群，再接管 OceanBase 备集群。
 - OCP 多集群场景下接管集群时，需先在某一 OCP 中接管 OceanBase 主集群后，再通过任一 OCP 接管 OceanBase 备集群。

## OceanBase 集群升级

**Q1: 主备集群应该如何升级？**

A：在主集群和备集群的概览页面，右上角都有 **升级版本** 的按钮。无论是主集群还是备集群的升级入口，都可以对整个主备集群发起升级操作。

**Q2: OCP 升级 OceanBase 集群时，刷新 schema info 报错 `timeout` ，如何解决？**

A：执行如下命令，查看 schema 和 version:

```code
select tenant_id, refreshed_schema_version from __all_virtual_server_schema_info " + " where svr_ip = '%s' and svr_port = %d and refreshed_schema_version >
select max(value) value from oceanbase.__all_virtual_sys_parameter_stat where name = 'min_observer_version'

```

确认无误后手工重试 `CheckRefreshSchemaTask`。

**Q3: 升级 OceanBase 集群时 execute upgrade checker 报错，是为什么？**

A：可能是 RPM 包下载超时，建议重试。

**Q4: 升级 OceanBase V2.2.71 版本到 OceanBase V2.2.74 ，报错 `没有对应的版本节点`，什么原因？**

A: OCP 机器上的 `/home/admin/ocp-server/etc/oceanbase_upgrade_dep.yml` 文件定义的升级路径不完整，建议版本信息补充至 OceanBase V2.2.74，如下：

```yaml
#以上省略
- version: 2.2.70
  can_be_upgraded_to:
      - 2.2.71
- version: 2.2.71
  can_be_upgraded_to:
      - 2.2.72
- version: 2.2.72
  can_be_upgraded_to:
      - 2.2.73
- version: 2.2.73         # 最后一个版本，需要定义一下，否则同版本升级会找不到路径，以后最后一个版本同样需要这样定义   欣煦
  can_be_upgraded_to:
      - 2.2.74

```

**Q5: OceanBase 集群升级路径确认界面中提示 `需要替换 binary` 是什么意思？**

A: 替换 binary 是指替换 OBServer 节点，V2.2.72 和 V2.2.73 只需运行 pre/post 脚本，不需要替换 OBServer 节点的 binary 文件。此处提示仅作为提示，不需要用户手工操作，升级任务会自动完成替换。

**Q6: 升级 OceanBase 集群，报错 `[alter system stop zone ?]; SQL state [25000]; error code [4012]; Statement is timeout` ，如何解决？**

A: 建议重试。

**Q7: OceanBase 集群从 V2.2.30 版本升级至 V2.2.50 版本失败，什么原因？**

A: OceanBase 升级依赖的 V2.2.40 版本的 RPM 包没有上传，建议上传后重试。

**Q8: 客户需要升级小版本，然后再升级大版本，OCP 是否支持同版本升级？**

A: 支持，但小版本号需不一样。

**Q9: 使用 OCP 升级 OceanBase 集群，执行到 `Install rpm` 步骤时有一台机器失败，报错 `Cannot allocate memory`。**

A: 内存不足，建议根据实际情况选择清理内存或者扩容。

**Q10: 升级 OceanBase 集群时 `upgrade_checker.py` 报错 `MyError: "(1, Decimal('1.0000')) check_logonly_replica_unit failed, not found log_type resource_pool for this tenant` ，什么原因？**

A: 检查待升级 OceanBase 集群下是否有日志型副本，如果有建议将日志型副本替换成 F 副本。

**Q11: 如果 OceanBase 集群除了 sys、ocp-meta、ocp-monitor 租户外，还有 omsmeta 和 odpmeta 租户，应该如何升级？**

A: 联系 OceanBase 技术支持人员获取升级手册正常执行升级，升级某集群不会影响到其他应用的租户。

## OceanBase 集群监控

**Q1: OCP 创建集群时，ocp_monitor 用户是否会被自动创建，该用户默认密码是什么？**

A: ocp_monitor 用户会被自动创建，但该用户默认密码仅监控时由系统调用该用户时使用，用户无需感知。

**Q2: 集群里性能监控界面的事务日志耗时是指 SQL 的平均耗时还是事务的平均耗时？**

A: 事务。

## 集群巡检

**Q1: OceanBase 的 `/data/1` 数据盘默认最大可占用主机磁盘的 90%，而集群健康巡检里的主机磁盘使用率阈值设置为 85%，是否合理？**

A: 健康巡检时会忽略 OceanBase 数据盘的巡检。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
