OceanBase如何替换主机,替换备份目录

【产品名称】

oceanbase私有云版本

【产品版本】

3.2.1

【问题描述】

近期ob项目因为一些硬性要求,所以生产集群需要替换主机

前期准备工作就不赘述了,简单描述就是新机器做好分区划分,软件安装前的检查,添加到ocp机器备用。

下面来介绍下测试过程及问题点

一、 ob替换主机

1、测试

用我们的一套测试环境,与生产基本一致,做替换主机操作的测试

看下数据量和分区数

MySQL [oceanbase]> SELECT /*+READ_CONSISTENCY(WEAK),query_timeout(100000000)*/ → c.tenant_name, → a.svr_ip, → round(sum(a.required_size) / 1024 / 1024 / 1024, 2) table_size_GB → FROM → __all_virtual_meta_table a, __all_virtual_table b, __all_tenant c → WHERE → instr(a.member_list, a.svr_ip)>0 → AND a.tenant_id = b.tenant_id → AND a.table_id = b.table_id → AND b.tenant_id = c.tenant_id → group by c.tenant_name, a.svr_ip → ORDER BY c.tenant_name, a.svr_ip, table_size_GB DESC; ±------------±--------------±--------------+ | tenant_name | svr_ip | table_size_GB | ±------------±--------------±--------------+ | cc | 11.11.11.11 | 296.54 | | cc | 11.11.11.12 | 410.45 | | cc | 11.11.11.21 | 343.63 | | cc | 11.11.11.22 | 363.35 | | cc | 11.11.11.1 | 299.60 | | cc | 11.11.11.2 | 407.38 | ±------------±--------------±--------------+ 6 rows in set (5.41 sec) MySQL [oceanbase]> SELECT /*+READ_CONSISTENCY(WEAK),query_timeout(100000000)*/ → a.svr_ip, → round(sum(a.required_size) / 1024 / 1024 / 1024, 2) table_size_GB → FROM → __all_virtual_meta_table a → WHERE → instr(a.member_list, a.svr_ip)>0 → group by a.svr_ip → ORDER BY a.svr_ip, table_size_GB DESC; ±--------------±--------------+ | svr_ip | table_size_GB | ±--------------±--------------+ | 10.17.248.224 | 453.27 | | 10.17.248.225 | 432.48 | | 10.19.244.223 | 441.15 | | 10.19.244.224 | 444.59 | | 134.84.21.5 | 443.01 | | 134.84.21.6 | 442.74 | ±--------------±--------------+ MySQL [oceanbase]> select svr_ip,zone from __all_server; ±--------------±------+ | svr_ip | zone | ±--------------±------+ | 11.11.11.11 | zone2 | | 11.11.11.12 | zone2 | | 11.11.11.21 | zone1 | | 11.11.11.22 | zone1 | | 11.11.11.1 | zone3 | | 11.11.11.2 | zone3 | ±--------------±------+ 6 rows in set (0.01 sec) MySQL [oceanbase]> select count(1), svr_ip from __all_virtual_meta_table where role=1 group by svr_ip order by 1 desc; ±---------±------------+ | count(1) | svr_ip | ±---------±------------+ | 95638 | 11.11.11.1 | | 95555 | 11.11.11.2 | ±---------±------------+ 2 rows in set (2.21 sec) MySQL [oceanbase]> select tenant_name,primary_zone from __all_tenant; ±------------±------------------+ | tenant_name | primary_zone | ±------------±------------------+ | sys | zone2;zone1;zone3 | | cc | zone3;zone1,zone2 | ±------------±------------------+

替换主机操作比较简单,通过ocp完成,在替换前最好发起一次合并,如果有租户主zone在需要替换机器上,记得切主。

测试的时候发现,一台机器整个替换过程用时10小时,明显不符合窗口时间

2、调整

先放调整参数

alter system set data_copy_concurrency=100; alter system set server_data_copy_in_concurrency=1000; alter system set server_data_copy_out_concurrency=1000; alter system set major_freeze_duty_time=‘04:00’; --该参数是因为原合并定时在窗口期,需要提前调整

data_copy_concurrency 用于设置系统中并发执行的数据迁移复制任务的最大并发数。

server_data_copy_in_concurrency 用于设置单个节点迁入数据的最大并发数。

server_data_copy_out_concurrency 用于设置单个节点迁出数据的最大并发数。

该步骤调整均为调整到最大范围,因窗口期间会断掉业务,所以可以调大点

3、效果

调整之后同样的环境替换一台机器花费57分钟,符合窗口要求

可以通过tsar查看流量

调整之前

调整之后我没有截图,流量能打到980M,我们是千兆的网络,所以基本满了

效率提升了十倍

二、 替换备份目录

1、原因

因我们原来的备份nfs磁盘是普通硬盘,还有相关限制,在做数据清理时有问题,使用率一直下不去,所以申请替换闪盘的nfs

2.步骤

首先需要停现有的增量

alter system noarchivelog;

替换nfs挂载磁盘,注意新挂载磁盘的权限属组

替换之后发起转储

alter system minor freeze;

开启归档

alter system archivelog;

检查 --数据量大分区多,完成时间较久,停归档时也要检查,确认stop

select * from cdb_ob_backup_archivelog_summary; --确认doing了才可以发起全备

发起合并

alter system major freeze;

检查

select zone,name,value,info from __all_zone where name =‘merge_status’;

发起全备

alter system backup database;

检查

select * from cdb_ob_backup_progress;

三、心得

细节决定成败,中国厂商自研数据库的道路上,每一步都是自我的进步,我很感谢有这样的机会去做这样的事情。踏入一个新的领域,未知的范围太广,一定跟每个人去积极学习,摄取自己需要的知识补充自己。决定去做了,就要做的更快更好,去尽快的充实自己。

盛年不重来,一日难再晨,及时当勉励,岁月不待人。

行之所向,莫问远方

1 个赞

感谢分享

1 个赞

感谢分享

1 个赞