数据库扩容的方法、装置、电子设备和计算机存储介质制造方法及图纸

技术编号:27582029 阅读:20 留言:0更新日期:2021-03-09 22:38
本申请提供一种数据库扩容的方法、装置、电子设备和计算机存储介质,应用于第一节点,第一节点是Oracle数据库系统的多个节点中,用于运行扩容进程的节点,该方法包括:检测第一节点是否符合目标进程运行条件;第一节点的目标进程,为扩容进程;若第一节点符合目标进程运行条件,获取第一节点和数据库系统中每一个符合目标进程运行条件的其他节点的可添加磁盘,并在其中确定出用于数据库扩容的目标磁盘;查询每一个目标磁盘是否符合磁盘扩容条件;若有至少一个目标磁盘符合磁盘扩容条件,生成并执行磁盘扩容脚本,完成数据库扩容。通过上述流程,本方案能够实现针对Oracle数据库的自动扩容,减少数据库扩容时的失误率,提高数据库扩容的效率。数据库扩容的效率。数据库扩容的效率。

【技术实现步骤摘要】
数据库扩容的方法、装置、电子设备和计算机存储介质


[0001]本专利技术涉及计算机
,特别涉及一种数据库扩容的方法、装置、电子设备和计算机存储介质。

技术介绍

[0002]在Oracle数据库系统的运维工作中,经常会涉及到对Oracle数据库进行扩容,也就是将新的磁盘添加至Oracle数据库系统以增大Oracle数据库系统的容量。在扩容时又需要对要添加的新磁盘进行多项检查,目前这些检测事项一般都依赖于相关人员手动操作,这就导致对Oracle数据库系统进行扩容时的失误率较高,经常会发生失误,相应的扩容效率也较低。

技术实现思路

