System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于高可用演练的MySQL数据库批量切换方法技术_技高网

一种基于高可用演练的MySQL数据库批量切换方法技术

技术编号:42382567 阅读:5 留言:0更新日期:2024-08-16 16:11
本发明专利技术涉及一种基于高可用演练的MySQL数据库批量切换方法,步骤包括:接收数据库切换申请并进入切换流程;触发数据库切换工单,切换工单包含数据库切换的所有步骤,切换工单的原子任务为切换功能逻辑;每一个原子任务均触发ansbile的执行工具,执行工具每次触发皆会将切换脚本发送到指定的切换服务器,在目标服务器上执行具体指令,完成数据库切换的指定逻辑;切换中的原子任务执行失败后,进入处理流程,根据报错信息排除故障后再次触发进入下一个原子任务;当数据库批量切换执行成功后,检查切换后的集群状态与业务连接是否正常。与现有技术相比,本发明专利技术不依赖第三方切换平台实现数据库批量切换,并保证了在切换过程的数据不丢失。

【技术实现步骤摘要】

本专利技术涉及数据库切换,尤其是涉及一种基于高可用演练的mysql数据库批量切换方法。


技术介绍

1、随着企业应用系统的增加,数据库的规模也达到上千套集群,特别是金融行业对于数据库稳定性提出了更多的要求,mysql作为开源关系型数据库,搭建简单,使用成本低,稳定性高等优点被中小系统广泛的使用,mysql数据库存在主库和从库,主库对外访问,当主数据库损坏且无法短时间修复,为了快速的恢复业务,进行mysql数据库主从切换,新主库提供服务是常用手段,本次专利技术会将mysql数据库简称数据库。

2、目前数据库切换比较好的方式是通过dba保证无业务影响,人工完成数据库切换,再通知业务接入。为了保证数据库切换无数据丢失、快速完成数据库切换,必须严格按照预先设定的指令操作步骤,导致数据库切换严重依赖人为操作,效率低下。随着数据库集群规模达到上千套,数据库切换功能必须平台化、可批量操作。在日常数据库运维中即需要完成数据库批量切换的高可用演练,当数据库真正出现问题时,保证数据库快速完成切换、业务快速恢复。

3、目前现有的主从数据库的切换方案存在以下问题:例如中国专利申请cn202010887335.5公开的主从数据库的切换方法,目前大部分的数据库切换平台无法同时满足切换流程可视化、故障介入后可继续触发、批量触发且互不影响;例如中国专利申请cn202310347352.3中公开的一种数据库高可用主从切换方法,在数据库切换的核心技术通过引入第三方软件mha,执行masterha_master_switch命令,其中数据库切换的实现细节为第三方软件自带功能,通过第三方平台管理切换,切换逻辑受限于其他平台的管理,切换逻辑黑盒,逻辑误判导致数据库误切换,技术无法自主可控。不同公司的切换场景不同,定制化开发成本较高。


技术实现思路

1、本专利技术的目的是克服上述现有技术存在的缺陷而提供一种基于高可用演练能够确保不丢失数据的mysql数据库批量切换方案。

2、本专利技术的目的可以通过以下技术方案来实现:

3、一种基于高可用演练的mysql数据库批量切换方法,步骤包括:

4、接收数据库切换申请并进入切换流程;

5、触发数据库切换工单,所述的切换工单包含数据库切换的所有步骤,切换工单的原子任务为切换功能逻辑;

6、每一个原子任务均触发ansbile的执行工具,执行工具每次触发皆会将切换脚本发送到指定的切换服务器,在目标服务器上执行具体指令,完成数据库切换的指定逻辑;

7、切换中的原子任务执行失败后,进入处理流程,根据报错信息排除故障后再次触发进入下一个原子任务;

8、当数据库批量切换执行成功后,检查切换后的集群状态与业务连接是否正常。

9、作为优选技术方案,所述的原子任务采用可脱拽式的原子任务编排,原子任务可编排在整个处理流程的任意位置,并能够可重复使用原子任务。

10、作为优选技术方案,每一台在登记的服务器均会被ansible工具管理,所述ansible工具拥有最高的执行权限,每一个原子任务均会触发一次服务器指令执行,ansible工具从执行机中选择,相对空闲的服务器去执行,执行将脚本传输到目标服务器,并触发脚本中指定的操作步骤。

11、作为优选技术方案,所述数据库切换的具体步骤如下:

12、进行数据库状态校验;

13、通过指令下线指定主数据库服务器的虚拟ip地址,业务通过dns连接数据库,dns解析数据库集群的虚拟ip地址;所述的虚拟ip地址和主数据库在一台服务器的不同网卡;

14、通过全局变量设置主数据库状态为只读,使所有的用户均无法连接,同时修改配置文件,使得数据库重启后,只读设置失效;

15、从数据库校验主从状态;

16、主数据库开启全日志刷新,记录每次连接和断开以及会话级语句并保存,在切换结束后关闭全日志刷新;

17、从数据库开启全日志刷新,记录切换前的主机和备机的连接和断开以及会话级语句并保存;

18、从数据库切换为主数据库,清除原主备关系,并记录从数据库的切换前位置参数;

19、主数据库切换为从数据库,清除原有的主备关系,重在新的从数据库建立新的主备关系,并检测建立主备关系的校验项;

20、执行主从关系检验;

21、新主数据库修改配置,包括:配置文件参数和全局变量参数设置新主数据库状态为只读、开启定时任务、关闭全日志刷新;

22、新主数据库上线vip,进行业务连接;

23、原主数据库将白名单之外的进程全部停止;

24、原主数据库所有的进程均停止后,无业务连接,修改原主数据库配置;

25、再次执行主从关系检验,校验成功,则切换完成。

26、作为优选技术方案,所述的从数据库校验主从状态包括:查询全局变量状态,以保证从库数据和主库数据同步状态正常;校验从库的大小写敏感关闭;校验从数据库只读状态开启使所有用户均无法写入;校验配置文件中的参数是否和内存数据相同;校验从库记录主数据库的更新操作开启。

27、作为优选技术方案,所述的通过全局变量设置主数据库状态为只读设置为临时设置,修改配置文件,使得数据库重启后,主数据库状态为只读设置失效。

28、作为优选技术方案,所述的建立主从关系的校验项包括:slave_io_running、slave_sql_running,保证新主库和从库之间的可以正常的数据同步;last_io_error,保证主备关键正常建立,且没有报错。

29、作为优选技术方案,所述的主从关系检验包括:校验主从是否可以有延迟;判断从库读取到的文件和从库已经重放到主库的binlog文件是否相同,即备机是否已经完成数据的重放;比较判断从库读取主库的binlog文件的日志偏移量和从库已经重放到了主库的binlog文件的偏移量是否相同,即从库是否已经重放到指定的偏移量。

30、作为优选技术方案,如果所述原主数据库执行三次将白名单之外的进程全部停止后仍有白名单外的连接进程,则重启数据库进程。

31、作为优选技术方案,当主数据库无法提供服务,进行数据库故障切换步骤,具体如下:

32、通过操作系统指令下线指定服务器的主数据库虚拟机vip;

33、进行切换之前,从数据库开启全日志刷新,记录切换前的主机和备机的连接和断开以及会话级语句并保存;

34、从数据库切换为主数据库,清除原主备关系,并记录从数据库的切换前位置参数;

35、新主数据库修改配置,配置文件参数和全局变量参数修改为只读,开启定时任务并关闭全日志刷新;

36、新主数据库上线刷新vip,进行业务连接。

37、与现有技术相比,本专利技术具有以下有益效果:

38、1)本专利技术提出了一种在确保不丢失数据的情况下完成数据库批量切换演练方案,通过数据库运维本文档来自技高网...

【技术保护点】

1.一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,步骤包括:

2.根据权利要求1所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述的原子任务采用可脱拽式的原子任务编排,原子任务可编排在整个处理流程的任意位置,并能够可重复使用原子任务。

3.根据权利要求1所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,每一台在登记的服务器均会被ansible工具管理,所述ansible工具拥有最高的执行权限,每一个原子任务均会触发一次服务器指令执行,ansible工具从执行机中选择,相对空闲的服务器去执行,执行将脚本传输到目标服务器,并触发脚本中指定的操作步骤。

4.根据权利要求1所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述数据库切换的具体步骤如下:

5.根据权利要求4所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述的从数据库校验主从状态包括:查询全局变量状态,以保证从库数据和主库数据同步状态正常;校验从库的大小写敏感关闭;校验从数据库只读状态开启使所有用户均无法写入;校验配置文件中的参数是否和内存数据相同;校验从库记录主数据库的更新操作开启。

6.根据权利要求4所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述的通过全局变量设置主数据库状态为只读设置为临时设置,修改配置文件,使得数据库重启后,主数据库状态为只读设置失效。

7.根据权利要求4所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述的建立主从关系的校验项包括:Slave_IO_Running、Slave_SQL_Running,保证新主库和从库之间的可以正常的数据同步;Last_IO_Error,保证主备关键正常建立,且没有报错。

8.根据权利要求4所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,所述的主从关系检验包括:校验主从是否可以有延迟;判断从库读取到的文件和从库已经重放到主库的binlog文件是否相同,即备机是否已经完成数据的重放;比较判断从库读取主库的binlog文件的日志偏移量和从库已经重放到了主库的binlog文件的偏移量是否相同,即从库是否已经重放到指定的偏移量。

9.根据权利要求4所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,如果所述原主数据库执行三次将白名单之外的进程全部停止后仍有白名单外的连接进程,则重启数据库进程。

10.根据权利要求1所述的一种基于高可用演练的MySQL数据库批量切换方法,其特征在于,当主数据库无法提供服务,进行数据库故障切换步骤,具体如下:

...

【技术特征摘要】

1.一种基于高可用演练的mysql数据库批量切换方法,其特征在于,步骤包括:

2.根据权利要求1所述的一种基于高可用演练的mysql数据库批量切换方法,其特征在于,所述的原子任务采用可脱拽式的原子任务编排,原子任务可编排在整个处理流程的任意位置,并能够可重复使用原子任务。

3.根据权利要求1所述的一种基于高可用演练的mysql数据库批量切换方法,其特征在于,每一台在登记的服务器均会被ansible工具管理,所述ansible工具拥有最高的执行权限,每一个原子任务均会触发一次服务器指令执行,ansible工具从执行机中选择,相对空闲的服务器去执行,执行将脚本传输到目标服务器,并触发脚本中指定的操作步骤。

4.根据权利要求1所述的一种基于高可用演练的mysql数据库批量切换方法,其特征在于,所述数据库切换的具体步骤如下:

5.根据权利要求4所述的一种基于高可用演练的mysql数据库批量切换方法,其特征在于,所述的从数据库校验主从状态包括:查询全局变量状态,以保证从库数据和主库数据同步状态正常;校验从库的大小写敏感关闭;校验从数据库只读状态开启使所有用户均无法写入;校验配置文件中的参数是否和内存数据相同;校验从库记录主数据库的更新操作开启。

6.根据权利要求4所述的一种基于高可用演练的mysql数据库批量切换方...

【专利技术属性】
技术研发人员:佟雷声铁锦程李虎吴建华王平正
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1