磁盘组双活同步方法、装置、计算机设备及存储介质与流程

未命名 08-02 阅读:112 评论:0


1.本发明涉及磁盘数据冗余领域,具体涉及磁盘组双活同步方法、装置、计算机设备及存储介质。


背景技术:

2.为了保证数据库的磁盘组中磁盘的损坏不会影响数据库的数据安全,通常会在磁盘,也就是失败组上存储一份数据,以形成双份冗余。通过在磁盘组中将两个硬盘创建成不同的失败组,可以实现两份存储数据的冗余,但需要在创建磁盘组的时候规划好磁盘组中硬盘的容量与分组,如果创建的原磁盘组中包含若干独立硬盘,也就是包含若干失败组,新加的若干硬盘放在一个失败组中,磁盘组中就会形成若干小容量的失败组以及一个大容量的失败组,而要想将这些小容量的失败组调整成一个大容量的失败组,则需要删除硬盘重新添加,但这种调整方式耗时长、不灵活,在进行删除或添加硬盘的操作时会也有数据丢失或损坏的风险,导致数据库不能正常使用。


技术实现要素:

3.有鉴于此,本发明提供了一种磁盘组双活同步方法、装置、计算机设备及存储介质,以解决磁盘组中数据存储冗余不灵活、并且存在数据丢失与损坏的风险的问题。
4.第一方面,本发明提供了一种磁盘组双活同步方法,包括:
5.获取数据修改指令;数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;第一磁盘组与第二磁盘组中的数据同步;
6.当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;
7.当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。
8.如此在第一磁盘组和第二磁盘组之间建立数据同步,不需要删除或添加硬盘就能够实现数据同步冗余,提高了数据存储冗余的灵活性和数据的安全性,从而保证数据库的完整性。
9.作为一种可选的实施方式,第一磁盘组为初始磁盘组,第二磁盘组为待同步磁盘组;第一磁盘组与第二磁盘组中的数据同步的方式,包括:
10.对第二磁盘组进行初始数据同步;初始数据同步用于将第一磁盘组中的初始数据拷贝到第二磁盘组中;
11.将初始数据同步的过程中,第一磁盘组中被修改的数据单元对应的修改信息,记录在修改记录表中;
12.基于修改记录表,对第二磁盘组中的数据单元进行修改数据同步。
13.如此,可以在不调整第一磁盘组的情况下将第一磁盘组中的数据同步到第二磁盘组中,实现数据冗余的同时保证数据的安全性和数据库的完整性。
14.作为一种可选的实施方式,第一磁盘组与第二磁盘组中的数据同步的方式,还包括:
15.当修改数据同步的过程中,接收到数据单元修改指令时,在修改记录表中查找修改数据单元对应的修改信息;修改数据单元为数据单元修改指令指示修改的数据单元;
16.当修改记录表中不存在修改数据单元对应的修改信息时,或,当修改记录表中存在修改数据单元对应的修改信息,并且第二磁盘组中修改数据单元已经完成修改数据同步时,基于数据单元修改指令,对第一磁盘组和第二磁盘组中修改数据单元进行修改。
17.作为一种可选的实施方式,当修改数据同步的过程中,接收到数据单元修改指令时,在修改记录表中查找修改数据单元对应的修改信息之后,还包括:
18.当修改记录表中存在修改数据单元的对应修改信息,并且第二磁盘组中修改数据单元未进行修改数据同步时,基于数据单元修改指令,对第一磁盘组中修改数据单元进行修改;
19.基于数据单元修改指令,对修改记录表中修改数据单元的修改信息进行修改;
20.基于修改记录表,对第二磁盘组中修改数据单元进行修改。
21.如此,可以保证在第一磁盘组和第二磁盘组的数据同步过程中,所有对第一磁盘组的数据修改都能同步到第二磁盘组中,从而保证冗余数据的正确性。
22.作为一种可选的实施方式,在第一磁盘组和第二磁盘组之间建立数据同步之前,还包括:
23.对第二磁盘组的容量进行测试;
24.当第二磁盘组的容量小于预设容量时,发送容量调整信息;
25.对第二磁盘组的写性能进行测试;
26.当第二磁盘组的写性能与第一磁盘组的写性能相差预设阈值时,发送写性能不足信息。
27.作为一种可选的实施方式,该方法还包括:
28.当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,间隔预设时间,对读写异常磁盘组的读写性能进行检测;
29.当检测到读写异常磁盘组的读写性能恢复正常,读写异常磁盘组被删除,或第一磁盘组和第二磁盘组解除数据同步时,停止对读写异常磁盘组的读写性能进行检测。
30.作为一种可选的实施方式,该方法还包括:
31.当第一磁盘组或第二磁盘组写入数据,并返回成功落盘信息时,发送成功写入数据信息。
32.第二方面,本发明提供了一种磁盘组双活同步装置,包括:
33.数据修改指令获取模块,用于获取数据修改指令;数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;第一磁盘组与第二磁盘组中的数据同步;
34.修改信息记录模块,用于当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;
35.同步修改模块,用于当读写异常磁盘组恢复正常时,基于修改记录表对读写异常
磁盘组中的目标数据单元进行同步修改。
36.第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的磁盘组双活同步方法。
37.第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的磁盘组双活同步方法。
附图说明
38.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1是根据本发明实施例的磁盘组双活同步方法的流程示意图;
40.图2是根据本发明实施例的另一磁盘组双活同步方法的流程示意图;
41.图3是根据本发明实施例的又一磁盘组双活同步方法的流程示意图;
42.图4是根据本发明实施例的磁盘组双活同步装置的结构框图;
43.图5是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.oraclerac(oracle real application clusters)是一种多节点实例的数据库集群,oracleasm磁盘组是oracle数据库中使用的共享存储系统,可以提供文件系统、逻辑卷管理器以及软件磁盘阵列等服务。每个磁盘组中包含多块大小一致的硬盘,在未指定失败组的情况下,每个硬盘被默认创建成一个失败组,数据库以分配单元(allocation units,au)大小分割数据文件,每个分配单元会在不同的失败组中各存储一份形成默认双份冗余,这样保证了磁盘组中任何一块磁盘损坏不会影响数据安全。一个磁盘组内也可以多个失败组,每个失败组中包含多块硬盘,每个分配单元会在不同的失败组上各存储一份,以形成双份冗余,从而保证磁盘组中即使有一个失败组中所有硬盘损坏也不影响数据安全。
46.在双份冗余的情况下,当一个失败组损坏后,磁盘组中只剩一份数据冗余,此时为了保证数据双冗余的安全性,会在剩余的失败组中重构损坏的失败组上的数据,以使每个分配单元数据都是双副本。当向一个磁盘组中新添加失败组时,其它失败组中的部分数据会移到新的失败组上,使磁盘组内失败组空间使用率基本相当。当删除一个失败组时,其内的数据会向磁盘组中其它失败组移动,重新形成冗余后失败组被删除。这种磁盘组失败组的调整方式耗时长、不灵活,在进行删除或添加硬盘的操作时会也有数据丢失或损坏的风险,导致数据库不能正常使用。
47.基于此,本发明提供了一种磁盘组双活同步方法,在不对原有磁盘组进行删除或添加硬盘的情况下,通过修改记录表,实现新增磁盘组对原有磁盘组中的数据的冗余,灵活性高,数据安全性强。同时,在其中一个磁盘组不能正常读写时,还可以利用修改记录表,对该磁盘组进行数据同步,保证两个磁盘组之间的数据同步。
48.根据本发明实施例,提供了一种磁盘组双活同步方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
49.在本实施例中提供了一种磁盘组双活同步方法,可用于上述的数据库等,图1是根据本发明实施例的磁盘组双活同步方法的流程图,如图1所示,该流程包括如下步骤:
50.步骤s101,获取数据修改指令。
51.本发明实施例中,数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改,其中,第一磁盘组与第二磁盘组中的数据同步。数据同步为在第一磁盘组和第二磁盘组之间形成数据冗余,保持数据修改的同步。
52.本发明实施例中,采用并发的方式对第一磁盘组和第二磁盘组进行数据的读写,以充分利用第一磁盘组和第二磁盘组的存储性能,提高i/o效率和数据库的数据处理效率。并且,采用并发的方式对第一磁盘组和第二磁盘组进行数据的读写,可以同时根据数据指令,对第一磁盘组和第二磁盘组中的数据单元进行相同的修改操作,能够使第一磁盘组和第二磁盘组中的数据始终保持一致,实现第一磁盘组和第二磁盘组的实时同步。
53.步骤s102,当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中。
54.本发明实施例中,读写异常磁盘组为不能正常写入数据的磁盘组。当第一磁盘组或第二磁盘组不能写入数据时,将第一磁盘组或第二磁盘组确定为异常读写磁盘组。
55.本发明实施例中,为了避免第一磁盘组或者第二磁盘组出现故障、不能正常读写时,第一磁盘组与第二磁盘组之间出现数据的不同步,在基于数据修改质量对正常磁盘组中目标数据单元的数据进行修改的同时,将目标数据单元对应的修改信息,记录在修改记录表中。
56.本发明实施例中,数据单元对应于分配单元,是构成磁盘组的基本单元。数据单元可以是一个或者多个分配单元。
57.本发明实施例中,修改记录表中记录了对磁盘组中数据单元的修改记录,具体包括修改的数据单元,以及数据单元的修改内容,也就是数据单元的修改信息。
58.作为一种可选的实施方式,修改记录表中数据单元的修改信息可以包含如下表1所示的内容,每个修改信息作为一条记录,在修改记录表中占据一行。可选的,修改记录表可以为二进制文件。
59.表1
[0060][0061]
步骤s103,当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。
[0062]
本发明实施例中,当第一磁盘组或者第二磁盘组为读写异常磁盘组时,通过修改修改记录表中记录的修改信息,对读写异常磁盘组中相应的目标数据单元进行修改,以实现第一磁盘组和第二磁盘组中数据的同步。
[0063]
作为一种可选的实施方式,当第一磁盘组和/或第二磁盘组写入数据,并返回成功落盘信息时,发送成功写入数据信息。当第一磁盘组或第二磁盘组成功写入数据,也就是成功落盘时,第一磁盘组或第二磁盘组会返回成功落盘信息,以告知i/o写入已经成功在磁盘组内写入数据,此时向数据库或者应用等与磁盘组进行数据读写的应用端发送成功写入数据信息,以告知应用端需要写入的数据已经成功写入。
[0064]
由于设置有修改记录表,在第一磁盘组或第二磁盘组中其中一个磁盘组出现读写异常时,只要有一个磁盘组能够正常写入数据,该写入的数据就能通过修改记录表同步到另一读写异常磁盘组,实现第一磁盘组和第二磁盘组中数据的同步。并且,由于设置有两个磁盘组,在其中一个磁盘组出现读写异常时,依然可以使用另一正常工作的磁盘组来使数据库正常工作。
[0065]
本实施例提供的磁盘组双活同步方法,通过修改记录表,在第一磁盘组和第二磁盘组之间建立数据同步关系,不需要对第一磁盘组删除或添加硬盘就能够实现数据存储的冗余,提高了数据存储冗余的灵活性和数据的安全性,从而保证数据库的完整性。
[0066]
在本实施例中提供了一种磁盘组双活同步方法,可用于上述的数据库等,图2是根据本发明实施例的另一磁盘组双活同步方法的流程图,如图2所示,该流程包括如下步骤:
[0067]
步骤s201,在第一磁盘组和第二磁盘组之间建立数据同步。
[0068]
本发明实施例中,第一磁盘组为初始磁盘组,第二磁盘组为待同步磁盘组。第一磁盘组为原有的、已经存储有数据的磁盘组,第二磁盘组为新创建的磁盘组,第二磁盘组作为第一磁盘组的冗余磁盘组,实现数据库数据的冗余。在第一磁盘组和第二磁盘组形成数据冗余时,第一磁盘组和/或第二磁盘组可以通过修改记录表得知另一磁盘组中数据单元的修改情况,由此在本磁盘组内同步对数据单元进行修改,从而使第一磁盘组与第二磁盘组中的数据完全一致,实现第一磁盘组和第二磁盘组之间的数据同步。
[0069]
作为一种可选的实施方式,第一磁盘组内部可以设置为不冗余、双份冗余或者三份冗余,对应的第一磁盘组内包括相应数量的失败组。第二磁盘组在创建时也可以根据数据库实际需求设置为不冗余、双份冗余或者三份冗余。第二磁盘组内的冗余数量可以与第
一磁盘组不相同,从而提高了数据冗余的灵活性。
[0070]
作为一种可选的实施方式,在第一磁盘组和第二磁盘组之间建立数据同步之前,还可以先对第二磁盘组的容量进行测试,以避免出现第二磁盘组的容量不足以完成对第一磁盘组中的数据的冗余的情况,第二磁盘组的容量可以参考第一磁盘组的已使用容量。当第二磁盘组的容量小于预设容量时,发送容量调整信息,告知用户第二磁盘组的容量不足以实现对第一磁盘组的数据冗余,需要对第二磁盘组的容量进行调整。
[0071]
作为一种可选的实施方式,在设置第二磁盘组的冗余数量与第一磁盘组的冗余数量保持一致的情况下,该预设容量可以为第一磁盘组的已使用容量,即第二磁盘组的容量应当大于第一磁盘组的已使用容量。
[0072]
作为一种可选的实施方式,在设置第二磁盘组的冗余数量可以与第一磁盘组的冗余数量不一致的情况下,可以基于第一磁盘组的已使用容量和冗余数量,以及第二磁盘组的冗余数量,确定预设容量,也就是第二磁盘组所需的容量。基于第一磁盘组的已使用容量和冗余数量可以得到第一磁盘组中的单份数据所占用的容量,再结合第二磁盘组的冗余数量,就能够得到第二磁盘组所需的最小容量。预设容量应当大于该最小容量。
[0073]
作为一种可选的实施方式,在第一磁盘组和第二磁盘组之间建立数据同步之前,还可以先对第二磁盘组的写性能进行测试,以避免出现第二磁盘组和第一磁盘组的写性能相差太多而影响数据库性能的情况。具体的,使用创建文件所需的时间来确定磁盘组的写性能,创建文件所需时间越长,写性能越差。分别在第一磁盘组和第二磁盘组内创建预设大小的文件,然后记录第一磁盘组和第二磁盘组创建该文件所需的时间。当第一磁盘组创建文件所需的时间大于第二磁盘组时,表明第二磁盘组的写性能高于第一磁盘组的写性能,能够满足性能要求;当第一磁盘组创建文件所需的时间小于第二磁盘组时,表明第二磁盘组的写性能低于第一磁盘组的写性能。当第二磁盘组的写性能与第一磁盘组的写性能相差预设阈值时,发送写性能不足信息,此时继续建立两者的数据同步,降低两个磁盘组的同时写性能,进而影响数据库性能。因此通过写性能不足信息,告知用户第二磁盘组的写性能与第一磁盘组的性能相差较多,继续建立两者之间的数据同步会降低数据库的性能。用户可以根据该写性能不足信息,确定是否继续对第二磁盘组和第一磁盘组之间的数据同步。
[0074]
作为一种可选的实施方式,该预设阈值可以为10%,也就是说当第二磁盘组创建文件所需的时间超过第一磁盘组创建文件所需的时间的10%,即第二磁盘组的写性能比第一磁盘组的写性能低10%以上时,发送写性能不足信息。
[0075]
具体的,第一磁盘组与第二磁盘组中的数据同步的方式,也就是上述步骤s201,包括:
[0076]
步骤s2011,对第二磁盘组进行初始数据同步。
[0077]
本发明实施例中,初始数据为第一磁盘组中原有的数据,初始数据同步用于将第一磁盘组中的初始数据拷贝到第二磁盘组中,通过初始数据同步实现第二磁盘组对第一磁盘组中原有的数据的冗余。
[0078]
步骤s2012,将初始数据同步的过程中,第一磁盘组中被修改的数据单元对应的修改信息,记录在修改记录表中。
[0079]
本发明实施例中,在初始数据同步中,第一磁盘组中也会有数据被修改或者有新的数据写入,即第一磁盘组中会有数据单元被修改,而初始数据并不会同步这些被修改的
数据单元的修改内容,因此先将这些数据单元对应的修改信息记录在修改记录表中,在初始数据同步完成后,再对这些数据单元的修改进行同步。
[0080]
步骤s2013,基于修改记录表,对第二磁盘组中的数据单元进行修改数据同步。
[0081]
本发明实施例中,修改数据同步是指将第一磁盘组在初始数据同步过程中的修改的数据单元同步至第二磁盘组中。在初始数据同步完成后,基于修改记录表,将第一磁盘组在初始数据同步过程中的数据修改同步至第二磁盘组中,以使第二磁盘组中的数据与第一磁盘组中的数据完全一致。
[0082]
作为一种可选的实施方式,在修改数据同步过程中,也会产生修改第一磁盘组中数据单元的需求,此时,并不与步骤s2012和步骤s2013中一致,先修改第一磁盘组中的数据单元,将数据单元的修改信息记录在修改记录表中,在修改数据同步后再进行这些数据单元的同步,而是先在修改记录表中查找这些数据单元的修改信息,根据查找结果执行响应的操作。具体的,当修改数据同步的过程中,接收到数据单元修改指令,也就是第一磁盘组中写入数据,需要修改数据单元时,在修改记录表中查找修改数据单元对应的修改信息,其中,修改数据单元为数据单元修改指令指示修改的数据单元。根据查找结果和修改数据同步进度,可以分为以下三种情况:
[0083]
第一种情况:当修改记录表中不存在修改数据单元对应的修改信息时,表明该修改数据单元在第一磁盘组和第二磁盘组中是相同的内容,此时基于数据单元修改指令,对第一磁盘组和第二磁盘组中修改数据单元进行修改,直接对第一磁盘组和第二磁盘组进行同步修改。该种情况可以是初始数据同步过程中在第一磁盘组中该修改数据单元未被修改;也可以是该修改数据单元是新增的数据单元,即该修改数据单元中的数据是新写入的,在第一磁盘组和第二磁盘组中该修改数据单元的内容是空的。
[0084]
第二种情况:当修改记录表中存在修改数据单元对应的修改信息,并且第二磁盘组中修改数据单元已经完成修改数据同步时,表明在第二磁盘组中,该修改数据单元已经完成修改数据同步,在第一磁盘组和第二磁盘组中是相同的内容。此时,与第一种情况相同,基于数据单元修改指令,对第一磁盘组和第二磁盘组中修改数据单元进行修改,直接对第一磁盘组和第二磁盘组进行同步修改。
[0085]
第三种情况:当修改记录表中存在修改数据单元的对应修改信息,并且第二磁盘组中修改数据单元未进行修改数据同步时,表明该修改数据单元在第一磁盘组和第二磁盘组中是不同的内容,第二磁盘组还未对该修改数据单元进行修改数据同步。此时基于数据单元修改指令,对第一磁盘组中修改数据单元进行修改;同时,基于数据单元修改指令,对修改记录表中修改数据单元的修改信息进行修改,在后续修改数据同步时,就能够直接基于修改记录表,对第二磁盘组中的修改数据单元进行修改,实现第一磁盘组和第二磁盘组之间的数据同步。
[0086]
如此,可以在不调整第一磁盘组的情况下将第一磁盘组中的数据同步到第二磁盘组中,实现数据冗余的同时保证数据的安全性和数据库的完整性;并且,可以保证在第一磁盘组和第二磁盘组的数据同步过程中,所有对第一磁盘组的数据修改都能同步到第二磁盘组中,从而保证冗余数据的正确性。
[0087]
步骤s202,获取数据修改指令。详细请参见图1所示实施例的步骤s101,在此不再赘述。
[0088]
步骤s203,当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中。详细请参见图1所示实施例的步骤s102,在此不再赘述。
[0089]
步骤s204,当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。详细请参见图1所示实施例的步骤s103,在此不再赘述。
[0090]
本实施例提供的磁盘组双活同步方法,通过在第一磁盘组和第二磁盘组之间先进行初始数据同步,将第一磁盘组中原有的数据拷贝到第二磁盘组中,再进行修改数据同步,将初始数据同步过程中第一磁盘组中数据单元的修改同步至第二磁盘组中,由此,将第一磁盘组中的数据以及数据修改同步至第二磁盘组中,不仅能够保证冗余数据的正确性,还能够保证数据的安全性和数据库的完整性。
[0091]
在本实施例中提供了一种磁盘组双活同步方法,可用于上述的数据库等,图3是根据本发明实施例的又一磁盘组双活同步方法的流程图,如图3所示,该流程包括如下步骤:
[0092]
步骤s301,获取数据修改指令。详细请参见图1所示实施例的步骤s101,在此不再赘述。
[0093]
步骤s302,当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中。详细请参见图1所示实施例的步骤s102,在此不再赘述。
[0094]
步骤s303,当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,间隔预设时间,对读写异常磁盘组的读写性能进行检测。
[0095]
本发明实施例中,当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,第一磁盘组与第二磁盘组之间的数据同步被中断,此时为了确定第二磁盘组何时恢复正常读写以能够重新启动第一磁盘组和第二磁盘组之间的数据同步,每间隔预设时间,对读写异常磁盘组的读写性能进行检测。
[0096]
作为一种可选的实施方式,该预设时间可以为3秒。
[0097]
作为一种可选的实施方式,当检测到读写异常磁盘组的读写性能恢复正常,读写异常磁盘组被删除,或第一磁盘组和第二磁盘组解除数据同步时,停止对读写异常磁盘组的读写性能进行检测。当读写异常磁盘组的读写性能恢复正常,即读写异常磁盘组能够正常数据读写时,该磁盘组能够重新启动与另一正常磁盘组之间的数据同步,因此不再需要对其读写性能进行检测。当读写异常磁盘组被删除时,此时不再需要向该磁盘组进行数据读写,也就不再需要对其读写性能进行检测。当第一磁盘组与第二磁盘组解除数据同步关系时,第一磁盘组与第二磁盘组之间不再需要保持数据同步,此时也就不再需要对其读写性能进行检测。
[0098]
作为一种可选的实施方式,可以通过操作命令来建立或解除第一磁盘组和第二磁盘组之间的数据同步关系,具体操作指令如下:
[0099]
alter diskgroup a bond with b:该操作指令可以形成a磁盘组向b磁盘组同步的关系;其中a磁盘组是正在使用的、有数据的磁盘组,也就是第一磁盘组,b磁盘组是新创建的、无数据的磁盘组,也就是第二磁盘组。
[0100]
alter diskgroup a unbond with b:该操作指令可以解除a磁盘组和b磁盘组之间的数据同步关系。该操作指令指示a磁盘组与b磁盘组的数据同步关系解除,并且将b磁盘
组中的数据清除,以避免数据库中存在两个内容相同的磁盘组而导致的运维混乱。
[0101]
alter diskgroup b unbond with a:该操作指令可以解除a磁盘组和b磁盘组之间的数据同步关系。该操作指令指示a磁盘组与b磁盘组的数据同步关系解除,并且将a磁盘组中的数据清除,以避免数据库中存在两个内容相同的磁盘组而导致的运维混乱。当b磁盘组i/o故障,或者b磁盘组曾经出现读写异常并且尚未恢复与a磁盘组的同步时,则命令执行时会提示不允许解除关系的提示。
[0102]
步骤s304,当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。详细请参见图1所示实施例的步骤s103,在此不再赘述。
[0103]
在本实施例中还提供了一种磁盘组双活同步装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0104]
本实施例提供一种磁盘组双活同步装置,如图4所示,包括:
[0105]
数据修改指令获取模块401,用于获取数据修改指令;数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;第一磁盘组与第二磁盘组中的数据同步;
[0106]
修改信息记录模块402,用于当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;
[0107]
同步修改模块403,用于当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。
[0108]
作为一种可选的实施方式,第一磁盘组为初始磁盘组,第二磁盘组为待同步磁盘组。该装置还包括:同步关系建立模块。同步关系建立模块,包括:
[0109]
初始数据同步单元,用于对第二磁盘组进行初始数据同步;初始数据同步为将第一磁盘组中的初始数据拷贝到第二磁盘组中;
[0110]
修改信息记录单元,用于将初始数据同步的过程中,第一磁盘组中被修改的数据单元对应的修改信息,记录在修改记录表中;
[0111]
修改数据同步单元,用于基于修改记录表,对第二磁盘组中的数据单元进行修改数据同步。
[0112]
作为一种可选的实施方式,同步关系建立模块,还包括:
[0113]
修改数据单元查找单元,用于当修改数据同步的过程中,接收到数据单元修改指令时,在修改记录表中查找修改数据单元对应的修改信息;修改数据单元为数据单元修改指令指示修改的数据单元;
[0114]
数据单元修改单元,用于当修改记录表中不存在修改数据单元对应的修改信息时,或,当修改记录表中存在修改数据单元对应的修改信息,并且第二磁盘组中修改数据单元已经完成修改数据同步时,基于数据单元修改指令,对第一磁盘组和第二磁盘组中修改数据单元进行修改。
[0115]
作为一种可选的实施方式,数据单元修改单元,还用于:
[0116]
当修改记录表中存在修改数据单元的对应修改信息,并且第二磁盘组中修改数据
单元未进行修改数据同步时,基于数据单元修改指令,对第一磁盘组中修改数据单元进行修改;基于数据单元修改指令,对修改记录表中修改数据单元的修改信息进行修改;基于修改记录表,对第二磁盘组中修改数据单元进行修改。
[0117]
作为一种可选的实施方式,该装置还包括:
[0118]
容量测试模块,用于对第二磁盘组的容量进行测试;
[0119]
容量调整信息发送模块,用于当第二磁盘组的容量小于预设容量时,发送容量调整信息;
[0120]
写性能测试模块,用于对第二磁盘组的写性能进行测试;
[0121]
写性能不足信息发送模块,用于当第二磁盘组的写性能与第一磁盘组的写性能相差预设阈值时,发送写性能不足信息。
[0122]
作为一种可选的实施方式,该装置还包括:
[0123]
读写性能检测模块,用于当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,间隔预设时间,对读写异常磁盘组的读写性能进行检测;
[0124]
当检测到读写异常磁盘组的读写性能恢复正常,读写异常磁盘组被删除,或第一磁盘组和第二磁盘组解除数据同步时,停止对读写异常磁盘组的读写性能进行检测。
[0125]
作为一种可选的实施方式,该装置还包括:
[0126]
成功写入数据信息发送模块,用于当第一磁盘组和/或第二磁盘组写入数据,并返回成功落盘信息时,发送成功写入数据信息。
[0127]
本实施例中的磁盘组双活同步装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0128]
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0129]
本发明实施例还提供一种计算机设备,具有上述图4所示的磁盘组双活同步装置。
[0130]
请参阅图5,图5是本发明可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
[0131]
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
[0132]
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
[0133]
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0134]
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
[0135]
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
[0136]
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
[0137]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种磁盘组双活同步方法,其特征在于,所述方法包括:获取数据修改指令;所述数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;所述第一磁盘组与所述第二磁盘组中的数据同步;当所述第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于所述数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;当所述读写异常磁盘组恢复正常时,基于修改记录表对所述读写异常磁盘组中的目标数据单元进行同步修改。2.根据权利要求1所述的方法,其特征在于,所述第一磁盘组为初始磁盘组,所述第二磁盘组为待同步磁盘组;所述第一磁盘组与所述第二磁盘组中的数据同步的方式,包括:对所述第二磁盘组进行初始数据同步;所述初始数据同步用于将所述第一磁盘组中的初始数据拷贝到所述第二磁盘组中;将所述初始数据同步的过程中,所述第一磁盘组中被修改的数据单元对应的修改信息,记录在所述修改记录表中;基于所述修改记录表,对所述第二磁盘组中的数据单元进行修改数据同步。3.根据权利要求2所述的方法,其特征在于,所述第一磁盘组与所述第二磁盘组中的数据同步的方式,还包括:当所述修改数据同步的过程中,接收到数据单元修改指令时,在所述修改记录表中查找修改数据单元对应的修改信息;所述修改数据单元为所述数据单元修改指令指示修改的数据单元;当所述修改记录表中不存在所述修改数据单元对应的修改信息时,或,当所述修改记录表中存在所述修改数据单元对应的修改信息,并且所述第二磁盘组中所述修改数据单元已经完成所述修改数据同步时,基于所述数据单元修改指令,对所述第一磁盘组和所述第二磁盘组中所述修改数据单元进行修改。4.根据权利要求3所述的方法,其特征在于,所述当所述修改数据同步的过程中,接收到数据单元修改指令时,在所述修改记录表中查找修改数据单元对应的修改信息之后,还包括:当所述修改记录表中存在所述修改数据单元的对应修改信息,并且所述第二磁盘组中所述修改数据单元未进行所述修改数据同步时,基于所述数据单元修改指令,对所述第一磁盘组中所述修改数据单元进行修改;基于所述数据单元修改指令,对所述修改记录表中所述修改数据单元的修改信息进行修改;基于所述修改记录表,对所述第二磁盘组中所述修改数据单元进行修改。5.根据权利要求2所述的方法,其特征在于,所述在所述第一磁盘组和所述第二磁盘组之间建立数据同步之前,还包括:对所述第二磁盘组的容量进行测试;当所述第二磁盘组的容量小于预设容量时,发送容量调整信息;对所述第二磁盘组的写性能进行测试;当所述第二磁盘组的写性能与所述第一磁盘组的写性能相差预设阈值时,发送写性能不足信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一磁盘组或所述第二磁盘组中存在所述读写异常磁盘组时,间隔预设时间,对所述读写异常磁盘组的读写性能进行检测;当检测到所述读写异常磁盘组的读写性能恢复正常,所述读写异常磁盘组被删除,或所述第一磁盘组和所述第二磁盘组解除数据同步时,停止对所述读写异常磁盘组的读写性能进行检测。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一磁盘组或所述第二磁盘组写入数据,并返回成功落盘信息时,发送成功写入数据信息。8.一种磁盘组双活同步装置,其特征在于,所述装置包括:数据修改指令获取模块,用于获取数据修改指令;所述数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;所述第一磁盘组与所述第二磁盘组中的数据同步;修改信息记录模块,用于当所述第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于所述数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;同步修改模块,用于当所述读写异常磁盘组恢复正常时,基于修改记录表对所述读写异常磁盘组中的目标数据单元进行同步修改。9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的磁盘组双活同步方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的磁盘组双活同步方法。

技术总结
本发明涉及磁盘数据冗余技术领域,公开了磁盘组双活同步方法、装置、计算机设备及存储介质,本发明获取数据修改指令;数据修改指令用于对第一磁盘组以及第二磁盘组中目标数据单元的数据进行修改;第一磁盘组与第二磁盘组中的数据同步;当第一磁盘组或第二磁盘组中存在读写异常磁盘组时,基于数据修改指令对正常磁盘组中目标数据单元的数据进行修改,并将修改信息记录在修改记录表中;当读写异常磁盘组恢复正常时,基于修改记录表对读写异常磁盘组中的目标数据单元进行同步修改。如此在第一磁盘组和第二磁盘组之间建立数据同步,不需要删除或添加硬盘就能够实现数据同步冗余,提高了数据存储冗余的灵活性和数据的安全性,从而保证数据库的完整性。证数据库的完整性。证数据库的完整性。


技术研发人员:陈彬 马国良
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.05.10
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