mysql> select * from oceanbase.dba_ob_zones;
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| ZONE | CREATE_TIME | MODIFY_TIME | STATUS | IDC | REGION | TYPE |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| zone1 | 2025-07-11 16:45:32.610645 | 2025-07-19 22:32:42.072684 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
| zone2 | 2025-07-11 16:45:32.611700 | 2025-07-22 09:32:52.408101 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
| zone3 | 2025-07-11 16:45:32.611700 | 2025-07-22 09:32:57.479488 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
3 rows in set (0.03 sec)
但是ocp中看到的zone信息如下:
点击右边的编辑,如下:
如何修改呢?
背景:
我向zone1中再添加一台observer时,初始化的时候报错,如下:
2025-07-24 17:44:46.390 WARN 39220 --- [manual-subtask-executor15,4e9155f8e9a756c3,3e6cf61a0a868594] c.o.ocp.common.lang.pattern.Retry : failed to execute target runnable, errMsg:regionName not found, zoneName=zone1, regionName=HANGZHOU
2025-07-24 17:44:46.392 ERROR 39220 --- [manual-subtask-executor15,4e9155f8e9a756c3,3e6cf61a0a868594] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : regionName not found, zoneName=zone1, regionName=HANGZHOU
java.lang.IllegalArgumentException: regionName not found, zoneName=zone1, regionName=HANGZHOU
at org.apache.commons.lang3.Validate.isTrue(Validate.java:158)
at com.oceanbase.ocp.obops.internal.cluster.ClusterSyncServiceImpl.validateIdcAndRegionForZone(ClusterSyncServiceImpl.java:1016)
at com.oceanbase.ocp.obops.internal.cluster.ClusterSyncServiceImpl.lambda$validateZones$17(ClusterSyncServiceImpl.java:1007)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at com.oceanbase.ocp.obops.internal.cluster.ClusterSyncServiceImpl.validateZones(ClusterSyncServiceImpl.java:1007
2 个赞
咖啡哥
2025 年7 月 24 日 18:22
#3
1 修改集群的zone信息
select * from dba_ob_zones;
ALTER SYSTEM MODIFY ZONE zone1 SET REGION = ‘HANGZHOU’, IDC = ‘idc1’;
select * from dba_ob_zones;
2 登录ocp元数据库,修改相关元数据
select * from compute_idc;
select * from compute_region;
select id,name,inner_ip_address,idc_id from compute_host;
修改ocp中的idc及region信息
select id,name,inner_ip_address,idc_id from compute_host where name like ‘主机名%’;
update compute_host set idc_id=(select id from compute_idc where name=‘idc1’) where name like ‘主机名%’;
1 个赞
很奇怪,为什么我这里显示是已经修改完的,但是ocp的metadb存储的元数据没有修改到!
不应该啊
1 个赞
旭辉
2025 年7 月 24 日 19:42
#5
OCP是哪个版本?这个OB集群是哪个版本?
show variables like '%version_comment%'
1 个赞
ocp:4.3.5
ob:4.2.1.8
mysql> show variables like '%version_comment%';
+-----------------+------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+-----------------+------------------------------------------------------------------------------------------------------------------+
| version_comment | OceanBase_CE 4.2.1.8 (r108000022024072217-3149c25ca2dadbb7707686ad02a1367b1b43e0b5) (Built Jul 23 2024 02:01:58) |
+-----------------+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
1 个赞
旭辉
2025 年7 月 25 日 09:31
#7
这个zone1 zone2 zone3 是OCP的metadb集群吗?你这里是要往这些zone里面添加机器?
1 个赞
metadb的集群zone1 zone2 zone3
如下:
metadb 部署后就没有动过
业务集群:
修改过region和idc属性,如下:
但是ocp看到的如下:
在向业务集群添加observer的时候报错,zone1显示有2个observer,但是其中一个状态有问题。
旭辉
2025 年7 月 25 日 10:27
#12
region和idc 都不对,是接管过来的?接管正常吗?业务集群是什么版本?
都是4.2.1.8
ocp和metadb是用obd web部署的
业务集群的observer和odp都是用ocp管理的
旭辉
2025 年7 月 25 日 10:33
#14
业务集群是OCP直接部署的?部署后就idc和region 就喝OCP上展示的不一致吗?
是的,手动在命令窗口 alter system修改后,展示不一致
旭辉
2025 年7 月 25 日 10:51
#16
修改之前一致吗,是黑屏在业务集群修改了 idc=idc1,region=HANGZHOU 吗?
没有黑屏修改之前,估计是一致的,都是默认的
mysql> select * from oceanbase.dba_ob_zones;
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| ZONE | CREATE_TIME | MODIFY_TIME | STATUS | IDC | REGION | TYPE |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| zone1 | 2025-07-11 16:45:32.610645 | 2025-07-19 22:32:42.072684 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
| zone2 | 2025-07-11 16:45:32.611700 | 2025-07-19 22:32:51.766659 | ACTIVE | idc2 | HANGZHOU | ReadWrite |
| zone3 | 2025-07-11 16:45:32.611700 | 2025-07-21 18:34:53.372976 | ACTIVE | idc3 | HANGZHOU | ReadWrite |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
3 rows in set (0.00 sec)
mysql> alter system modify zone "zone2" idc=idc1;
Query OK, 0 rows affected (0.01 sec)
mysql> alter system modify zone "zone3" idc=idc1;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from oceanbase.dba_ob_zones;
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| ZONE | CREATE_TIME | MODIFY_TIME | STATUS | IDC | REGION | TYPE |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
| zone1 | 2025-07-11 16:45:32.610645 | 2025-07-19 22:32:42.072684 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
| zone2 | 2025-07-11 16:45:32.611700 | 2025-07-22 09:32:52.408101 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
| zone3 | 2025-07-11 16:45:32.611700 | 2025-07-22 09:32:57.479488 | ACTIVE | idc1 | HANGZHOU | ReadWrite |
+-------+----------------------------+----------------------------+--------+------+----------+-----------+
3 rows in set (0.00 sec)
都是以这种方式修改的
旭辉
2025 年7 月 25 日 11:25
#18
黑屏改确实会造成不一致,这个查询下
– 查询 OCP metadb 维护的 IDC 和 Region 信息
SELECT r.`name` AS region, i.`name` AS idc
FROM compute_region r JOIN compute_idc i
ON r.id=i.region_id;
mysql> use meta_database;
Database changed
mysql> SELECT r.`name` AS region, i.`name` AS idc
-> FROM compute_region r JOIN compute_idc i
-> ON r.id=i.region_id;
+---------------+-------------+
| region | idc |
+---------------+-------------+
| deault_region | default_idc |
+---------------+-------------+
1 row in set (0.00 sec)
mysql> select * from compute_region;
+----+-----------------+---------------------+---------------------+-------------+
| id | name | create_time | update_time | description |
+----+-----------------+---------------------+---------------------+-------------+
| 1 | OCP_META_REGION | 2025-07-11 12:17:44 | 2025-07-11 12:17:44 | NULL |
| 2 | deault_region | 2025-07-11 12:23:18 | 2025-07-11 12:23:18 | NULL |
+----+-----------------+---------------------+---------------------+-------------+
2 rows in set (0.00 sec)
mysql> select * from compute_idc;
+----+-------------+-------------+---------------------+---------------------+-----------+
| id | name | description | create_time | update_time | region_id |
+----+-------------+-------------+---------------------+---------------------+-----------+
| 1 | default_idc | NULL | 2025-07-11 12:23:18 | 2025-07-11 12:23:18 | 2 |
+----+-------------+-------------+---------------------+---------------------+-----------+
1 row in set (0.00 sec)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into compute_region(id,name,create_time,update_time,description) values(3,'HANGZHOU',now(),now(),NULL);
Query OK, 1 row affected (0.01 sec)
mysql> select * from compute_region;
+----+-----------------+---------------------+---------------------+-------------+
| id | name | create_time | update_time | description |
+----+-----------------+---------------------+---------------------+-------------+
| 1 | OCP_META_REGION | 2025-07-11 12:17:44 | 2025-07-11 12:17:44 | NULL |
| 2 | deault_region | 2025-07-11 12:23:18 | 2025-07-11 12:23:18 | NULL |
| 3 | HANGZHOU | 2025-07-25 11:50:20 | 2025-07-25 11:50:20 | NULL |
+----+-----------------+---------------------+---------------------+-------------+
3 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from compute_idc;
+----+-------------+-------------+---------------------+---------------------+-----------+
| id | name | description | create_time | update_time | region_id |
+----+-------------+-------------+---------------------+---------------------+-----------+
| 1 | default_idc | NULL | 2025-07-11 12:23:18 | 2025-07-11 12:23:18 | 2 |
+----+-------------+-------------+---------------------+---------------------+-----------+
1 row in set (0.01 sec)
mysql> insert into compute_idc(id,name,create_time,update_time,region_id) values(2,'idc1',now(),now(),3);
Query OK, 1 row affected (0.00 sec)
mysql> select * from compute_idc;
+----+-------------+-------------+---------------------+---------------------+-----------+
| id | name | description | create_time | update_time | region_id |
+----+-------------+-------------+---------------------+---------------------+-----------+
| 1 | default_idc | NULL | 2025-07-11 12:23:18 | 2025-07-11 12:23:18 | 2 |
| 2 | idc1 | NULL | 2025-07-25 11:51:30 | 2025-07-25 11:51:30 | 3 |
+----+-------------+-------------+---------------------+---------------------+-----------+
2 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
看来只能update compute_host表了
旭辉
2025 年7 月 25 日 13:37
#21
新增 Region
insert into compute_region (`name`, `description`) values ('HANGZHOU', 'HANGZHOU region');
新增 IDC
insert into compute_idc (`name`, `description`, `region_id`) select 'idc1', 'idc1 idc', id from compute_region where name='HANGZHOU';