[0003]针对上述现有技术存在的问题,本申请提供一种数据库扩容的方法、装置、电子设备和计算机存储介质,以提供一种自动化的数据库扩容方案。
[0004]本申请第一方面提供一种数据库扩容的方法,应用于第一节点,所述第一节点是Oracle数据库系统的多个节点中,用于运行扩容进程的节点,所述方法包括:
[0005]检测第一节点是否符合目标进程运行条件;其中,所述目标进程运行条件包括,当前用户具有root权限,节点中不存在目标进程的同名进程,节点对应的磁盘组实例数量为1,并且节点的端口号未被除目标进程以外的进程占用;所述第一节点的目标进程,为所述扩容进程;
[0006]若所述第一节点符合所述目标进程运行条件,获取所述第一节点和所述数据库系统中每一个符合所述目标进程运行条件的其他节点的可添加磁盘,并在获取到的所有可添加磁盘中确定出目标磁盘;其中,所述目标磁盘指代用于数据库扩容的磁盘;所述其他节点指代所述数据库系统中除所述第一节点以外的节点;所述其他节点的目标进程为监听进程;
[0007]查询每一个所述目标磁盘是否符合磁盘扩容条件;其中,所述磁盘扩容条件包括,所述目标磁盘未被占用,所述目标磁盘的属组为所述数据库系统对应的属组,所述目标磁盘的磁盘状态为预先指定的目标磁盘状态,所述目标磁盘的存储空间位于预设的存储空间范围内,目标磁盘总数和数据库系统的故障组数量均满足预设的数量要求,所述目标磁盘的存储柜符合预设的存储条件;
[0008]若有N个所述目标磁盘符合所述磁盘扩容条件,生成并执行磁盘扩容脚本,使得每一个符合所述磁盘扩容条件的所述目标磁盘均被添加至所述数据库系统的磁盘组,以完成数据库扩容;其中,N为预先输入的整数。
[0009]可选的,所述查询每一个所述目标磁盘是否符合磁盘扩容条件,包括:
[0010]针对每一个所述目标磁盘,若所述目标磁盘是所述第一节点的磁盘,获取所述目标磁盘的磁盘信息,并根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容
条件;
[0011]若所述目标磁盘不是所述第一节点的磁盘,确定所述目标磁盘所属的其他节点,并向所述目标磁盘所属的其他节点发送查询请求;其中,所述查询请求用于触发所述目标磁盘所属的其他节点执行获取所述目标磁盘的磁盘信息,并根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容条件步骤;
[0012]接收所述目标磁盘所属的其他节点反馈的指示所述目标磁盘是否符合所述磁盘扩容条件的判断结果;
[0013]可选的,所述根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容条件,包括:
[0014]检测所述目标磁盘是否被任意进程占用;
[0015]若所述目标磁盘未被任意一个进程占用,确定所述目标磁盘未被占用,并检测所述目标磁盘的属组是否为grid:asmadmin;其中,grid:asmadmin为所述数据库系统对应的属组;
[0016]若所述目标磁盘的属组为grid:asmadmin,检测所述目标磁盘的磁盘状态是否为candidate状态,former状态和provision状态中的任意一个状态;
[0017]若所述目标磁盘的磁盘状态为candidate状态,former状态和provision状态中的任意一个状态,确定所述目标磁盘的磁盘状态为预先指定的目标磁盘状态;
[0018]判断所述目标磁盘的存储空间是否位于预设的存储空间范围内;
[0019]若所述目标磁盘的存储空间位于所述存储空间范围内,判断目标磁盘总数和数据库系统的故障组数量是否均满足预设的数量要求;
[0020]若所述目标磁盘总数和数据库系统的故障组数量均满足所述数量要求,且当前的工作模式为normal模式,则检测所述目标磁盘所在的存储柜和所述目标磁盘的备份磁盘的存储柜是否相同;
[0021]若当前的工作模式为normal模式,且所述目标磁盘所在的存储柜和所述目标磁盘的备份磁盘的存储柜不相同,确定所述目标磁盘符合所述磁盘扩容条件。
[0022]可选的,所述生成并执行磁盘扩容脚本之后,还包括:
[0023]针对每一个现有磁盘,检测所述现有磁盘和所述现有磁盘对应的备份磁盘是否位于不同存储柜;其中,所述现有磁盘指代执行所述磁盘扩容脚本之前属于所述数据库系统的磁盘组的每一个磁盘;
[0024]若至少一个所述现有磁盘和对应的备份磁盘位于同一存储柜,输出提示信息。
[0025]本申请第二方面提供一种数据库扩容的装置,应用于第一节点,所述第一节点是Oracle数据库系统的多个节点中,用于运行扩容进程的节点,所述装置包括:
[0026]检测单元,用于检测第一节点是否符合目标进程运行条件;其中,所述目标进程运行条件包括,当前用户具有root权限,节点中不存在目标进程的同名进程,节点对应的磁盘组实例数量为1,并且节点的端口号未被除目标进程以外的进程占用;所述第一节点的目标进程,为所述扩容进程;
[0027]获取单元,用于若所述第一节点符合所述目标进程运行条件,获取所述第一节点和所述数据库系统中每一个符合所述目标进程运行条件的其他节点的可添加磁盘,并在获取到的所有可添加磁盘中确定出目标磁盘;其中,所述目标磁盘指代用于数据库扩容的磁
盘;所述其他节点指代所述数据库系统中除所述第一节点以外的节点;所述其他节点的目标进程为监听进程;
[0028]查询单元,用于查询每一个所述目标磁盘是否符合磁盘扩容条件;其中,所述磁盘扩容条件包括,所述目标磁盘未被占用,所述目标磁盘的属组为所述数据库系统对应的属组,所述目标磁盘的磁盘状态为预先指定的目标磁盘状态,所述目标磁盘的存储空间位于预设的存储空间范围内,目标磁盘总数和数据库系统的故障组数量均满足预设的数量要求,所述目标磁盘的存储柜符合预设的存储条件;
[0029]执行单元,用于若有N个所述目标磁盘符合所述磁盘扩容条件,生成并执行磁盘扩容脚本,使得每一个符合所述磁盘扩容条件的所述目标磁盘均被添加至所述数据库系统的磁盘组,以完成数据库扩容;其中,N为预先输入的整数。
[0030]可选的,所述查询单元查询每一个所述目标磁盘是否符合磁盘扩容条件时,具体用于:
[0031]针对每一个所述目标磁盘,若所述目标磁盘是所述第一节点的磁盘,获取所述目标磁盘的磁盘信息,并根据所述目标磁盘的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库扩容的方法,其特征在于,应用于第一节点,所述第一节点是Oracle数据库系统的多个节点中,用于运行扩容进程的节点,所述方法包括:检测第一节点是否符合目标进程运行条件;其中,所述目标进程运行条件包括,当前用户具有root权限,节点中不存在目标进程的同名进程,节点对应的磁盘组实例数量为1,并且节点的端口号未被除目标进程以外的进程占用;所述第一节点的目标进程,为所述扩容进程;若所述第一节点符合所述目标进程运行条件,获取所述第一节点和所述数据库系统中每一个符合所述目标进程运行条件的其他节点的可添加磁盘,并在获取到的所有可添加磁盘中确定出目标磁盘;其中,所述目标磁盘指代用于数据库扩容的磁盘;所述其他节点指代所述数据库系统中除所述第一节点以外的节点;所述其他节点的目标进程为监听进程;查询每一个所述目标磁盘是否符合磁盘扩容条件;其中,所述磁盘扩容条件包括,所述目标磁盘未被占用,所述目标磁盘的属组为所述数据库系统对应的属组,所述目标磁盘的磁盘状态为预先指定的目标磁盘状态,所述目标磁盘的存储空间位于预设的存储空间范围内,目标磁盘总数和数据库系统的故障组数量均满足预设的数量要求,所述目标磁盘的存储柜符合预设的存储条件;若有N个所述目标磁盘符合所述磁盘扩容条件,生成并执行磁盘扩容脚本,使得每一个符合所述磁盘扩容条件的所述目标磁盘均被添加至所述数据库系统的磁盘组,以完成数据库扩容;其中,N为预先输入的整数。2.根据权利要求1所述的方法,其特征在于,所述查询每一个所述目标磁盘是否符合磁盘扩容条件,包括:针对每一个所述目标磁盘,若所述目标磁盘是所述第一节点的磁盘,获取所述目标磁盘的磁盘信息,并根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容条件;若所述目标磁盘不是所述第一节点的磁盘,确定所述目标磁盘所属的其他节点,并向所述目标磁盘所属的其他节点发送查询请求;其中,所述查询请求用于触发所述目标磁盘所属的其他节点执行获取所述目标磁盘的磁盘信息,并根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容条件步骤;接收所述目标磁盘所属的其他节点反馈的指示所述目标磁盘是否符合所述磁盘扩容条件的判断结果。3.根据权利要求2所述的方法,其特征在于,所述根据所述目标磁盘的磁盘信息判断所述目标磁盘是否符合磁盘扩容条件,包括:检测所述目标磁盘是否被任意进程占用;若所述目标磁盘未被任意一个进程占用,确定所述目标磁盘未被占用,并检测所述目标磁盘的属组是否为grid:grid:asmadmin;其中,grid:asmadmin为所述数据库系统对应的属组;若所述目标磁盘的属组为grid:asmadmin,检测所述目标磁盘的磁盘状态是否为candidate状态,former状态和provision状态中的任意一个状态;若所述目标磁盘的磁盘状态为candidate状态,former状态和provision状态中的任意一个状态,确定所述目标磁盘的磁盘状态为预先指定的目标磁盘状态;
判断所述目标磁盘的存储空间是否位于预设的存储空间范围内;若所述目标磁盘的存储空间位于所述存储空间范围内,判断目标磁盘总数和数据库系统的故障组数量是否均满足预设的数量要求;若所述目标磁盘总数和数据库系统的故障组数量均满足所述数量要求,且当前的工作模式为normal模式,则检测所述目标磁盘所在的存储柜和所述目标磁盘的备份磁盘的存储柜是否相同;若当前的工作模式为normal模式,且所述目标磁盘所在的存储柜和所述目标磁盘的备份磁盘的存储柜不相同,确定所述目标磁盘符合所述磁盘扩容条件。4.根据权利要求1所述的方法,其特征在于,所述生成并执行磁盘扩容脚本之后,还包括:针对每一个现有磁盘,检测所述现有磁盘和所述现有磁盘对应的备份磁盘是否位于不同存储柜;其中,所述现有磁盘指代执行所述磁盘扩容脚本之前属于所述数据库系统的磁盘组的每一个磁盘;若至少一个所述现有磁盘和对应的备份磁盘位于同一存储柜,输出提示信息。5.一种数据库扩容的装置,其特征在于,应用于第一节点,所述第一节点是Oracle数据库系统的多个节点中,用于运行扩容进程的节点,所述装置包括:检测单元,用于检测第一节点是否符合目标进程运行条件;...

【专利技术属性】
技术研发人员:邱峙
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:

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

1