摘要:
在DBA的日常工作中,快速部署数据库高可用架构,且标准化地入网部署数据库是一项重要的基础任务。本文将介绍常见的部署MGR的方式,并重点介绍万里数据库的GreatADM数据库管理平台进行图形化、可视化、标准化的部署过程,以提高交付效率和质量,给DBA提供一种全新的体验。(本文阅读大约需要4-6分钟)
常见的数据库入网交付的方式和各自优缺点
方式一:手动部署
这是最基本的部署方式,需要手动在每个节点上安装、配置cnf和管理各节点,命令交互太多。虽然借助社区版的 MySQL Shell 操作相对简单,但对于大规模部署,手动操作可能耗费大量时间和人力,并且容易出现配置错误和一致性问题。
方式二:批量管理工具
使用配置管理工具(如Ansible、Puppet、Chef等)可以实现自动化的数据库安装部署,来解决批量交付时重复的劳动。通过编写配置文件和定义任务,配置管理工具可以自动执行安装、配置和启动MGR的步骤。这种方式可以提高部署效率并确保一致性,但对于初学者来说,配置管理工具的学习和配置可能需要一定的时间和学习成本。
方式三:GreatADM数据库管理平台
也是今天要介绍的主角。GreatADM提供了图形化、可视化、标准化、流程化的部署MGR的能力,极大地简化了部署过程。说到这里大家可能脑子有诸多疑问:
GreatADM是什么?
都有哪些功能?
能解决什么问题?
支不支持国产操作系统?
怎么部署数据库流程是什么?
安装平台麻烦吗?哪里可以下载到?
我暂且先只回复第一个问题,其他的大家可在文章中或者GreatSQL社区历史文章中发现。 技术干货 | 从DBA视角看数据库运维管理平台
GreatADM是什么?GreatADM(GreatDB Administrator Platform )
是一款万里数据库管理平台。支持基于GreatDB 、GreatSQL、MySQL多种集中式方案全生命周期的管理的软件。接下来我们就来动手边实践边看。
文章整体内容,围绕如何图形化交付MGR,以及交付之后GreatADM都有哪些功能,快速了解如何上手,以及个人觉得使用的几个功能点。
一、GreatADM自身的安装
二、图形化部署MGR的流程
三、作为DBA个人觉得不错的3个点
四、总结回顾
1.安装和配置GreatADM
首先解压软件包
拿到GreatADM软件包为一个zip的压缩包,解压之后得到一个adm_install.sh
的shell安装脚本和一个GreatADM的主程序包
。
GreatADM支持在多个国产操作系统安装部署,如麒麟、欧拉、龙蜥、统信、BClinux等。
2.配置安装脚本
这里需要配置安装的主机IP,以及WEB访问GreatADM的端口和主机的操作系统用户名和密码,本次用是root,也可以使用sudo user密码等信息。
命令:vim adm_install.sh
a)、ADM_IP_ARRAY=(172.17.139.50 )
如果是高可用安装,此处可以配置多个IP地址,GreatADM支持平台服务高可用配置和故障自切换。支持直接安装部署在远程主机上。
b)、ADM_WEB_PORT=80
默认浏览器访问管理页面端口,可按需自定义
c)、SSH_USER=root SSH_PASSWORD=abc123
本地安装是将GreatADM平台单机部署。如果配置双机高可用,则需要先行配置双机之间的ssh互信认证,然后调整认证方式,填写公钥文件路径即可
SSH_AUTH=pubkey SSH_KEY_FILE=/root/.ssh/id_ras
平台元数据库配置,默认无需配置,内置sqlite3作为基础元数据的数据库,轻量且易用,一般建议支持20台主机以下私有规模。
如果超过20台主机,可考虑接入ADM自身部署的数据库中,目前简单测试了一下在16C 16G 500G/SSD
配置下,使用GreatSQL作为元数据库,创建和纳管了40多套万里GreatRouter高可用集群、主从、MGR等多类架构大约130+台主机,无压力。
3.执行安装
命令: sh adm_install.sh install
安装完成之后,可通过登录http://172.17.139.50:80
来访问GreatADM的管理页面
4.登录图形界面
首次登录GreatADM,需要修改默认的初始密码,用户账号可以是邮箱地址、可以是用户名。
默认平台超管为:用户名adm
和[email protected]
两种可以登录,如下
GreatADM管理平台默认对MySQL数据库架构的4大分类,并且支持用户已自建的MySQL5.7/8.0的统一纳管到平台和复制拓扑自动探测和拓扑绘制。支持GreatDB、GreatSQL、Percona Server、MySQL类型的数据库类型。
A、GreatDBRouter三节点:
对应万里GreatDB数据库企业版高可用解决方案
B、PAXOS高可用复制:
支持MGR、以及GreatSQL MGR+VIP方案
C、主备多副本:
传统的主从复制、双主、双主一从、多主多从等方案
D、单实例节点:
提供批量交付多个单点场景,以及实例的一键批量诊断、实例巡检报告生成等服务,同时支持单节点升级为其他高可用架构。
接来下我们开始安装MGR,本次我们选用GreatSQL版本来部署MGR,GreatSQL是适用于金融级应用的国内自主开源数据库,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
自动识别操作系统版本和CPU平台信息,可以按需增加机房、机架、机柜等信息。GreatADM同时支持资源池方式的数据库部署方式,可将多台物理主机的cpu、内存、磁盘标准化为一个计算资源池,通过从资源池中按需分配数据库实例的算力,以提高物理主机的资源利用效率,这点倒是挺不错。这个我们下期再做介绍。
查看内置的参数模板
当然用户可以按需上传参数,可以绑定项目名称,作为私有项目独享,也可以作为公共模板多项目共用
本次我们调整内置的参数模板,同时可按需【添加参数】暂时调整如下2项innodb_buffer_pool_size、innodb_buffer_pool_instances
这里的这个参数模板,以及参数搜索框不错,可以快速模糊匹配参数
上传数据库二进制包,自动识别软件包的属性信息。
这里我们上传了GreatSQL社区版本,还有XtraBackup备份工具。当然GreatADM在安装时,会自动搜索同目录路径是否存在数据库包,如果有的话会自动识别加载。这点确实省去不少通过web浏览器上传软件包的时间。到此,我们部署数据库的必要条件都已经具备,下一步准备执行MGR的图形化安装。
选择Paxos高可用部署方案,因MGR采用Paxos协议,所以外部我们选择Paxos架构,物理主机部署方式进行。选择对应的数据库版本、备份工具、参数模板、并填写默认的数据库名称、管理员账号密码等。
进行三阶段流程:
1、基础配置
2、系统预检查
3、执行交付部署
【安装前配置】如下:
【主机预检查】,检查项如主机时区时间、swap交换分区、安全策略selinux、分区挂载、系统资源限制、内核参数等共计近20项预检内容,均为历史经验积累的转化。
当不满足预检内置条件时,会弹框提醒,按级别分为必检项(必须满足前置条件项),次要,仅提醒三类。
【交付部署】,同样按标准流程进行交付,且记录各阶段的交付日志,以便问题溯源和历史记录翻阅。
【完成交付】之后,跳转到数据库管理拓扑主页
到此我们就完成了MGR的图形化交付,并可直观的看到拓扑状态,和对应的事务执行情况等信息。感觉怎么样?
【拓扑作用】DBA可以直接基于拓扑图查看当前数据库节点运行状态、复制延迟等待、实例角色信息,同时可以基于拓扑做MGR的节点切换,服务器启停等操作,直观的拓扑结构,和状态信息,以及启停操作按钮,用起来很惬意。
操作示例如在拓扑上执行【重启实例】,所有的操作均记录日志,保证操作时间、任务状态、操作暂停、终止和重试,做到操作有记录,可查询,防止误操作和随意变更操作。
历史操作记录
GreatADM提供了实时的集群状态监控和管理功能。可以通过GreatADM查看集群状态、执行数据同步、进行主从切换等操作。【实例所在主机负载实时动态更新】
【实例复制概览】全览实例状态,以及延迟情况,并支持在线扩缩,以及节点操作
【实例负载】针对实例的实时会话信息,当前业务或者某一阶段的繁忙程度,实例负载尽收眼底。
【负载趋势】另外对DBA来说的主机层面的资源用量和趋势,现在独立一个面板,直接全局统计数据增长趋势图,并给出资源用量评估,直观且高效。解决了做评估无依据或需要人工命令行统计,或者表格比对人工绘图的耗时耗力的问题。
【多维度监控】在监控告警中,提供3个维度的视角,数据库架构全局维度、单实例节点维度、主机维度来进行全方位监控。做不同维度按需监控,按需开关,按需分屏展示的可操作性和灵活性。
【自定义监控】基于统一模板化的面板之外,同时兼顾用户想自定义监控面板的诉求,GreatADM做了展示面板的可配置性改进。将部分通用能力通用标准,以友好的web页面组织起来,让监控的dashboard可按用户需求自助定制,尊重不同业务库级差异性,而差异化监控的诉求。
GreatADM提供基线参数模板的校验,以及变更参数历史的记录,和一键修复功能,这大大降低了DBA在维护数据库过程中,因手动变更参数之后未将参数固定写入到配置导致的丢失,遗忘等问题。个人觉得对DBA比较实用的功能。参数变更可按需应用不同节点,且支持差异化配置。
针对不同节点的参数,基于参数基线做变更比对
及时发现参数差异,并支持一键修正,这结局了DBA在一对多的数据库运维管理中,不同业务数据库的参数变更历史,全靠记忆或者现场搜索、现场查看cnf要便捷高效的多,且不易出错,相当实用。
这是目前个人使用过程中觉得比较不错的几个点。
通过GreatADM创建MGR的过程,可以看到GreatADM从一键脚本安装、再到创建MGR架构时主机、软件包管理、参数模板、环境预检、到完成,完全是流程化、模板化、规范化的交付。 特别是在国产化的背景下,版本差异交付适配难、运维管理频踩坑、告警消息策略固化,各类告警无聚合压制、巡检诊断内容价值低廉、只有备份能力,恢复全靠人工,跨机房灾备无法统筹管理等问题。GreatADM针对上述问题逐个击破,使用户在面临多样化环境中,管理更加规范、直观、高效便捷。GreatADM就是结合部分金融和运营商私有国产化交付场景下,打造的一款全方位、多场景的覆盖的数据库管理平台产品。
对于用户而言,GreatADM提供了常见业务场景中,数据库标准化交付、规范化扩缩变更操作、日常监控管理、以及运维历史可溯源的能力,为业务的平稳运行保驾护航。
对于DBA而言,在一对多的数据库架构管理中,选择合适的工具,合适的平台才能使工作更高效,处理问题更方便,才能保障数据库平稳运行,减少DBA人工管理成本,降低定位问题的门槛,而GreatADM为DBA提供了一种全新的体验。
Enjoy GreatSQL :)
GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
相关链接: GreatSQL社区 Gitee GitHub Bilibili
社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html
社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html
(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)
微信&QQ群:
QQ群:533341697
微信群:添加GreatSQL社区助手(微信号:wanlidbc
)好友,待社区助手拉您进群。