写点什么

图形化探索:快速改造单实例为双主、MGR、读写分离等架

作者:GreatSQL
  • 2023-11-15
    福建
  • 本文字数:3107 字

    阅读完需:约 10 分钟

图形化探索:快速改造单实例为双主、MGR、读写分离等架

单机 GreatSQL/MySQL 调整架构为多副本复制的好处有哪些?为什么要调整?



  1. 性能优化:如果单个 GreatSQL 服务器的处理能力达到瓶颈,可能需要通过主从复制、双主复制或 MGR,以及其他高可用方案等来提高整体性能。通过将读请求分发到多个服务器,可以大大提高并发处理能力。

  2. 高可用性:如果您的应用程序不能接受服务中断,那么多副本可以帮助您实现高可用性的故障切换。当主服务器发生故障时,可以快速切换到从服务器或另一个主服务器,以保持服务的连续性。

  3. 读写分离和业务数据测试:单机 GreatSQL 在做一致性备份时,往往对性能和负载产生压力,主从、多主、或 MGR 可以选择从节点来备份。数据恢复或者测试,可以优先在从服务器进行数据回放测试等。


请查看手动部署介绍: GreatSQL 从单机到 MGR 扩展纪实 https://mp.weixin.qq.com/s/ewIx_avO5R6GDGmyDmPMLg

适用场景:

1、单机 GreatSQL/MySQL 改造为主从或者双主复制


2、单机 GreatSQL/MySQL 改造为 MGR 组复制


3、GreatSQL/MySQL 主从改造为 MGR 组复制


4、基于备份做 GreatSQL/MySQL 数据库升级测试

具体步骤

通过 GreatADM 可视化的方法,屏蔽手动命令操作的复杂度,快速完成单实例的向多主、多副本的架构分钟级的调整升级。


场景支持:支持纳管的实例的架构改造,或者数据库软件版本的升级功能。


思路如下:通过 sysbench 压入单机数据,通过备份单机数据,恢复到新的架构中,使用 sysbench 直接连接新的架构做压测,查看是否可正常运行验证数据可用性。(本次演示采用 GreatSQL 单机企业版本操作)


步骤如下:


1、使用 GreatADM 针对单实例做全量备份


2、选择备份的数据和确定要改造或升级的版本


3、选择不同架构和软件包构建新架构(本次演示单机向双主、MGR 的变更)


4、恢复数据完成新架构改造


5、sysbench 压测查数据可用性

环境信息如下:


添加 2 台主机172.17.134.60/61到 GreatADM 中,如下




准备工作:sysbench 创建压测数据到单实例



登录数据库,创建 sysbench 测试数据 50 张表,每表 1w 行数据。


$ sysbench --test=oltp_read_write.lua --mysql-user=greatdb --mysql-password='xxxxx' --mysql-host=172.17.134.68 --mysql-port=3307 --mysql-db=sysbench --threads=10  --report-interval=1 --tables=50  --table-size=10000 --time=60  prepare
复制代码


通过 SQL 窗口查看对应的表信息



完成测试数据的创建,接下来进行单节点的备份操作。

一、做数据库全量备份

使用 GreatADM 针对单实例做全量备份,选择【备份管理】执行单节点的全量备份,在备份之前首先需要配置备份方式。因为 GreatADM 支持 HDFS、FTP、COS 对象存储、LOCAL 本地、远端备份服务器 5 种类的备份集存储方式。



这里我们选择【LOCAL 本地存储】即将数据直接备份放置在数据库所在的主机,指定本地路径下。【本地路径】是最终备份集存储的路径,我们命名为:/backup,需要在数据库的服务器上创建目录,并授权。



创建备份集存储的目录,使用 root 创建,并调整目录权限,保证和添加服务时创建的【管理用户】,同一个属组,确保 GreatADM 以 greatsql 普通用户备份时,有权限写入/backup。


$ mkdir /backup ;  $ chown greatsql.greatsql  /backup;
复制代码


接下来,执行【手动备份】并配置备份项。



GreatADM 支持多种数据库架构的备份,且可以按照用户需求,选择备份不同项目的数据库,以及按需选择数据库主节点、或从节点备份。



在配置项中,同时支持【压缩备份】,【加密备份】,【并行备份】,以及备份超时平台层的【超时提醒】消息等



执行备份,日志输出如下 ,整个备份分为 4 个阶段即


【收集信息】--收集数据库的版本和数据文件路径等信息


【备份预检查】--检查备份工具和数据库版本是否匹配,备份配置项是否有效


【执行备份】--执行执行一致性的物理热备


【上传到存储】--如果配置远程网络存储,则进行备份集的网络传输。



完成备份,如下生成的备份记录



完成备份之后,可点击【备份详情】查看本次备份的配置信息等。


操作系统路径下对应的备份集,与数据库实例同在一台服务器的不同路径下。


二、恢复为双主复制架构

基于备份做架构变更,基于全量物理备份做数据的恢复,和新架构的变更创建。基于全量备份恢复导 172.17.134.60、61 两台主机,来改造成新的主从,或者双主架构。步骤如下:


首先选中【序号 1】刚刚完成的【单机 601 全量备份】,点击【备份恢复】选项



弹出要恢复为哪种架构,这里目前可选的有 4 种,同时支持 2 种恢复架构的类型,即【恢复物理机数据库】和【资源池方式】也就是资源隔离方式。 这里,我们选择物理机恢复出双主架构。点击【主备副本】选择【恢复物理机数据库】



接下来配置恢复出的新架构,属于哪个【项目】,所选择的【数据库软件包版本】,以及备份工具包,GreatSQL 兼容开源的 xtrabackup,这里我们就默认选择 GreatADM 已经上传的 xtrabackup-8.0.32 版本。主机选择 172.17.134.60、172.17.134.61 两台主机。鉴于之前部分传统的企业客户,有多个副本的需求场景下,GreatADM 提供了双主下,再次扩展副本的能力。如果在双主复制的架构下,仍想扩展 1 个从副本,则可以在添加节点之后,选择【添加从节点】选项,扩展副本数



默认允许用户混合主从副本安装在同一台物理主机上,用端口做区分如下示意图,则可以在双主下各创一个从副本。形成双主双从,这里仅作演示。



实际我们仍按双主架构来进行架构恢复。进入新架构的部署预检查页面,如图,主要是涉及操作系统配置标准化、规范化、依赖包等检查。



通过之后进行下一步,完成新架构的初始化,并在初始化之后,做数据的恢复。



完成架构调整的双主结构拓扑如下



实例属性信息如下



同时保留了原始节点,此时可将原始的单机移除,到此完成架构的改造和变更。数据中的用户名、密码等和原始单机数据库完全相同一致。可直接点点击【登录】验证。



完成单机改造为新的双主复制结构。

三、恢复为 MGR 架构

同样,选择单机 601 的备份集, 删除之前 172.17.134.60、61 的数据库,释放主机资源。之前鉴于项目中有用户主机资源不足,考虑主机采用多实例混合部署在 1 台上的情况,我们顺便测下 GreatADM 是否支持重复利用主机,混合部署多个实例。



选择【备份恢复】,恢复架构中,选择【paxos 高可用复制】,选择【物理数据库】



进入 paxos 配置项中,我们仍选择【default】默认项目,对应的软件包版本可选择升级的新版本,在做架构改造时,同时进行数据库的版本升级工作。此处,我们重复使用 172.17.134.61 这台主机,分别使用 3307、3308、3309 三个端口来区分 3 个实例。如下:



预检查之后的拓扑图预留和端口信息如下:



安装部署过程和日志信息如下:



安装之后拓扑如下:



完成单机向 paxos 高可用(组复制)的改造和数据恢复。查看当前 172.17.134.61 主机的运行状态和负载,也验证了 GreatADM 支持混合部署多实例到 1 台主机。



四、验证数据的可用性

使用 sysbench 压测新恢复的架构,对应的 sysbench 库的表等可直接压测使用,无数据异常。


$ sysbench --test=oltp_read_write.lua --mysql-user=greatsql --mysql-password='xxxxx' --mysql-host=172.17.134.61 --mysql-port=3307 --mysql-db=sysbench --threads=10  --report-interval=1 --tables=50  --table-size=10000 --time=60  run
复制代码


五、总结

改造的意义:如果您需要存储和处理大量数据,且读写负载较高,单个 MySQL 服务器可能无法满足需求,或为了满足跨地域访问的需求,可以将单机数据库,改造成可跨多个数据中心采用异步复制、或半同步、以及强同步等方式,既可以保证数据库的多副本容灾,又可提升业务的读写效率,规避了单点故障对业务的影响和负载。


GreatADM 提供的能力和价值:且在改造升级过程中,借助 GreatADM 管理平台,图形化改造,大大降低了架构改造的难度和效率。避免 DBA 手动黑屏命令方式的操作的繁冗复杂的操作命令,减少业务停机时长,同时释放人工操作的压力。


发布于: 刚刚阅读数: 4
用户头像

GreatSQL

关注

GreatSQL社区 2023-01-31 加入

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。 社区:https://greatsql.cn/ Gitee: https://gitee.com/GreatSQL/GreatSQL

评论

发布
暂无评论
图形化探索:快速改造单实例为双主、MGR、读写分离等架_greatsql_GreatSQL_InfoQ写作社区