案例架构主备集群均为2-2-2同规格资源集群。异构集群有细节不同(对于备集群因为单台机器存储小,一个zone内需要比主库更多机器搭建的情况需要在备集群搭建后手工快速修改unit_num)。
2.1 主集群上单表和tablegroup的primary_zone设置取消
select * from __all_tablegroup;
select database_name,table_name,tenant_name,primary_zone from gv$table where tenant_id>1000 and primary_zone <>'zone3;zone2;zone1';
alter tablegroup tg_xxx set primary_zone='default';
ALTER TABLE xxxn.ccccccc PRIMARY_ZONE=default;
2.2 主库存储使用,大表检查
MySQL [oceanbase]> SELECT svr_ip, svr_port, CONCAT(ROUND(total_size 1024 / 1024 / 1024, 2), 'G') AS TOTAL, CONCAT(ROUND(free_size / 1024 / 1024 / 1024, 2), 'G') AS FREE, CONCAT(ROUND((total_size - free_size) / total_size * 100, 2),'%') AS USED FROM __all_virtual_disk_stat order by svr_ip;
+---------------+----------+----------+----------+--------+
| svr_ip | svr_port | TOTAL | FREE | USED |
+---------------+----------+----------+----------+--------+
| 10.XX.XX.55 | 2882 | 3006.82G | 1540.53G | 48.77% |
| 10.XX.XX.77 | 2882 | 3006.82G | 1383.01G | 54.00% |
| 111.XX.XX.113 | 2882 | 3012.77G | 1545.12G | 48.71% |
| 111.XX.XX.114 | 2882 | 3012.77G | 1390.33G | 53.85% |
| 111.XX.XX.115 | 2882 | 3012.77G | 1545.89G | 48.69% |
| 111.XX.XX.116 | 2882 | 3006.82G | 1383.60G | 53.98% |
MySQL [oceanbase]> select svr_ip,sum(size)/1024/1024/1024 data_size from __all_virtual_table_mgr group by 1 order by data_size desc limit 20 ;
+---------------+-------------------+
| svr_ip | data_size |
+---------------+-------------------+
| 10.XX.XX.77 | 2455.093179729767 |
| 111.XX.XX.116 | 2443.278376303612 |
| 111.XX.XX.114 | 2441.437496948056 |
| 111.XX.XX.113 | 2013.635538168251 |
| 111.XX.XX.115 | 2011.677529040724 |
| 10.XX.XX.55 | 2000.085263901390 |
+---------------+-------------------+
6 rows in set (1.34 sec)
MySQL [oceanbase]> select svr_ip,table_id,sum(size)/1024/1024/1024 data_size from __all_virtual_table_mgr group by 1,2 order by data_size desc limit 10;
+---------------+------------------+-------------------+
| svr_ip | table_id | data_size |
+---------------+------------------+-------------------+
| 111.XX.XX.114 | 1100611139652449 | 1508.943823604844 |
| 111.XX.XX.116 | 1100611139652449 | 1508.943823604844 |
| 10.XX.XX.77 | 1100611139652449 | 1508.943823604844 |
| 111.XX.XX.113 | 1100611139649270 | 206.068651821464 |
| 10.XX.XX.55 | 1100611139649270 | 206.068651821464 |
| 111.XX.XX.115 | 1100611139649270 | 206.020522594451 |
| 10.XX.XX.77 | 1100611139712594 | 163.333016555756 |
| 10.XX.XX.55 | 1100611139652887 | 161.007432742044 |
| 111.XX.XX.115 | 1100611139652887 | 161.007322357967 |
| 111.XX.XX.113 | 1100611139652887 | 159.893561057746 |
+---------------+------------------+-------------------+
select * from __all_virtual_macro_block_marker_status;
###通过上面这个查询data_count可以看到主备库宏块数量
###主集群一个zone数据如下,data_count*2M/1024/1024大约1.6T左右
+---------------+----------+-------------+----------------+------------------+----------------------+------------+--------------------+----------------+------------------------+-------------------+------------+--------------------+------------+----------------+-----------------+---------+
| svr_ip | svr_port | total_count | reserved_count | macro_meta_count | partition_meta_count | data_count | second_index_count | lob_data_count | lob_second_index_count | bloomfilter_count | hold_count | pending_free_count | free_count | mark_cost_time | sweep_cost_time | comment |
+---------------+----------+-------------+----------------+------------------+----------------------+------------+--------------------+----------------+------------------------+-------------------+------------+--------------------+------------+----------------+-----------------+---------+
| 10.XX.XX.55 | 2882 | 1539494 | 2 | 0 | 499 | 750484 | 0 | 1186 | 0 | 0 | 752169 | 0 | 787323 | 2672947 | 0 | |
| 10.XX.XX.77 | 2882 | 1539494 | 2 | 0 | 536 | 832059 | 0 | 75 | 0 | 0 | 832670 | 0 | 706822 | 3048548 | 1 | |
###备集群一个zone数据如下,data_count*2M/1024/1024大约2.7T左右
+---------------+----------+-------------+----------------+------------------+----------------------+------------+--------------------+----------------+------------------------+-------------------+------------+--------------------+------------+----------------+-----------------+---------+
| svr_ip | svr_port | total_count | reserved_count | macro_meta_count | partition_meta_count | data_count | second_index_count | lob_data_count | lob_second_index_count | bloomfilter_count | hold_count | pending_free_count | free_count | mark_cost_time | sweep_cost_time | comment |
+---------------+----------+-------------+----------------+------------------+----------------------+------------+--------------------+----------------+------------------------+-------------------+------------+--------------------+------------+----------------+-----------------+---------+
| 134.XX.XX.99 | 2882 | 1593958 | 2 | 0 | 542 | 1557874 | 0 | 1594 | 0 | 0 | 1560010 | 0 | 33946 | 3739690 | 0 | |
| 134.XX.XX.98 | 2882 | 1593958 | 2 | 0 | 503 | 1523367 | 0 | 924 | 0 | 0 | 1524794 | 0 | 69162 | 3789087 |
####查询哪个表没有恢复完
select svr_ip,table_id from __all_virtual_meta_table where is_restore !=0 group by 1,2;
###可以使用这两个sql查询某个server上的大分区,然后迁移到另个server
select svr_ip,table_id,sum(size)/1024/1024/1024 data_size from __all_virtual_table_mgr where table_type=1 and 、、
svr_ip='111.11.11.111' group by 1,2 order by data_size desc limit 20 ;
select concat('alter system move replica partition_id ''',
partition_id,'%',partition_cnt,'@',table_id,''' source ''111.11.11.111:2882'' destination ''111.11.11.112:2882'';') from gv$partition where table_id=1100611139652552 and svr_ip='111.11.11.111';


##正常备库搭建用默认参数也可以。
4.1 主集群上状态检查
MySQL [oceanbase]> select * from v$ob_standby_status;
+------------+--------------+------------------+----------------+------------------+----------------------------------------------------------------------+------------------------------+---------------------+------------------------+
| cluster_id | cluster_name | cluster_role | cluster_status | current_scn | rootservice_list | redo_transport_options | protection_level | synchronization_status |
+------------+--------------+------------------+----------------+------------------+----------------------------------------------------------------------+------------------------------+---------------------+------------------------+
| 1673150561 | obcrm13_prm | PHYSICAL STANDBY | VALID | 1689842570855984 | 10.XX.XX.53:2882:2881;134.XX.XX.99:2882:2881;134.XX.XX.100:2882:2881 | ASYNC NET_TIMEOUT = 30000000 | MAXIMUM PERFORMANCE | OK |
+------------+--------------+------------------+----------------+------------------+----------------------------------------------------------------------+------------------------------+---------------------+------------------------+
MySQL [oceanbase]> select usec_to_time(a.current_scn)-usec_to_time(b.current_scn) delay from v$ob_cluster a ,v$ob_standby_status b where a.cluster_name=b.cluster_name;
+----------+
| delay |
+----------+
| 3.036682 |
+----------+
1 row in set (0.00 sec)
MySQL [oceanbase]> alter system modify cluster 'obcrm13_prm' cluster_id 1673150561 set redo_transport_options='SYNC NET_TIMEOUT=40000000';
Query OK, 0 rows affected (0.00 sec)
MySQL [oceanbase]> alter system set standby cluster to maximize availability;
Query OK, 0 rows affected (0.98 sec)
4.2 备集群检查
MySQL [oceanbase]> select svr_ip,is_restore,count(*) from __all_virtual_meta_table group by 1,2; +---------------+------------+----------+
| svr_ip | is_restore | count(*) |
+---------------+------------+----------+
| 10.XX.XX.54 | 0 | 47785 |
| 134.XX.XX.101 | 0 | 47811 |
| 134.XX.XX.99 | 0 | 47784 |
| 10.XX.XX.53 | 0 | 47611 |
| 134.XX.XX.98 | 0 | 47612 |
| 134.XX.XX.100 | 0 | 47585 |
| 10.XX.XX.53 | 100 | 48 |
| 134.XX.XX.100 | 100 | 72 |
| 134.XX.XX.98 | 100 | 48 |
| 10.XX.XX.54 | 100 | 24 |
| 134.XX.XX.99 | 100 | 24 |
+---------------+------------+----------+
11 rows in set (0.64 sec)
MySQL [oceanbase]> select svr_ip,is_restore,count(*) from __all_virtual_meta_table group by 1,2;
+---------------+------------+----------+
| svr_ip | is_restore | count(*) |
+---------------+------------+----------+
| 10.XX.XX.54 | 0 | 47809 |
| 134.XX.XX.101 | 0 | 47811 |
| 134.XX.XX.99 | 0 | 47808 |
| 10.XX.XX.53 | 0 | 47659 |
| 134.XX.XX.98 | 0 | 47660 |
| 134.XX.XX.100 | 0 | 47657 |
+---------------+------------+----------+
6 rows in set (0.64 sec)
MySQL [oceanbase]> select svr_ip,table_id,sum(size)/1024/1024/1024 data_size from __all_virtual_table_mgr where table_id=1100611139652449 group by 1,2 order by data_size desc limit 20 ;
+---------------+------------------+------------------+
| svr_ip | table_id | data_size |
+---------------+------------------+------------------+
| 10.XX.XX.54 | 1100611139652449 | 754.491984806023 |
| 134.XX.XX.101 | 1100611139652449 | 754.491984806023 |
| 134.XX.XX.99 | 1100611139652449 | 754.491984806023 |
+---------------+------------------+------------------+
3 rows in set (1.15 sec)
MySQL [oceanbase]> select * from __all_virtual_partition_migration_status where result in ('-4012','-4184');
Empty set (0.04 sec)
-4012:migrate_concurrency参数太大了rpc超时,减小该参数; -4184:空间不足,一般是磁盘满了。
总 结:

本文作者:张瑞远(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




