CN117762645B - 数据库集群的管理方法及存储介质 - Google Patents
数据库集群的管理方法及存储介质 Download PDFInfo
- Publication number
- CN117762645B CN117762645B CN202410195725.4A CN202410195725A CN117762645B CN 117762645 B CN117762645 B CN 117762645B CN 202410195725 A CN202410195725 A CN 202410195725A CN 117762645 B CN117762645 B CN 117762645B
- Authority
- CN
- China
- Prior art keywords
- database
- parameter
- configuration
- parameters
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 38
- 238000007726 management method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000013515 script Methods 0.000 claims abstract description 51
- 238000005457 optimization Methods 0.000 claims abstract description 29
- 238000004458 analytical method Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 50
- 239000003795 chemical substances by application Substances 0.000 claims description 44
- 230000010354 integration Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 15
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据库集群的管理方法及存储介质,涉及但不限于数据库技术领域,方法包括:获取为待部署数据库所在的设备节点创建的配置参数解析接口函数以及对应的第一脚本、第一定时任务;接收对目标数据库发起的数据库配置请求,并解析出第一配置参数;调用配置参数解析接口函数对第一配置参数进行数据库参数转换处理,得到对目标数据库配置的目标数据库的第二配置参数;通过第一定时任务采集目标数据库所在的设备节点的第一内核参数;根据第一内核参数及第一脚本中的资源优化规则,对目标数据库的数据库参数中的性能参数进行调整。存储介质实现上述方法,本申请实施例能提升数据库集群的部署的便利性以及提升数据库集群部署后的扩展性。
Description
技术领域
本申请实施例涉及但不限于数据库技术领域,特别涉及一种数据库集群的管理方法及存储介质。
背景技术
在当前云计算和虚拟化技术的普及背景下,对于构建高效、灵活的数据中心解决方案的需求日益增加。而相关技术中由于数据库集群从搭建到使用的整个管理过程,数据库的稳定性和性能与所在设备节点的运行环境息息相关从而导致影响数据库稳定性和性能的因素较多,因此,现有的对数据库集群搭建过程均过于繁杂,且部署完成后对数据库的修改也比较困难,从而导致数据库可扩展性差。
发明内容
本申请实施例提供一种数据库集群的管理方法及存储介质,旨在提升数据库集群的部署的便利性以及提升数据库集群部署后的扩展性。
第一方面,本申请实施例提供一种数据库集群的管理方法,应用于云平台,所述数据库集群的管理方法包括:
获取为待部署的数据库集群中每一数据库所在的设备节点创建的配置参数解析接口函数以及对应的第一脚本、第一定时任务;其中,所述第一脚本配置有资源优化规则;
接收对所述数据库集群中目标数据库发起的数据库配置请求,并从所述数据库配置请求中解析出第一配置参数;
调用所述配置参数解析接口函数对所述第一配置参数进行数据库参数转换处理,得到所述目标数据库的第二配置参数;
根据所述第二配置参数,对所述目标数据库的数据库参数进行配置;
通过所述第一定时任务采集所述目标数据库所在的设备节点的第一内核参数;
根据所述第一内核参数以及所述资源优化规则,对所述目标数据库的所述数据库参数中的性能参数进行调整。
第二方面,本申请实施例提供一种存储介质,包括存储有计算机可执行指令,所述计算机可执行指令用于执行如第一方面任一所述的数据库集群的管理方法。
本申请的上述实施例,至少具有如下有益效果:通过在云平台上配置配置参数解析接口函数实现对数据库的外部传参,使得数据库集群在部署前或者部署后均可以实现对数据库参数的集中和批量下发且能即时生效,同时,还通过配置第一脚本和第一定时任务,使得各数据库可以依据配置的第一脚本实现性能参数的自动调整,从而在满足个性化配置的同时简化人为部署,且随着硬件环境的变更,也无需人员参与即可实现自动调节。因此,本申请实施例的数据库集群的管理方法能提升数据库集群的部署的便利性以及提升数据库集群部署后的扩展性。
附图说明
图1为本申请一实施例提供的数据库集群的管理方法的数据库配置的流程示意图;
图2为本申请另一实施例提供的数据库集群的管理方法的执行数据库配置前的流程示意图;
图3为本申请另一实施例提供的数据库集群的管理方法的管理过程的流程示意图;
图4为本申请提供的数据库集群的管理方法的一种应用场景的场景示意图;
图5为本申请提供的数据库集群的管理方法对应的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
下面是对本申请中术语的解释:
dbm-agent,也即数据库管理系统代理,是一款数据库管理中心客户端程序,可以帮助用户高效地管理多种类型的数据库。
OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。为私有云和公有云提供可扩展的弹性的云计算服务。
mysqld_exporter,用于监控MySQL运行状态的exporter。
应理解的是,在当前云计算和虚拟化技术的普及背景下,对于构建高效、灵活的数据中心解决方案的需求日益增加。而相关技术中由于数据库集群从搭建到使用的整个管理过程,数据库的稳定性和性能与所在设备节点的运行环境息息相关从而导致影响数据库稳定性和性能的因素较多,如数据库的性能参数调整困难,而采用传统的手动调整数据库性能参数的方式在大型数据库集群场景下操作非常繁琐且容易出错;又如数据库集群关系建立复杂,采用传统手工配置方式容易出现配置错误进而导致集群关系建立失败;又如数据库自动切换功能缺失,从而导致在数据库故障时,需要人工干预进行数据库切换,增加了维护难度。又如数据库监控不完善,无法实时获取数据库运行状态,无法及时发现并处理数据库问题。因此,现有的对数据库集群搭建过程过于繁杂,部署完成后的数据库可扩展性差。基于此,本申请实施例提供一种数据库集群的管理方法及存储介质,旨在提升数据库集群的部署的便利性以及提升数据库集群部署后的扩展性。
第一方面,如图1所示,本申请实施例提供一种数据库集群的管理方法,其应用于云平台,该数据库集群的管理方法包括:
步骤S100、获取为待部署的数据库集群中每一数据库所在的设备节点创建的配置参数解析接口函数以及对应的第一脚本、第一定时任务;其中,第一脚本配置有资源优化规则;
步骤S200、接收对数据库集群中目标数据库发起的数据库配置请求,并从数据库配置请求中解析出第一配置参数;
步骤S300、调用配置参数解析接口函数对第一配置参数进行数据库参数转换处理,得到目标数据库的第二配置参数;
步骤S400、根据第二配置参数,对目标数据库的数据库参数进行配置;
步骤S500、通过第一定时任务采集目标数据库所在的设备节点的第一内核参数;
步骤S600、根据第一内核参数以及资源优化规则,对目标数据库的数据库参数中的性能参数进行调整。
因此,通过在云平台上配置配置参数解析接口函数实现对数据库的外部传参,使得数据库集群在部署前或者部署后均可以实现对数据库参数的集中和批量下发且能即时生效,同时,还通过配置第一脚本和第一定时任务,使得各数据库可以依据配置的第一脚本实现性能参数的自动调整,从而在满足个性化配置的同时简化人为部署,且随着硬件环境的变更,也无需人员参与即可实现自动调节。因此,本申请实施例的数据库集群的管理方法能提升数据库集群的部署的便利性以及提升数据库集群部署后的扩展性。
应理解的是,配置参数解析接口函数、对应的第一脚本、第一定时任务可以分别获取也可以运行时同时获取。对此,本申请实施例不做限制。数据库集群中各数据库共享同一第一脚本。
应理解的是,可以修改源代码使得云平台支持配置参数解析接口函数,配置参数解析接口函数可以用于配置调用数据库指令对数据库运行所需的数据库参数直接修改,例如,可以支持设置缓冲池大小、最大连接数等参数。在一些实施例中,配置参数解析接口函数提供参数的合理判断。在另一些实施例中,还提供一套RESTful API接口,供云外部调用该配置参数解析接口函数。云外部可以通过调用这些接口来传递参数,比如使用OpenStack的API来传递参数从而实现目标数据库配置得到个性化。
应理解的是,资源优化规则为按照预先设定的规则来根据实际的第一内核参数动态调整对应的性能参数。在一些实施例中,资源优化规则对应设置有条件语句,从而可以依据实际的第一内核参数进行动态调整,如第一内核参数包括CPU和内存,则将CPU分别4核,8核及大于8核的判断,内存分别进行4G,8G,16G的判断;在一些实施例中,步骤S200中传入的第一配置参数对应的数据库参数与步骤S600中调整的性能参数存在重合,则在资源优化规则中还进一步增加条件语句以降低配置参数解析接口函数与第一内核参数动态调整两种方式下对同一性能参数的反复调整。应理解的是,第一配置参数为表示用户意图的数据库参数,第二配置参数为数据库支持的数据库参数。如数据库参数为布尔类型,则第一配置参数输入可以是“开”,相应的,第二配置参数对应为TRUE;从而通过这种方式可以简化人为配置。
应理解的是,第一定时任务可以是周期触发任务,也可以是外部触发任务,对此,本申请实施例不做过多约束。优选的,本申请实施例中,将第一定时任务设置为周期触发任务,以对动态变化的第一内核参数进行性能参数的实时动态调整。
应理解的是,步骤S500~步骤S600可以实现自动适配CPU核数与内存空间等第一内核参数来调整数据库的性能参数,从而可以自动根据CPU和内存的使用情况调整数据库性能参数,提高数据库性能。第一内核参数反映了设备节点的调用数据库的性能。因此,第一内核参数包括但不限于最大连接数参数、缓存线程参数、缓冲池参数及索引块缓冲区参数。
应理解的是,第一脚本为自动化脚本,可以直接调用数据库的命令。通过编写自动化脚本来减少手动操作,可以降低出错几率,并提高部署效率,同时通过第一定时任务可以动态采集第一内核参数,从而可以实现部分数据库参数的自动调整,实现更高效、可靠、易拓展和易维护。
示例性的,以第一内核参数包括CPU核数为例,其中,CPU核数为if cpu_cores;最大连接数参数为max_connections;缓存线程参数为thread_cache_size;则资源优化规则设置如下:
{% if cpu_cores<4 %};
max_connections=‘{{min(max_connections,150)}}’;
thread_cache_size=‘{{min(thread_cache_size,32)}}’;
{% elif cpu_cores<8 %};
max_connections=‘{{min(max_connections,300)}}’;
thread_cache_size=‘{{min(thread_cache_size,64)}}’;
{% else %};
max_connections=‘{{min(max_connections,500)}}’;
thread_cache_size=‘{{min(thread_cache_size,128)}}’;
{% endif %}。
因此,通过上述资源优化规则的配置可以实现不同硬件条件下的数据库性能参数的动态配置。当CPU核数为4核,则如上资源优化规则所示,会进入到第一个分支,此时会将性能参数中最大连接数参数设置为当前值和150中最小的;将性能参数中缓存线程参数设置为当前值和32中最小的。
示例性的,以第一内核参数包括可用内存空间为例,其中,可用内存空间为iftotal_memory;缓冲池参数为innodb_buffer_pool_size;索引块缓冲区参数为key_buffer_size;则资源优化规则设置如下:
{% if total_memory<4 %};
innodb_buffer_pool_size=‘{{min(innodb_buffer_pool_size,‘1G’)}}’;
key_buffer_size=‘{{min(key_buffer_size,‘256M’)}}’;
{% elif total_memory<8 %};
innodb_buffer_pool_size=‘{{min(innodb_buffer_pool_size,‘2G’)}}’;
key_buffer_size=‘{{min(key_buffer_size,’512M’)}}’;
{% elif total_memory<16 %};
innodb_buffer_pool_size=‘{{min(innodb_buffer_pool_size,‘8G’)}}’;
key_buffer_size=‘{{min(key_buffer_size,‘2G’)}}’;
{% else %};
innodb_buffer_pool_size=‘{{min(innodb_buffer_pool_size,‘4G’)}}’;
key_buffer_size=‘{{min(key_buffer_size,‘1G’)}}’;
{% endif %}。
因此,通过上述资源优化规则的配置可以实现不同硬件条件下的数据库性能参数的动态配置。当可用内存空间<4%,如上资源优化规则所示,会进入到第一个分支,则将性能参数中缓冲池参数设置为当前值和1G中最小的;性能参数中索引块缓冲区参数设置为当前值和256M中最小的。
应理解的是,上述资源优化规则中使用了Jinja2模板语法来实现根据系统CPU核数和内存大小进行参数配置的依赖判断。在一些实施例中,为了支持传参将值替换,Jinja2模板语法采用了{{ }}变量格式来支持替换,同时为了保障参数合理值,在第一脚本中还给了判断对应的CPU或内存中默认值的最小值,如在模板中使用了{% if %}和{% for %}条件语句,通过传入自定义合法参数来实现自定义参数的替换。这样,可以根据实际需要在传参时提供额外的配置项,模板会将其自动替换到生成的MySQL配置文件中。
可理解的是,云平台集成有数据库管理系统代理dbm-agent,第一脚本通过如下步骤创建:
在dbm-agent中获取预设的配置模板引擎;
在配置模板引擎中,确定待动态配置的第一数据库参数变量;
获取第一数据库参数变量的赋值逻辑,得到资源优化规则;
根据第一数据库参数变量、资源优化规则和配置模板引擎,得到第一脚本。
应理解的是,配置模板引擎为dbm-agent提供的Jinja2模板格式的配置文件,支持{{ }}变量格式,支持条件语句以及自定义合法参数等脚本语句的设置。示例性的,如配置模板引擎为mysql-*.cnf.jinj。本领域技术人员可以根据实际需求选择一个或多个模板进行修改。不同的配置模板引擎可以对应同一个第一脚本,也可以一一对应一个脚本,对此,本申请实施例不做限制。通过采用系统自带的模板,可以简化对数据库参数变量的查询,操作更为便利。
应理解的是,dbm-agent是专门设计用于管理和监控MySQL主从集群的工具,具有与MySQL集群相关的功能和特性。和传统的脚本相比,传统的脚本是基于通用的脚本语言编写的,需要自行实现MySQL主从集群管理逻辑。因此,通过dbm-agent可以简化第一脚本的配置,且能简化资源优化规则的规则,进而进一步提升部署和拓展的便利性。
应理解的是,dbm-agent提供了一系列内置的功能和命令,用于执行MySQL主从集群的管理操作,例如主从切换、备份和恢复、故障检测和修复等。这些功能在dbm-agent中经过优化和测试,可以提供更可靠和稳定的集群管理。因此,在一些实施例中,集成了dbm-agent后还可以实现数据库自动切换功能,以在数据库故障时,可以通过dbm-agent实现数据库的自动切换,减少人工干预,降低维护难度,具体如创建第三脚本,其中第三脚本用于:在检测到主数据库异常时,将主数据库停止并标记为不可用,以确保停止操作;将该主数据库对应的其中一个从数据库设置为可写模式作为新的主数据库,以接受新的写入操作;将业务VIP的IP关联到新的主数据库,并停止原主数据库的VIP,实现应用无需修改可连接数据库。
可理解的是,调用配置参数解析接口函数对第一配置参数进行数据库参数转换处理,得到目标数据库的第二配置参数,包括:
根据第一配置参数,调用配置参数解析接口函数提取目标数据库支持的目标参数类型;
根据目标参数类型对第一配置参数进行数据转换,得到第二配置参数。
应理解的是,在参数解析函数中,解析传入的参数并将其转换为适当的数据类型。可以弱化用户面对具体参数类型的设置要求,从而提升配置的便利性,提升部署的便利性。目标参数类型如数字、布尔值等。应理解的是,不同的数据库参数所采用的参数类型存在差异化,因此,目标参数类型表示第一配置参数对应的数据库参数支持的参数类型。示例性的,如对于布尔类型的参数,可以将字符串"true"和"false"转换为对应的布尔值。对于数值类型的参数,可以使用int()或float()函数将字符串转换为整数或浮点数。
应理解的是,在一些实施例中,为了进一步使得数据库的配置能够实现个性化,可以将上述类型的提取以及合理性判断与Jinja2模板的渲染过程结合起来,也即将类型的提取以及合理性判断放在Jinja2模板中,形成个性化脚本,在实际运行中通过分别提取Jinja2脚本中定义的目标数据库的与第一配置参数对应的目标参数类型的匹配逻辑以及对第二配置参数的合理性判断逻辑,从而实现不同数据库下的配置参数解析接口函数的设定。示例性的,如可以将第一配置参数作为Jinja2模板的变量传入,以根据传入的参数值动态调整配置,其中,在模板文件中使用这些变量进行条件判断、循环等操作,以生成最终的个性化配置文件。
应理解的是,在一些实施例中,第一配置参数还可以使用正则表达式或字符串处理函数来解析参数中的数字、布尔值等。
可理解的是,在进行数据库参数配置之前,步骤S300中调用配置参数解析接口函数对第一配置参数进行数据库参数转换处理,得到目标数据库的第二配置参数,还包括以下至少之一:
调用配置参数解析接口函数,在第二配置参数为数值类型时,将第二配置参数与预设的数值阈值进行比较,以判断第二配置参数是否有效;
调用配置参数解析接口函数,在第二配置参数为字符类型时,将第二配置参数和预设的参数列表进行匹配,以判断第二配置参数是否有效;
相应的,步骤S400、根据第二配置参数,对目标数据库的数据库参数进行配置,包括:
当第二配置参数有效,根据有效的第二配置参数对目标数据库进行数据库参数配置。
因此,通过加入参数有效性判断,增加使用条件语句来判断参数的范围限制和有效性,从而提升配置的安全性。
应理解的是,数值阈值为预先设定的,可以是最大值或者最小值,具体本领域技术人员可以根据实际需求选择性设置,因此对于数值参数,通过比较传入的值与预定义的最小值和最大值来判断参数是否在有效范围内,可以提升配置的安全性。
应理解的是,参数列表为预定义的列表,对于字符串类型的参数,可以使用in操作符来判断传入的值是否在预定义的列表中,可以提升配置的安全性。
应理解的是,在一些实施例中,如果参数不在合理范围内或不符合有效性要求,可以引发异常或返回错误信息。
可理解的是,第二配置参数包括连接配置值、缓存线程配置值、缓存线程配置值、缓冲池大小配置值以及索引块缓冲区大小值;步骤S400、根据第二配置参数,对目标数据库的数据库参数进行配置,包括:
将目标数据库中数据库参数的最大连接数参数的数值设置为连接配置值;
将目标数据库中数据库参数的缓存线程参数的数值设置为缓存线程配置值;
将目标数据库中数据库参数的缓冲池参数的数值设置为缓冲池大小配置值;
将目标数据库中数据库参数的索引块缓冲区参数的数值设置为索引块缓冲区大小值。
应理解的是,第二配置参数可以直接作用于数据库参数并立即生效。
应理解的是,目标数据库为MySQL,最大连接数参数对应数据库参数中的max_connections;缓存线程参数对应数据库参数中的thread_cache_size。缓冲池参数对应数据库参数中的innodb_buffer_pool_size;索引块缓冲区参数对应数据库参数中的key_buffer_size。
可理解的是,第一内核参数包括CPU核数和可用内存空间;资源优化规则包括CPU配置规则和内存配置规则;性能参数包括最大连接数参数、缓存线程参数、缓冲池参数及索引块缓冲区参数;根据第一内核参数以及资源优化规则,对目标数据库的数据库参数中的性能参数进行调整,包括:
按照CPU配置规则,确定CPU核数对应的最大连接建立数和缓存线程数,CPU配置规则用于记录CPU核数与最大连接建立数、缓存线程数之间的匹配规则;
将最大连接数参数更新为当前最大连接数参数与最大连接建立数中的最小值;
将缓存线程参数更新为当前缓存线程参数与缓存线程数中的最小值;
按照内存配置规则,确定可用内存空间对应的缓冲池最大值以及索引块缓冲区最大值,内存配置规则用于记录可用内存空间与缓冲池最大值、索引块缓冲区最大值之间的匹配规则;
将缓冲池参数更新为当前缓冲池参数和缓冲池最大值中的最小值;
将索引块缓冲区参数更新为当前索引块缓冲区参数和索引块缓冲区最大值中的最小值。
应理解的是,对性能参数中的每一参数均选择最小值进行赋值,可以在与通过配置参数解析接口函数配置的场景下配置重合时,不会导致参数的覆盖,降低配置反复更改的概率。
应理解的是,在一些实施例中,最大连接建立数、缓存线程数、缓冲池最大值以及索引块缓冲区最大值可以通过配置参数解析接口函数进行动态配置以即时生效,也可以通过配置脚本在数据库重启后生效,在另一些实施例中,也可以是人为设定的固定值,对此,本申请实施例不做限制。
可理解的是,在步骤S100之后,方法还包括以下至少之一:
根据各数据库的负载数据,对目标数据库进行线程优先级调整;
根据各数据库的负载数据,对目标数据库进行缓存查询结果的内存大小调整;
根据各数据库的负载数据,对目标数据库进行缓存表结构的内存大小调整;
根据各数据库的负载数据,对目标数据库进行排序操作的内存大小调整;
根据各数据库的负载数据,对目标数据库进行存储引擎日志文件大小调整;
根据各数据库的负载数据,对目标数据库进行存储引擎刷新策略调整;
根据各数据库的负载数据,对目标数据库进行日志刷新策略调整;
根据各数据库的负载数据,对目标数据库进行存储引擎读操作的线程数调整;
根据各数据库的负载数据,对目标数据库进行存储引擎写操作的线程数调整。
应理解的是,负载数据可以通过启动第二定时任务,实时检测CPU和内存使用情况,从而得到负载数据,以并自动调整MySQL可动态调整的参数。因此,通过定期收集实例的性能指标,并根据阈值和算法进行参数调整,可以实现更精确和实时的数据库的参数优化。
应理解的是,负载数据表示CPU和内存承载能力,如负载数据包括主CPU或内存高达80%。
应理解的是,线程优先级调整、缓存查询结果的内存大小调整、缓存表结构的内存大小调整、排序操作的内存大小调整、存储引擎日志文件大小调整、存储引擎刷新策略调整、日志刷新策略调整、存储引擎读操作的线程数调整、存储引擎写操作的线程数调整,可以通过以下三种方式实现:
1)在dbm-agent中编写第二脚本或者在第一脚本中增加相应调整规则来实现动态调整参数的功能。例如,可以使用Python脚本来读取系统负载信息,当主CPU或内存高达80%时,通过“os.system()”函数执行“renice -n -10 进程ID”命令来提升MySQL进程的优先级,从而提高性能。
2)脚本修改配置文件:可以直接在数据库的配置文件中修改相关参数,如最大连接数、线程缓存大小等。然后重启数据库服务使配置生效。
3)脚本使用SET命令:可以通过配置参数解析接口函数调用数据库的命令行中执行“SET GLOBAL 参数名 = 值”命令来动态调整参数。例如,要调整最大连接数为1000,可以执行“SET GLOBAL max_connections = 1000”,而这些参数同样采用Jinja2模板条件判断,以实现个性化设置。
应理解的是,缓存查询结果的内存大小调整表示对数据库参数中的query_cache_size进行调整。
应理解的是,缓存查询结果的内存大小调整表示对数据库参数中的table_open_cache进行调整。
应理解的是,排序操作的内存大小调整表示对数据库参数中的sort_buffer_size进行调整。
应理解的是,存储引擎日志文件大小调整表示对数据库参数中的innodb_log_file_size进行调整。
应理解的是,存储引擎刷新策略调整表示对数据库参数中的innodb_flush_method进行调整。
应理解的是,日志刷新策略调整表示对数据库参数中的innodb_flush_log_at_trx_commit进行调整。
应理解的是,存储引擎读操作的线程数调整表示对数据库参数中的innodb_read_io_threads进行调整。
应理解的是,存储引擎写操作的线程数调整表示对数据库参数中的innodb_write_io_threads进行调整。
可理解的是,负载数据通过云平台集成的mysqld_exporter实时提供。
可理解的是,如图2所示,在创建配置参数解析接口函数之前,方法还包括:
步骤S710、创建虚拟机;
步骤S720、将虚拟机的操作系统的第二内核参数调整至预设内核参数;
步骤S730、在虚拟机上集成dbm-agent,以在dbm-agent中创建配置参数解析接口函数以及第一脚本;
步骤S740、在虚拟机上集成mysqld_exporter,以获取性能数据,性能数据包括负载数据;
步骤S750、响应于虚拟机的镜像生成请求关闭虚拟机并生成虚拟机的镜像;
步骤S760、为镜像创建数据库实例。
预设内核参数为预先设定的,具体可以根据实际需求选择性设置。第一内核参数用于表示操作系统不可变更的硬件属性的指标参数,如内存、如内核。第二内核参数用于表示操作系统中允许变更的软件属性的指标参数,如用户限制以及文件打开数。
应理解的是,dbm-agent可以自动化配置和部署数据库,降低了手动操作的繁琐和出错的风险;这大大提高了搭建和管理数据库集群的效率,降低了运维人员的工作量。
应理解的是,通过mysqld_exporter的监控功能,可以及时发现和解决数据库的异常情况,提升了数据库的稳定性和性能。
应理解的是,dbm-agent和mysqld_exporter的结合使用,使得MySQL集群在云环境中具有高可用性和扩展性。从而可以根据业务需求轻松地扩展数据库资源,满足不断增长的数据存储和处理需求。
应理解的是,dbm-agent和mysqld_exporter可以与OpenStack镜像更好地集成,确保环境的统一性和部署的容易扩展。从而在构建和管理MySQL集群时,可以充分利用云计算和虚拟化技术的优势,实现更高效、灵活和可靠的数据库管理。
因此,通过在云平台上集成dbm-agent并创建镜像示例可以简化数据库集群关系建立以及完善数据库监控,具体为通过自动化的方式建立数据库集群关系,减少人为错误,提高集群建立成功率,利用云镜像可实现环境的统一与扩容维护,并通过集成mysqld_exporter监控工具,可以实时获取数据库运行状态,及时发现并处理数据库问题。
应理解的是,在一些实施例中,部署方法还包括通过dbm-agent进行数据同步,从而可以在故障转移后,通过dbm-agent确保数据的一致性和同步。例如,当主备数据库切换时,dbm-agent会自动将原主数据库中的数据同步到待升主的备份数据库,以保证数据的完整性。
应理解的是,通过上述方法可知,本申请实施例通过利用dbm-agent在云平台中实现数据库镜像和虚拟机主从复制,能做到数据一致性、负载均衡、数据库扩展性、高可用性、数据备份与恢复、简化运维、资源整合,具体操作包括:在OpenStack上创建一台虚拟机,并优化该虚拟机的系统第二内核参数,在该虚拟机上部署源码编译环境,安装与初始化dbm-agent,并在dbm-agent中集成一个自定义的配置管理模块,用于实现配置参数解析接口函数以使数据库的配置支持云外部传参,并调用第一定时任务来自动检测CPU与内存等第一内核参数来调整性能参数,同时在该虚拟机上部署mysqld_exporter,制作为该虚拟机部署镜像、上传镜像,从而在示例化后,各部署镜像示例的设备节点在运行后可以执行部署数据库。本申请将dbm-agent与OpenStack环境相结合,还可以利用dbm-agent的实时数据同步功能,将主服务器的数据实时复制到从服务器,在OpenStack环境中进行MySQL主从复制,同时自动部署了数据库的性能监控,进一步使得管理过程更为高效、可靠、易扩展和易维护。
应理解的是,在一些实施例中,主从切换可以通过如下方式确定,通过dbm-agent定时执行检测步骤,例如检查主MySQL的运行状态,具体为使用SQL查询、系统命令或通过API等方式实现运行状态的查询。当dbm-agent可以检测到主MySQL异常(例如主机宕机、主MySQL进程停止等),则触发主从切换操作,如一旦dbm-agent检测到主MySQL异常,选定一个从设备,并进行主从切换。
应理解的是,在一些实施例中,在一些实施例中,还可以通过dbm-agent实现数据库的自动化备份,实现固定周期固定数量的数据备份,如默认每天3点执行备份,备份存放最大5份。
应理解的是,在一些实施例中,还可以通过部署mysqld_exporter,收集MySQL数据库的性能指标并暴露给Prometheus进行监控和报警,执行查询和命令来获取各种指标数据,包括数据库连接数、查询执行时间、缓存命中率、索引使用情况,主从复制关系信息,通过上述指标来检测MySQL数据库的性能和健康状况。
应理解的是,基于镜像文件创建数据库实例可以通过questfish修改镜像文件来部署镜像制作;然后登录到OpenStack控制台或使用OpenStack命令行工具来上传镜像,确保镜像文件正确、完整,并且与OpenStack所支持的镜像格式兼容,进行镜像实例的部署。
下面以云平台为Openstack,数据库为MySQL为例,参照图3所示描述本申请一个具体实施例实现的数据库集群管理的方法:
步骤S1、创建一台虚拟机;具体为:在Openstack云环境上创建一台虚拟机,并为该虚拟机选择支持dbm-agent的操作系统。
步骤S2、系统第二内核参数优化,从而通过调整操作系统的ulimit(用户限制)和文件打开数可以改善MySQL的性能和稳定性。下面是调整ulimit和文件打开数的步骤:
1.修改ulimit:
1.1查看当前ulimit设置:在终端命令行中,使用“ulimit -n”查看当前ulimit设置。
1.2临时修改ulimit:如果需要临时修改ulimit,可以使用“ulimit -n<新的文件打开数限制>”进行修改。其中,<新的文件打开数限制>需要设置的新值。
1.3永久修改ulimit:
要永久修改ulimit,需要编辑系统的配置文件。具体文件和修改方式因操作系统不同而有所不同。例如,对于Ubuntu和Centos系统,可以编辑/etc/security/limits.conf文件,添加“* soft nofile<新的文件打开数限制>”以及“* hard nofile<新的文件打开数限制>”来设置ulimit。
2.修改系统文件打开的最大数:
要查看当前的fs.file-max值,可以在终端中运行“sysctl fs.file-max”命令。
2.1要临时修改fs.file-max值,可以使用“sudo sysctl -w fs.file-max=<新的最大文件句柄数>”命令。
2.2要永久修改fs.file-max值,可以编辑/etc/sysctl.conf文件,并添加“fs.file-max=<新的最大文件句柄数>”。
2.3保存文件后,运行“sudo sysctl -p”命令使修改生效。
步骤S3、部署python3.6以上版本源码编译环境;
步骤S4、安装与初始化dbm-agent;
步骤S5、定制MySQL配置文件,修改源代码支持云外部传参,自动检测CPU与内存调整MySQL参数(也即创建配置参数解析接口函数、第一脚本以及第一定时任务),具体包括如下:
5.1 数据库的性能参数优化;
将步骤4中生成MySQL-*.cnf.jinja模板中一些MySQL的性能参数变更为依赖取系统CPU与内存大小做一些变量的值的更换,得到第一脚本。其中,不同版本的性能参数也不一样。
应理解的是,如果要根据系统内存和CPU更换参数变量,可以通过使用Jinja2模板中的条件语句来实现从而通过Jinja2模板语法来实现根据系统CPU核数和内存大小进行参数配置的依赖判断。另外,为了支持传参将值替换,采用了{{ }}变量格式来支持替换,同时为了保障参数合理值,模板给了判断对应的CPU或内存中默认值的最小值,如在模板中使用了{% if %}和{% for %}条件语句,通过传入自定义合法参数来实现自定义参数的替换。这样,可以根据实际需要在传参时提供额外的配置项,模板会将其自动替换到生成的MySQL配置文件中。
5.2部署cloud-init工具,以实现配置参数解析接口函数的外部传参;
应理解的是,cloud-init是一个在云环境中自动化配置实例的工具。是一个跨平台的工具,可在各种云提供商和虚拟化平台上使用,若没部署需部署此工具,主要目标是为了在建MySQL实例上能指定角色,端口及数据目录。
cloud-init的主要功能包括:
1)用户数据初始化:通过在实例启动时提供用户数据,可以自动执行一系列命令和配置操作,来自定义实例的初始设置。
2)网络配置:cloud-init可以配置实例的网络设置,包括IP地址、DNS服务器、网关、路由等。
3)用户账号和SSH密钥管理:可以通过cloud-init创建用户账号、设置密码或SSH密钥,并配置sudo权限。
4)主机名配置:可以设置实例的主机名,以便更好地识别和管理实例,配置VIP等。
5)数据驱动的元数据服务:可以从云平台的元数据服务中获取实例的元数据,如实例ID、实例类型、区域等。
其中,可以通过cloud-init安装软件包、运行脚本或执行其他自定义操作。
步骤S6、部署mysqld_exporter,具体如下:
mysqld_exporter是一个用于监控MySQL数据库的开源软件。是Prometheus生态系统中的一个组件,可以通过收集MySQL数据库的性能指标并暴露给Prometheus进行监控和报警。
mysqld_exporter通过连接到MySQL数据库,执行查询和命令来获取各种指标数据,包括数据库连接数、查询执行时间、缓存命中率、索引使用情况,主从复制关系信息等。这些指标反映了MySQL数据库的性能和健康状况。
由于mysqld_exporter监控数据库有如下依赖:
1.连接数据库且有查系统的权限:
这步已在S3中有个init-users.sql.jinja模板定制了专用监控用户及相关权限,连接IP为127.0.0.1。
2.启动服务需在MySQL服务启动之后再启动,可以使用systemd的服务依赖性来实现。
以下是一些步骤来定制一个服务在另一个服务启动之后才启动:
打开要定制的服务的systemd单元配置文件。通常,这些文件位于/etc/systemd/system/或/lib/systemd/system/目录下,以.service为后缀。
在服务的[Unit]节中添加一个After选项,指定所依赖的服务。在mysqld.service启动之后才能启动,具体为添加“[Unit]After=mysqld.service”。
保存并关闭文件。运行“sudo systemctl daemon-reload”命令重新加载systemd并将设为开机启动,并使更改生效:
这将重新加载并解析所有unit文件,并识别出新的依赖关系。
步骤S7、部署镜像制作,具体如下:
1.虚拟机正常关机。
关机前检测selinux及firewalld是否关闭且写入配置文件中;
2.将虚拟机转为镜像。
进入OpenStack控制台(Horizon)或使用OpenStack命令行工具(如OpenStackCLI)。
找到要转换为镜像的虚拟机,并确保其处于关机状态。
如果使用Horizon,导航到“计算”(Compute)部分,然后选择“实例”(Instances)。如果使用OpenStack CLI,请使用适当的命令查看实例列表。
选择目标虚拟机,并选择"更多"或"操作"等选项。
在弹出的菜单中,选择"创建镜像"或类似选项,然后提供一个用于标识镜像的名称和描述。
提交创建镜像的请求,并等待操作完成。
3.用questfish修改镜像文件。
清理镜像中中有关网卡,主机名,日志等配置信息。
步骤S8、上传镜像:
登录到OpenStack控制台(Horizon)或使用OpenStack命令行工具(如OpenStackCLI)。请注意,在上传镜像时,确保具备正确的权限,并且有足够的网络带宽和存储资源来支持上传过程。确保镜像文件正确、完整,并且与OpenStack所支持的镜像格式兼容。
1.如果使用Horizon,导航到“计算”(Compute)部分,然后选择“映像”(Images)。如果使用OpenStack CLI,请使用适当的命令查看镜像列表。
2.在镜像列表页面中,选择“创建镜像”(Create Image)或类似选项。
提供镜像的名称、描述和格式等信息。选择“上传镜像文件”(Upload Image File)选项。
点击“选择文件”或类似按钮,浏览并选择要上传的镜像文件。
提交上传请求,并等待上传过程完成。这可能需要一些时间,具体取决于镜像文件的大小和网络速度。
3.上传完成后,将在镜像列表中看到新上传的镜像。确保镜像状态为“活动”(Active),表示已准备好供使用。现在,已成功上传镜像到OpenStack。可以使用该镜像创建新的虚拟机实例或共享给其他OpenStack用户。
步骤S9、启动实例,具体如下:
1)主节点的VM创建:
在OpenStack控制台(Horizon)建立虚拟机时左边有个配置栏,用于虚拟机启动后要执行的命令或任务,用nova 命令创建可以通过 --user-data ./user-data.txt 方式传参数,内容一样,相关脚本示意如下:
#!/bin/sh;
###set MySQL root pw;
sleep 30 ##等待取到IP,保障网络可正常通信,密码不支持%;
[ -d /usr/local/dbm-agent/etc ]&&rm -rf /usr/local/dbm-agent/etc/*;
##初始化;
dbm-agent --init-pwd 'XXXXXXX' init&&\;
### 启动MySQL 主,可以通过--max-mem=4096 指定4G内存,--cores=1 指定CPU逻辑大小,一般不用配置,优化脚本有相关判断;
/usr/local/python3/bin/dbma-cli-single-instance --port=3306 install。
因此,通过上述脚本语句实现主节点的VM创建。
2)从节点的VM创建:
在OpenStack控制台(Horizon)建立虚拟机时左边有个配置栏,用于虚拟机启动后要执行的命令或任务,用nova命令创建可以通过--user-data ./user-data.txt方式传参数,内容一样,相关脚本示意如下:
#!/bin/sh;
###set mysql root pw;
sleep 30 ##等待取到IP,保障网络可正常通信,密码不支持%;
[ -d /usr/local/dbm-agent/etc ]&&rm -rf /usr/local/dbm-agent/etc/*;
##初始化;
dbm-agent --init-pwd 'XXXXXXX' init&&\;
### 启动mysql 主,可以通过--max-mem=4096指定4G内存,--cores=1 指定CPU逻辑大小,一般不用配置,优化脚本有相关判断;
/usr/local/python3/bin/dbma-cli-build-slave --host=主节点的IP --port=3306 build-slave。
因此,通过上述脚本实现从节点的VM创建。
3)验证MySQL主从复制关系,具体如下:
用上层指定的用户与密码登录数据库,执行show slave status,当Slave_IO_Running与Slave_SQL_Running同时为yes代表正常;
检测mysqld_exporter;
检测mysqld_exporter暴露的MySQL数据库指标,一般是9104端口,若定制过端口则更换对应端口,并查看是否有采集到数据库的相关批标。
示例性的,参照图4和图3所示,在OpenStack控制台创建了镜像后,可以在多个设备节点创建数据库实例,从而实现数据库集群的快速部署。如图4所示,设备节点1...设备节点n均可以通过数据库实例实现数据库的快速部署,此时,各设备节点可以通过OpenStack控制台执行如图1所示的步骤S100~S600实现数据库个性化的快速配置。
参照图5所示,本申请一实施例还提供了一种电子设备,包括:
一个或多个处理器801;
存储器802,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器801执行,使得一个或多个处理器801实现本申请任一实施例提供的方法。
存储器802作为一种非暂态网络系统,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器802可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器802可选包括相对于处理器801远程设置的存储器802,这些远程存储器802可以通过网络连接至该处理器801。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器802,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本申请实施例的方法。
处理器801,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
在一些实施例中,电子设备还包括:
输入/输出接口,用于实现信息输入及输出;
通信接口,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线,在设备的各个组件(例如处理器801、存储器802、输入/输出接口和通信接口)之间传输信息;
其中处理器801、存储器802、输入/输出接口和通信接口可以通过总线实现彼此之间在设备内部的通信连接。
本申请一实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于执行如本申请任一实施例提供的方法。
本申请一实施例还提供了一种计算机程序产品,包括计算机程序或计算机指令,该计算机程序或计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取计算机程序或计算机指令,处理器执行计算机程序或计算机指令,使得计算机设备执行如本申请任一实施例提供的方法。
本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书中使用的术语“部件”、 “模块”、 “ 系统”等用于表示计算机相关的实体、 硬件、 固件、 硬件和软件的组合、 软件、 或执行中的软件。 例如, 部件可以是但不限于, 在处理器上运行的进程、 处理器、 对象、 可执行文件、 执行线程、 程序或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。 一个或多个部件可驻留在进程或执行线程中, 部件可位于一个计算机上或分布在 2 个或更多个计算机之间。 此外, 这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。 部件可例如根据具有一个或多个数据分组(例如来自于自与本地系统、 分布式系统或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网) 的信号通过本地或远程进程来通信。
以上参照附图说明了本申请的一些实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本申请的权利范围之内。
Claims (9)
1.一种数据库集群的管理方法,其特征在于,应用于云平台,所述数据库集群的管理方法包括:
获取为待部署的数据库集群中每一数据库所在的设备节点创建的配置参数解析接口函数以及对应的第一脚本和第一定时任务;其中,所述第一脚本配置有资源优化规则;
接收对所述数据库集群中目标数据库发起的数据库配置请求,并从所述数据库配置请求中解析出第一配置参数;
调用所述配置参数解析接口函数对所述第一配置参数进行数据库参数转换处理,得到所述目标数据库的第二配置参数;
根据所述第二配置参数,对所述目标数据库的数据库参数进行配置;
通过所述第一定时任务采集所述目标数据库所在的设备节点的第一内核参数;
根据所述第一内核参数以及所述资源优化规则,对所述目标数据库的所述数据库参数中的性能参数进行调整;
所述第一内核参数包括CPU核数和可用内存空间;所述资源优化规则包括CPU配置规则和内存配置规则;所述性能参数包括最大连接数参数、缓存线程参数、缓冲池参数及索引块缓冲区参数;所述根据所述第一内核参数以及所述资源优化规则,对所述目标数据库的所述数据库参数中的性能参数进行调整,包括:
按照所述CPU配置规则,确定所述CPU核数对应的最大连接建立数和缓存线程数,所述CPU配置规则用于记录所述CPU核数与所述最大连接建立数、所述缓存线程数之间的匹配规则;
将所述最大连接数参数更新为当前所述最大连接数参数与所述最大连接建立数中的最小值;
将所述缓存线程参数更新为当前所述缓存线程参数与缓存线程数中的最小值;
按照所述内存配置规则,确定所述可用内存空间对应的缓冲池最大值以及索引块缓冲区最大值,所述内存配置规则用于记录所述可用内存空间与所述缓冲池最大值、所述索引块缓冲区最大值之间的匹配规则;
将所述缓冲池参数更新为当前所述缓冲池参数和所述缓冲池最大值中的最小值;
将所述索引块缓冲区参数更新为当前索引块缓冲区参数和所述索引块缓冲区最大值中的最小值。
2.根据权利要求1所述的数据库集群的管理方法,其特征在于,所述云平台集成有数据库管理系统代理dbm-agent,所述第一脚本通过如下步骤创建:
在dbm-agent中获取预设的配置模板引擎;
在所述配置模板引擎中,确定待动态配置的第一数据库参数变量;
获取所述第一数据库参数变量的赋值逻辑,得到所述资源优化规则;
根据所述第一数据库参数变量、所述资源优化规则和所述配置模板引擎,得到所述第一脚本。
3.根据权利要求1所述的数据库集群的管理方法,其特征在于,所述调用所述配置参数解析接口函数对所述第一配置参数进行数据库参数转换处理,得到所述目标数据库的第二配置参数,包括:
根据所述第一配置参数,调用所述配置参数解析接口函数提取所述目标数据库支持的目标参数类型;
根据目标参数类型对所述第一配置参数进行数据转换,得到第二配置参数。
4.根据权利要求3所述的数据库集群的管理方法,其特征在于,在进行数据库参数配置之前,所述调用所述配置参数解析接口函数对所述第一配置参数进行数据库参数转换处理,得到所述目标数据库的第二配置参数,还包括以下至少之一:
调用所述配置参数解析接口函数,在所述第二配置参数为数值类型时,将所述第二配置参数与预设的数值阈值进行比较,以判断所述第二配置参数是否有效;
调用所述配置参数解析接口函数,在所述第二配置参数为字符类型时,将所述第二配置参数和预设的参数列表进行匹配,以判断所述第二配置参数是否有效;
相应的,所述根据所述第二配置参数,对所述目标数据库的数据库参数进行配置,包括:
当所述第二配置参数有效,根据有效的所述第二配置参数对所述目标数据库进行数据库参数配置。
5.根据权利要求1所述的数据库集群的管理方法,其特征在于,所述第二配置参数包括连接配置值、缓存线程配置值、缓冲池大小配置值以及索引块缓冲区大小值;所述根据所述第二配置参数,对所述目标数据库的数据库参数进行配置,包括:
将所述目标数据库中数据库参数的最大连接数参数的数值设置为所述连接配置值;
将所述目标数据库中数据库参数的缓存线程参数的数值设置为所述缓存线程配置值;
将所述目标数据库中数据库参数的缓冲池参数的数值设置为所述缓冲池大小配置值;
将所述目标数据库中数据库参数的索引块缓冲区参数的数值设置为所述索引块缓冲区大小值。
6.根据权利要求1所述的数据库集群的管理方法,其特征在于,在获取为待部署的数据库集群中每一数据库所在的设备节点创建的配置参数解析接口函数以及对应的第一脚本和第一定时任务之后,所述方法还包括以下至少之一:
根据各所述数据库的负载数据,对所述目标数据库进行线程优先级调整;
根据各所述数据库的负载数据,对所述目标数据库进行缓存查询结果的内存大小调整;
根据各所述数据库的负载数据,对所述目标数据库进行缓存表结构的内存大小调整;
根据各所述数据库的负载数据,对所述目标数据库进行排序操作的内存大小调整;
根据各所述数据库的负载数据,对所述目标数据库进行存储引擎日志文件大小调整;
根据各所述数据库的负载数据,对所述目标数据库进行存储引擎刷新策略调整;
根据各所述数据库的负载数据,对所述目标数据库进行日志刷新策略调整;
根据各所述数据库的负载数据,对所述目标数据库进行存储引擎读操作的线程数调整;
根据各所述数据库的负载数据,对所述目标数据库进行存储引擎写操作的线程数调整。
7.根据权利要求6所述的数据库集群的管理方法,其特征在于,所述负载数据通过所述云平台集成的mysqld_exporter实时提供。
8.根据权利要求1所述的数据库集群的管理方法,其特征在于,在创建配置参数解析接口函数之前,所述方法还包括:
创建虚拟机;
将所述虚拟机的操作系统的第二内核参数调整至预设内核参数;
在所述虚拟机上集成dbm-agent,以在所述dbm-agent中创建所述配置参数解析接口函数以及所述第一脚本;
在所述虚拟机上集成mysqld_exporter,以获取性能数据,所述性能数据包括负载数据;
响应于所述虚拟机的镜像生成请求关闭所述虚拟机并生成所述虚拟机的镜像;
为所述镜像创建数据库实例。
9.一种计算机可读存储介质,其特征在于,包括存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至8任一所述的数据库集群的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410195725.4A CN117762645B (zh) | 2024-02-22 | 2024-02-22 | 数据库集群的管理方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410195725.4A CN117762645B (zh) | 2024-02-22 | 2024-02-22 | 数据库集群的管理方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117762645A CN117762645A (zh) | 2024-03-26 |
CN117762645B true CN117762645B (zh) | 2024-05-07 |
Family
ID=90314832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410195725.4A Active CN117762645B (zh) | 2024-02-22 | 2024-02-22 | 数据库集群的管理方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762645B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241035A (zh) * | 2018-08-28 | 2019-01-18 | 福建南威软件有限公司 | 一种自定义脚本实现数据库的自动部署方法 |
CN116340294A (zh) * | 2023-03-30 | 2023-06-27 | 中国工商银行股份有限公司 | 数据库部署方法、装置、计算机可读存储介质及电子设备 |
CN116701518A (zh) * | 2023-07-10 | 2023-09-05 | 北京自如信息科技有限公司 | 数据库集群部署方法、装置、计算机设备及存储介质 |
-
2024
- 2024-02-22 CN CN202410195725.4A patent/CN117762645B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241035A (zh) * | 2018-08-28 | 2019-01-18 | 福建南威软件有限公司 | 一种自定义脚本实现数据库的自动部署方法 |
CN116340294A (zh) * | 2023-03-30 | 2023-06-27 | 中国工商银行股份有限公司 | 数据库部署方法、装置、计算机可读存储介质及电子设备 |
CN116701518A (zh) * | 2023-07-10 | 2023-09-05 | 北京自如信息科技有限公司 | 数据库集群部署方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117762645A (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314698B2 (en) | Dynamically performing data processing in a data pipeline system | |
US10430204B2 (en) | System and method for cloud provisioning and application deployment | |
US11321348B2 (en) | Provisioning and managing replicated data instances | |
JP3270216B2 (ja) | ファイル名検出方式 | |
US8281012B2 (en) | Managing parallel data processing jobs in grid environments | |
US8381211B2 (en) | Virtual image overloading for solution deployment | |
WO2019090993A1 (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
US10230567B2 (en) | Management of a plurality of system control networks | |
KR20160067180A (ko) | 가상 머신들을 관리하는 장치 및 방법 | |
SG189889A1 (en) | Creating and deploying service-ready virtual hard disks | |
CN111930465A (zh) | 一种基于Kubernetes的达梦主从集群部署方法和装置 | |
US11132126B1 (en) | Backup services for distributed file systems in cloud computing environments | |
US11816458B2 (en) | Method and system for packaging infrastructure as code | |
US20230060053A1 (en) | Method and apparatus of deploying a cluster, and storage medium | |
US20030130980A1 (en) | Efficient configuration data migration technique | |
WO2021022703A1 (zh) | 软件项目重构方法、装置、计算机装置及存储介质 | |
US20040054987A1 (en) | System and method of an incremental file audit in a computer system | |
US11803429B2 (en) | Managing alert messages for applications and access permissions | |
US20220237057A1 (en) | Code consolidation system | |
CN113805969A (zh) | 参数配置的获取方法、装置、存储介质和电子设备 | |
CN117762645B (zh) | 数据库集群的管理方法及存储介质 | |
KR102474582B1 (ko) | 가상화 클러스터 환경의 비바람직한 호스트 서버 상에서 더티 가상 머신의 실행을 방지하는 방법 및 시스템 | |
US11977559B2 (en) | Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs | |
CN115309421A (zh) | 单点系统的静态变量同步方法、装置、设备及存储介质 | |
CN110321132B (zh) | 一种代码发布方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |