1.一种数据容灾方法,其特征在于,所述方法应用在容灾服务器;所述方法包括:
从源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;
判断所述原始数据是否为经过压缩的数据;
若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;
存储所述恢复数据;
其中,所述容灾服务器为不同于所述源数据库的数据库或数据主机。
2.根据权利要求1所述的方法,其特征在于,
所述方法还包括:
若所述原始数据为未经压缩的数据,则直接存储所述原始数据。
3.根据权利要求1所述的方法,其特征在于,
所述从源数据库接收由安装在所述原始数据中的数据抓取组件抓取的原始数据,包括:
从源数据库接收基于远程直接内存访问协议传输的所述原始数据。
4.根据权利要求1所述的方法,其特征在于,
所述解压所述原始数据形成恢复数据,包括:
判断所述原始数据中的数据块的数据结构,形成判断结果;
若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;
依据所述压缩头部确定对应每一压缩单元的数据块;
还原所述数据块,形成所述恢复数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,
所述容灾服务器的工作模式包括数据恢复模式和应用模式;
当所述容灾服务器工作在所述数据恢复模式时,所述容灾服务器用于基于所述原始数据形成恢复数据或直接存储所述原始数据;
当所述容灾服务器工作在所述应用模式时,所述容灾服务器用于将所述恢复数据或所述原始数据提供给业务服务器。
6.根据权利要求1至4任一项所述的方法,其特征在于,
所述源数据库为Oracle数据库。
7.一种容灾服务器,其特征在于,所述容灾服务器为不同于源数据库的数据库或数据主机,所述容灾服务器包括:
接收单元,用于从所述源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;
判断单元,用于判断所述原始数据是否为经过压缩的数据;
解压单元,用于若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;
存储单元,用于存储所述恢复数据。
8.根据权利要求7所述的容灾服务器,其特征在于,
所述存储单元,还用于若所述原始数据为未经压缩的数据,则直接存储所述原始数据。
9.根据权利要求7所述的容灾服务器,其特征在于,
所述接收单元,具体用于从源数据库接收基于远程直接内存访问协议传输的所述原始数据。
10.根据权利要求7所述的容灾服务器,其特征在于,
所述解压单元,具体用于判断所述原始数据中的数据块的数据结构,形成判断结果;若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;依据所述压缩头部确定对应每一压缩单元的数据块;及还原所述数据块,形成所述恢复数据。
11.根据权利要求7至10任一项所述的容灾服务器,其特征在于,
所述容灾服务器的工作模式包括数据恢复模式和应用模式;
所述容灾服务器,用于工作在所述数据恢复模式时,基于所述原始数据形成恢复数据或直接存储所述原始数据;
所述容灾服务器,用于工作在所述应用模式时,将所述恢复数据或所述原始数据提供给业务服务器。
数据容灾方法及容灾服务器\n技术领域\n[0001] 本发明涉及信息处理领域,尤其涉及一种数据容灾方法及容灾服务器。\n背景技术\n[0002] 随着信息技术的发展,数据库的应用在越来越广泛,具体如在电信、金融、电子商务等行业都形成有自己的数据库或数据中心。\n[0003] 为了保证数据遭遇重大灾难时,不至于给电信、金融或电子商务等行业的业务系统的正常运行造成阻碍,数据库或数据中心必须要有一定的容灾能力。\n[0004] 在现有技术中,为了提升数据库或数据中心的容灾能力,通常会采用以下方法进行数据容灾:\n[0005] 第一种:实现一对一的镜像容灾备份;采用同类型的容灾备份数据库或主机进行容灾备份。这种方法的能够有很好的容灾能力,在一台主机或一个数据库出现异常时,可以通过立即启动另一个台主机或数据库;但是这种方式,硬件和维护成本高、且在后续数据管理、扩容等各方面都会有诸多的限制。\n[0006] 第二种:基于归档日志或重做日志等信息的容灾备份方式,这种备份方式很好的解决了硬件和维护成本高的问题,但是可能存在的问题是若数据库中的数据存储有备份数据,则需要后续在维护工作人员的手动解压下,才能进行数据的完整恢复,显然这种方式的智能性不够、时间延迟大、效率低等问题。\n[0007] 比如,在Oracle数据库灾备份应用中,就包括上述第一种和第二种容灾备份方式。\n在第二种方式中可用Oracle DataGuard工具进行基于日志的数据容灾备份。Oracle DataGuard工具是为了提高Oracle应用在遭遇数据中心不可用时的持续服务能力。Oracle DataGuard工具通过将Oracle的archivelog和redolog从生产的源服务器传输到目标服务器,并将日志在目标服务器上进行重演的方式实现Oracle数据库本地或异地容灾。\n发明内容\n[0008] 有鉴于此,本发明实施例期望提供一种数据容灾方法及容灾服务器,以解决容灾成本高、数据管理或扩容限制大及容灾效率低等问题至少其中之一。\n[0009] 为达到上述目的,本发明的技术方案是这样实现的:\n[0010] 本发明实施例第一方面提供一种数据容灾方法,所述方法应用在容灾服务器;所述方法包括:\n[0011] 从源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;\n[0012] 判断所述原始数据是否为经过压缩的数据;\n[0013] 若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;\n[0014] 存储所述恢复数据。\n[0015] 优选地,所述方法还包括:\n[0016] 若所述原始数据为未经压缩的数据,则直接存储所述原始数据。\n[0017] 优选地,所述从源数据库接收由安装在所述原始数据中的数据抓取组件抓取的原始数据,包括:\n[0018] 从源数据库接收基于远程直接内存访问协议传输的所述原始数据。\n[0019] 优选地,所述解压所述原始数据形成恢复数据,包括:\n[0020] 判断所述原始数据中的数据块的数据结构,形成判断结果;\n[0021] 若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;\n[0022] 依据所述压缩头部确定对应每一压缩单元的数据块;\n[0023] 还原所述数据块,形成所述恢复数据。\n[0024] 优选地,所述容灾服务器的工作模式包括数据恢复模式和应用模式;\n[0025] 当所述容灾服务器工作在所述数据恢复模式时,所述容灾服务器用于基于所述原始数据形成恢复数据或直接存储所述原始数据;\n[0026] 当所述容灾服务器工作在所述应用模式时,所述容灾服务器用于将所述恢复数据或所述原始数据提供业务服务器。\n[0027] 优选地,所述源数据库为Oracle数据库。\n[0028] 本发明实施例第二方面提供一种容灾服务器,所述容灾服务器包括:\n[0029] 接收单元,用于从源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;\n[0030] 判断单元,用于判断所述原始数据是否为经过压缩的数据;\n[0031] 解压单元,用于若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;\n[0032] 存储单元,用于存储所述恢复数据。\n[0033] 优选地,所述存储单元,还用于若所述原始数据为未经压缩的数据,则直接存储所述原始数据。\n[0034] 优选地,所述接收单元,具体用于从源数据库接收基于远程直接内存访问协议传输的所述原始数据。\n[0035] 优选地,所述解压单元,具体用于判断所述原始数据中的数据块的数据结构,形成判断结果;若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;依据所述压缩头部确定对应每一压缩单元的数据块;及还原所述数据块,形成所述恢复数据。\n[0036] 优选地,所述容灾服务器的工作模式包括数据恢复模式和应用模式;\n[0037] 所述容灾服务器,用于工作在所述数据恢复模式时,基于所述原始数据形成恢复数据或直接存储所述原始数据;\n[0038] 所述容灾服务器,用于工作在所述应用模式时,将所述恢复数据或所述原始数据提供业务服务器。\n[0039] 本发明实施例所述的数据容灾方法及容灾服务器,通过接收安装在源数据库中的数据抓取组件所抓取的原始数据,通过判断获取的原始数据是否为经过压缩的压缩数据,若是压缩数据,则自动进行解压缩;显然相对人工手动解压来实现数据容灾,显然时延小且效率高;相对于设置一台镜像设备,本发明实施例所述容灾服务器可以为不同于源数据库的各种类型的数据库或数据主机,且实践证明容灾成本也有所降低,且更为重要的是,本实施例所述数据容灾方法和容灾服务器,也能解决现有技术中数据管理、扩容等多方面的限制。\n附图说明\n[0040] 图1为本发明实施例所述的数据容灾方法的流程示意图之一;\n[0041] 图2为本发明实施例所述的数据容灾方法的流程示意图之二;\n[0042] 图3为本发明实施例所述的容灾服务器的结构示意图;\n[0043] 图4为本发明实施例所述的数据容灾方法应用的数据系统的结构示意图。\n具体实施方式\n[0044] 以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。\n[0045] 如图1所示,本实施例提供一种数据容灾方法,所述方法应用在容灾服务器;所述方法包括:\n[0046] 步骤S110:从源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;\n[0047] 步骤S120:判断所述原始数据是否为经过压缩的数据;\n[0048] 步骤S130:若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;\n[0049] 步骤S140:存储所述恢复数据。\n[0050] 此处所述的源数据库可为Oracle数据库等类型的数据库。\n[0051] 所述数据抓取组件为安装在数据库中用于获取源数据库中存储的数据的数据获取逻辑实体。\n[0052] 在步骤S120中可以通过获取的原始数据的数据格式判断该原始数据是否为经过了压缩的数据。此处的所述压缩数据可包括经过列压缩处理的压缩数据。在步骤S120中条同样可通过根据原始数据的数据格式确定是否经过了列压缩处理。通常不同的数据压缩方法将对应了不同的压缩格式,将形成不同的数据格式。此处的数据格式可判断出当前接收的数据是否为压缩包,具体是什么类型的压缩包。根据压缩包的文件后缀名等数据格式信息可确定出数据是否经过了列压缩处理,是否包括了列压缩技术。\n[0053] 在步骤S130中若确实原始数据确实为压缩数据,则进行解压处理,将数据恢复成业务服务器可以直接使用的数据。\n[0054] 显然本实施例所述容灾服务器可以自动进行数据解压恢复处理,相对于基于人工解压,更好的利用了服务设备的软硬件资源,提高了服务设备的智能性,且具有容灾处理效率高的优点;相对于与源数据库同类型的镜像设备进行容灾,又具有成本低且扩容和管理等各方面限制少的优点。\n[0055] 如图2所示,所述方法还包括:\n[0056] 步骤S150:若所述原始数据为未经压缩的数据,则直接存储所述原始数据。\n[0057] 若原始数据为未经压缩的数据,可为直接能被业务服务器使用的数据,故直接存储所述原始数据即可实现数据容灾处理。\n[0058] 所述步骤S110可包括:从源数据库接收基于远程直接内存访问协议传输的所述原始数据。\n[0059] 所述远程直接内存访问协议为RDMA协议,具有传输速率快、传输带宽高等优点,这样能够在较短的时间内获取到源数据库中的数据。\n[0060] 在具体实现时,步骤S110中从源数据库中接收数据,采用的通信协议不限于RDMA协议。\n[0061] 在所述步骤S130中所述解压所述原始数据形成恢复数据,包括:\n[0062] 判断所述原始数据中的数据块的数据结构,形成判断结果;\n[0063] 若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;\n[0064] 依据所述压缩头部确定对应每一压缩单元的数据块;\n[0065] 还原所述数据块,形成所述恢复数据。\n[0066] 数据压缩通常可分为行压缩、列压缩和混合压缩。行压缩具有较好的访问读取特性;列压缩具有较高的压缩比,经列压缩后的数据占据的存储空间较小。混合压缩为结合了行压缩和列压缩的两者的特性;具体如混合列压缩,实质上融合了列压缩的高压缩比和行压缩的好的访问特性。混合列压缩是基于压缩单元(Compress Unit,CU)的数据压缩,是基于数据列的压缩。所述混合列压缩采用列压缩方式进行了数据压缩形成CU,但是一个CU内保存了数据行的所有字段信息。故在CU与CU之间,对于Oracle数据库而言还是可以视为是一个基于数据行的数据库。访问某一数据行,总是只在一个CU内。每个CU由一些连续的数据块block组成,CU头部(此处的CU头部即为上述压缩头部)中记录了每一数据行的各个数据列在CU中的分布情况,在混合列压缩模式下,一数据行通常是跨多个block的。\n[0067] 若Oracle数据库采用混合列压缩对数据进行了压缩,即便采用Oracle DataGuard工具进行数据恢复,但是正真要还原到业务服务器可直接使用的数据,还必须需要人工解压缩。而在本实施例中可以通过容灾服务器来进行解压缩。所述容灾服务器可以安装有进行解压缩的软件,具体如能够进行混合列压缩形成的压缩数据解压的De-HCC软件,基于该De-HCC软件可以进行自动解压,恢复出业务服务器可直接使用的数据。\n[0068] 所述容灾服务器的工作模式包括数据恢复模式和应用模式。\n[0069] 当所述容灾服务器工作在所述数据恢复模式时,所述容灾服务器用于基于所述原始数据形成恢复数据或直接存储所述原始数据。\n[0070] 当所述容灾服务器工作在所述应用模式时,所述容灾服务器用于将所述恢复数据或所述原始数据提供业务服务器。\n[0071] 所述步骤S110至步骤S150均为所述容灾服务器工作在数据恢复模式下时,执行的操作。\n[0072] 这样用户可以根据实际数据需求,灵活的切换容灾服务器的工作模式。\n[0073] 如图3所示,本实施例提供一种容灾服务器,所述容灾服务器包括:\n[0074] 接收单元110,用于从源数据库接收由安装在所述源数据库中的数据抓取组件抓取的原始数据;\n[0075] 判断单元120,用于判断所述原始数据是否为经过压缩的数据;\n[0076] 解压单元130,用于若所述原始数据为经过压缩的压缩数据,则解压所述原始数据形成恢复数据;\n[0077] 存储单元140,用于存储所述恢复数据。\n[0078] 所述接收单元110的具体结构可通信接口。所述通信接口可包括有线接口或无线接口。所述有线接口可为电缆接口或光缆接口。所述无线接口可以为各种类型的无线天线,如蓝牙天线、WiFi天线、移动通信天线等。\n[0079] 所述判断单元120和解析单元130的具体结构可包括处理器和存储介质;所述存储介质上存储有可执行代码。所述存储介质与所述处理器通过总线等用户设备内部的通信接口连接。所述处理器通过执行所述可执行代码可以实现所述判断单元120和解析单元130的功能。所述处理器可以中央处理器CPU、微处理器MCU、数字信号处理器DSP或可编程阵列PLC等具有信息处理功能的处理器或处理芯片。所述可执行代码可为上述De-HCC软件。此处De-HCC软件可以为混合列压缩形成的压缩数据进行解压的软件或程序。\n[0080] 所述存储单元140的具体结构可包括各种类型的存储介质,通常可为非瞬间存储介质。\n[0081] 此处的所述源数据库可为各种类型的数据库,具体如Oracle数据库。\n[0082] 所述存储单元140,还用于若所述原始数据为未经压缩的数据,则直接存储所述原始数据。若原始数据为未经压缩的数据,可能可以被业务服务器直接使用的数据,故可以直接存储所述数据原始数据即可。\n[0083] 此处的压缩处理可为包括列压缩的压缩处理,具体如混合列压缩,则所述原始数据可为经过混合列压缩的压缩数据。\n[0084] 所述接收单元110,具体用于从源数据库接收基于远程直接内存访问协议传输的所述原始数据。\n[0085] 所述接收单110还可以基于其他传输协议从源数据库获取数据,在本实施例所述的容灾服务器中接收的是基于RMCA协议传输的数据,这样具有数据传输效率高的优点。\n[0086] 所述解压单元130,具体用于判断所述原始数据中的数据块的数据结构,形成判断结果;若所述原始数据为经过混合列压缩处理的压缩数据,查找所述原始数据中各压缩单元CU的压缩头部;依据所述压缩头部确定对应每一压缩单元的数据块;及还原所述数据块,形成所述恢复数据。\n[0087] 所述解压单元130可为安装有所述De-HCC软件的服务器或服务机组等具体结构。\n[0088] 所述容灾服务器的工作模式包括数据恢复模式和应用模式;\n[0089] 所述容灾服务器,用于工作在所述数据恢复模式时,基于所述原始数据形成恢复数据或直接存储所述原始数据;\n[0090] 所述容灾服务器,用于工作在所述应用模式时,将所述恢复数据或所述原始数据提供业务服务器。\n[0091] 此处的所述容灾服务器对应有至少两种工作模式,这样可以方便工作灵活的控制所述容灾服务器的工作。\n[0092] 总之本实施例所述的容灾服务器,能够用于为实现上述数据容灾方法提供实现硬件,且具有容灾成本低、容灾效率高且数据管理和扩容限制小等优点。\n[0093] 以下结合上述实施例提供一个具体应用示例:\n[0094] 如图4所示为本示例所述的数据容灾方法应用的系统,包括形成有Orocle数据库的Exadata服务器和与所述Orocle数据库建立有连接的PBdata服务器。此处的PBdata服务器即为所述容灾服务器。业务服务器通过网络分别连接到Exadata服务器和PBdata服务器。\n所述网络可包括广域网WAN、局域网LAN等网络。Exadata服务器还运行有Patch软件;所述PBdata服务器运行有De-HCC软件。所述软件patch相当于上述数据抓取组件。\n[0095] 本示例所述数据容灾方法包括:\n[0096] 在Exadata服务器安装配合De-HCC软件的软件patch,进行数据抓取。\n[0097] 通过网络将获取数据传输到PBData服务器,请求通过RDMA协议传送给PBData服务器。\n[0098] PBdata服务器过De-HCC软件读取传输过来的数据并进行数据分析。且PBdata服务器中的解压组件对数据的结构进行解析,判断数据是否为压缩的数据,如非压缩数据则直接进行数据存储;如为压缩数据,根据数据中信息找到整个CU中的所有数据,解压组件对整过CU中数据进行解压并还原数据,还原完成后进行数据存储。\n[0099] 从而保证PBData服务器中存储的数据已经没有列压缩信息,可以直接为上层传统服务器访使用。\n[0100] 在容灾发生后,用户可以根据需要控制容灾服务器的工作模式,具体如选择是维持CU解压转换的模式,或者将数据完全解压以保证应用性能,充分保证了容灾环境下的灵活性。\n[0101] 上述解压组件数据解压的流程可包括:\n[0102] 当De-HCC软件发现是混合列压缩数据后,解压组件通过判断数据块结构,找到CU header并通过CU header中的数据找到所有属于此CU的数据块,并对CU数据块中的所有数据进行行还原后组成新的完整数据进行存储。\n[0103] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。\n[0104] 上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。\n[0105] 另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。\n[0106] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。\n[0107] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
法律信息
- 2019-06-28
- 2016-11-16
实质审查的生效
IPC(主分类): G06F 11/14
专利申请号: 201510111152.3
申请日: 2015.03.13
- 2016-10-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-10-17
|
2012-06-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |