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信息如下:
点击右边的编辑,如下:
如何修改呢?
背景:
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信息
ALTER SYSTEM MODIFY ZONE zone1 SET REGION = ‘HANGZHOU’, IDC = ‘idc1’;
select * from dba_ob_zones;
2 登录ocp元数据库,修改相关元数据
select * from compute_idc;
修改ocp中的idc及region信息
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
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 部署后就没有动过
业务集群:
但是ocp看到的如下:
在向业务集群添加observer的时候报错,zone1显示有2个observer,但是其中一个状态有问题。
         
        
           
         
            
       
      
        
          
          
            旭辉  
          
              
                2025 年7 月 25 日 10:27
               
              #12 
           
         
        
          region和idc 都不对,是接管过来的?接管正常吗?业务集群是什么版本?
         
        
           
         
            
       
      
        
        
          都是4.2.1.8
业务集群的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';