基于fpga的实时数据库备份系统及备份方法

文档序号:6375740阅读:239来源:国知局
专利名称:基于fpga的实时数据库备份系统及备份方法
技术领域
本发明涉及一种FPGA和数据库备份容灾技术,尤其涉及一种基于FPGA的实时数据库备份系统及备份方法。
背景技术
数据库备份技术主要有离线备份和在线备份。离线数据备份又称为冷备份,是在关闭数据库的运行状态下进行的文件备份操作。离线数据库通常是基于文件拷贝的备份,实现时要关闭数据库等待备份完成,备份时对数据库具有独占性,从而影响应用服务的连续运行,导致数据在备份期间不能进行数据更新。离线备份通常是全量数据备份或者增量备份。在线数据库备份亦称热备份,是数据库在不停止数据访问情况下的数据备份。支持逻辑在线备份的数据库管理系统有通过日志文件进行备份,逻辑上用软件读取数据库内容备份,快照技术等。例如被包含在Oracle数据库的RMAN工具和Sybase数据库的“dump database”命令。逻辑在线备份拷贝数据库的逻辑单元,而不是存储设备列表或是存储逻辑单元的文件。逻辑数据库备份的主要缺点就是他无法利用存储设备的快照技术来减少对应用的影响。因为在一个逻辑数据库备份的过程中,系统性能会大大的降低,因此对总处在活跃状态的数据库并不合适。一些文件系统和卷管理器支持数据快照,这是一种在线备份的方法。快照是关于制定数据集合的一个完全可用的拷贝,包括相应数据在某个时间点的映像。快照是对数据块进行的操作,不能保证备份数据应用级的一致性,对应用级数据库备份不适合。数据库系统容灾是指减少自然、人为等对数据库系统造成的冲击带来的数据库系统无法工作。容灾数据库系统一般由两部分构成,一是数据复制,二是数据库系统切换。数据复制多使用磁盘阵列等,分为软硬件实现方式。数据库系统切换是多台数据库是一致的,在主数据库出现故障后转到备份数据库,从而避免应用程序不能运行。数据灾备方案也很多,如 AIX 平台的 High Avaiability Geographical Cluster 方案或 Veritas 系统的切换策略。现在的容备方案主要针对数据级,通过同步镜像到远端实现,很少有应用级的容备。对于中国专利200610161789. 4提出了一种数据库系统的容灾方法,数据库局域网络中各数据库通过侦听网络中的数据包对各自实例进行相同数据库操作,同时能够通过数据库服务器上的代理进程实现数据库主备之间的切换,但是这种总线方式要求各数据库必须是同构的,不能实现异构的数据库备份,各数据库服务器还需要通过建立消息网络进行消息传递实现主备切换,方式处理复杂。

发明内容
本发明的目的就是为了解决上述问题,提供一种基于FPGA的实时数据库备份方法,它改变了网络的广播机制,通过FPGA的多网络接口并且有独立控制处理能力的特点,可以对数据流做高速拷贝并按要求做转换,能实现异构方式的数据库实例的操作,提升数据库备份的灵活能力,另外,FPGA对各接口做独立处理,可以处理各数据库服务器返回的消息,并能根据各数据库返回消息做出响应。为了实现上述目的,本发明采用如下技术方案一种基于FPGA的实时数据库备份系统,包括应用服务器,应用服务器与FPGA连接,FPGA上有SRAM (静态随机存取存储器)组、数据流复制模块、数据流转换模块、返回结果一致性检查模块和错误包反馈模块以及若干相互独立的RJ45接口,各RJ45接口则分别与主数据库服务器、从数据库和外部网络连接;其中,应用服务器起到外界服务对主、从数据库发起请求的中间连接作用,一方面与外界的应用服务连接,接受外界的服务请求,一方面通过FPGA与主、从数据库连接,对主、从数据库数据做读写操作并对发起的所有请求做好日志;同时,应用服务器还起到对返回错误数据包、数据库无响应数据包的处理,对主、从数据不一致做出判断,做出提示并进 行处理。SRAM组即静态随机存取存储器,提供对数据的高速存取。SRAM对流出和流入的数据包、复制获得的数据包、格式化转换后重组数据包做存取。数据流复制模块是对流出数据包进行复制,即应用服务器对主数据库发起请求而并不对从数据库做出请求,对从数据库的请求则是通过数据流复制模块对主数据库请求数据包做复制和转换后发起的,因此,数据流复制模块相当于起到数据镜像功能,为下一步数据流转换做好准备,以便生成对从数据库发起请求数据流。数据流转换模块是对复制获得的数据包进行修改,主要有两方面的修改。一方面是对数据包头部做出修改,主要是源地址和目的地址的修改,此种修改只需要通过FPGA变成对数据包头部进行替换即可;一方面是数据包数据内容的修改,根据已获得的从数据库的信息,应用服务器对从数据库的数据操作语言转化模式做好编制,按照从数据库的命令格式规则,通过FPGA可现场编程数据流转换模块利用规则匹配和深度包检测技术提取数据内容中包含SQL语句,数据流转换模块将提取SQL语句传递到上层应用服务器,上层应用服务器按照对从数据库编制好的数据语言转化模式对SQL语句格式进行转换后返回到数据流转换模块;最后将修改后的数据包头和数据包数据内容两部分修改内容重组成新的数据包转发到对应连接的RJ45接口,以此与从数据库的操作规则相对应。返回结果一致性检查模块是判断主、从数据库数据是否一致的主要模块。本模块通过对获得主、从数据库返回的结果做出检查比对,判断返回结果是否成功,主、从数据库返回结果是否一致。此模块的比对不是完全的规则匹配,而是逻辑上的返回结果一致,即不同数据库进行相同操作的返回结果有差异,此模块便通过FPGA编程对不同数据库返回的逻辑相同的结果进行比对,从而实现一致性检查。错误包反馈模块发现的主、从数据库返回结果的不一致情况进行描述反馈到上层应用服务器。出现不一致现象时,可能反馈的错误包有主、从数据库都返回结果,但是相互之间结果不一致,对存在的不同做描述;主、从数据库存在其一无返回结果的情况,对无响应现象做描述;主、从数据库都未做出响应,对无响应现象做描述。RJ45接口分别与主数据库、从数据库、外部网络连接。一种采用基于FPGA的实时数据库备份系统的备份方法,具体工作步骤如下
步骤一事务发起;FPGA中数据流复制模块获取与之相连的数据库的信息,将信息反馈到上层应用服务器;步骤二 FPGA中数据流复制模块截取流出数据流,利用深度包检测技术提取数据部内容,判断对数据是否为添加、修改或删除写操作或读操作执行流程,如果是读操作执行流程,就进入步骤三;如果是添加、修改或删除写操作,就进入步骤四;步骤三FPGA中数据流复制模块对数据流进行复制;FPGA中数据流转换模块根据应用服务器已获取从数据库信息,同应用服务器一同对SQL格式进行转换;通过不同RJ45接口连到主、从数据库;主、从数据库进行操作,返回操作结果;FPGA中返回结果一致性检查模块监听接收主、从数据库返回的结果;判断是否监听到主数据库响应;如果是就将返回数据发送到上层应用服务器;如果否,错误包反馈模块就生成主数据库无响应数据包,并将其与从数据库返回结果发送到上层应用服务器;本次事务结束;步骤四FPGA中数据流复制模块对数据流进行复制;FPGA中数据流转换模块根据应用服务器已获取从数据库信息,同上层应用服务器一同对SQL格式进行转换;通过不同 RJ45接口连到主、从数据库;主、从数据库分别进行操作,返回操作结果;FPGA中返回结果一致性检查模块监听接收主、从数据返回的结果;判断是否监听到主数据库响应,如果监听至IJ,转入步骤四a ;如果否,转入步骤四b ;步骤四a:如果监听到主数据库响应,就对主、从数据库进行结果一致性检查,并判断结果是否一致,如果一致就将成功数据包发送到上层应用服务器,本次事务结束;如果判断结果不一致就进入步骤四b ;步骤四b:FPGA中错误包反馈模块生成错误数据包,将错误数据包返回到上层应用服务器,上层应用服务器做出容错响应,上层应用服务器与FPGA各模块协同完成回滚等容错处理;容错处理成功,本次事务结束。在本发明中,采用FPGA器件设计数字系统电路。(I)设计灵活使用FPGA器件,可以不被标准系列器件在逻辑功能上所限制,而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。(2)功能密集度大功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。(3)可靠性高减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。(4)设计周期短由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。FPGA器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用FPGA器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力.(5)工作速度快FPGA / CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于软件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(6) FPGA带有四个IG的RJ45接口和高速PCI总线,脱离主机进行工作而很少占用主机的资源,这样就可以使主机的工作效率得到很大的提高。本发明的有益效果是数据库操作数据流通过FPGA板高速复制功能定位到两个或多个IG的RJ45接口发送给不同的数据服务器,对两台或多 台数据服务器中数据库进行同时一致操作,实现数据库实时备份。


图I为部署结构图;图2为系统结构示意图; 图3为读操作执行流程图;图4为读操作执行流程;图5为添加、修改或删除等写操作流程;其中,I、应用服务器,2、FPGA,3、数据库,31、主数据库,32、从数据库,33、从数据库,4、外部网络,5、RJ45接口,6、数据流复制模块,7、数据流转换模块,8、返回结果一致性检查模块,9、错误包反馈模块,10、SRAM组。
具体实施例方式下面结合附图与实施例对本发明作进一步说明。如图I所示,应用服务器I通过FPGA2与相应数据库服务器3进行连接。本发明的关键在FPGA2的数据包处理、SQL语句格式转换、消息检查,特点是能够实现异构数据库备份。如图2所示,本发明备份方法环境包括应用服务器I、FPGA2、通信链路、主从数据库31和32,主从数据库31、32可以通过通信链路部署到不同地点。所述FPGA2上有SRAM组10、数据流复制模块6、数据流转换模块7、返回结果一致性检查模块8和错误包反馈模块9以及与所述各模块对应的若干独立的RJ45接口 5 ;其中,应用服务器I起到外界服务对主、从数据库31、32发起请求的中间连接作用,一方面与外界的应用服务连接,接受外界的服务请求,一方面通过FPGA2与主、从数据库31、32连接,对主、从数据库31、32数据做读写操作并对发起的所有请求做好日志;同时,应用服务器I还起到对返回错误数据包、主、从数据库31、32无响应数据包的处理,对主、从数据不一致做出判断,做出提示并进行处理。SRAM组10即静态随机存取存储器,提供对数据的高速存取。SRAM组10对流出和流入的数据包、复制获得的数据包、格式化转换后重组数据包做存取。数据流复制模块6是对流出数据包进行复制,即应用服务器I对主数据库31发起请求而并不对从数据库32做出请求,对从数据库32的请求则是通过数据流复制模块6对主数据库31请求数据包做复制和转换后发起的,因此,数据流复制模块6相当于起到数据镜像功能,为下一步数据流转换做好准备,以便生成对从数据库32发起请求数据流。数据流转换模块7是对复制获得的数据包进行修改,主要有两方面的修改。一方面是对数据包头部做出修改,主要是源、目的地址的修改,此种修改只需要通过FPGA2中数据流转换模块7编程对数据包头部进行替换即可;一方面是数据包数据内容的修改,根据已获得的从数据库32的信息,按照从数据库32的命令格式规则,通过FPGA2中数据流转换模块7和上层应用服务器I已编制好的从数据库32语言转化模式对操作从数据库32的语句格式做出修改,最后将修改后的数据包头部和数据包数据内容重组成新的数据包转发到对应连接的RJ45接口 5,以此与从数据库32的操作规则相对应。返回结果一致性检查模块是判断主、从数据库31、32数据是否一致的主要模块。本模块通过对获得主、从数据库31、32返回的结果做出检查比对,判断返回结果是否成功,主、从数据库31、32返回结果是否一致。此模块的比对不是完全的规则匹配,而是逻辑上 的返回结果一致,即主、从数据库31、32进行相同操作的返回结果有差异,此模块便通过FPGA2中返回结果一致性检查模块8所做编程对主、从数据库返回的逻辑相同的结果进行比对,从而实现一致性检查。错误包反馈模块9发现的主、从数据库31、32返回结果的不一致情况进行描述反馈到上层应用服务器I。出现不一致现象时,可能反馈的错误包有主、从数据库31、32都返回结果,但是相互之间结果不一致,对存在的不同做描述;主、从数据库存在其一无返回结果的情况,对无响应现象做描述;主、从数据库都未做出响应,对无响应现象做描述。RJ45接口 5分别与主数据库31、从数据库32、外部网络4以及从数据库33连接。本发明的工作方法如图3、4、5所示首先FPGA2对主、从数据库31和32发起请求操作,与主、从数据库31和32发生通信,获取主、从数库31、32的信息,将获取的信息存储到高速缓存SRAM组10中;如图3所
/Jn o应用服务器I发起事务,对主、从数据库31、32进行读写操作;(I)对主、从数据库31、32进行读操作如图4所示,FPGA2中数据流复制模块6通过现场可编程进行截取数据包,存储到高速缓存SRAM组10的SRAMl中,对数据包进行拆包分析,提取数据包数据段内容,通过深度包分析技术和规则匹配方法提取数据段中包含的SQL语句,判断为读数据,数据流复制模块6进行数据包拷贝,存储到SRAM组10的SRAM2中。数据流转换模块7协同应用服务器I根据SRAM组的SRAM3中主、从数据库信息以及应用服务器I对从数据库语句转换模式的编制对SRAMl和SRAM2中的数据做指定数据库SQL语句格式转换,并存储到SRAM组的SRAM4和SRAM5中,同时清除SRAMl和SRAM2列表中本条数据流内容。对SRAM4和SRAM5中数据包的对应包头数据做修改,定位到主、从数据库服务器所连接的数据流交互RJ45接口 5,并将数据包发送到主、从数据库服务器,FPGA上时钟开始计时。主、从数据库31、32做数据读操作,FPGA2中返回结果一致性检查模块8监听主数据库服务器31返回消息。FPGA2中返回结果一致性检查模块8监听主数据库31返回的消息后停止计时,不做一致性检查,将结果直接返回到应用服务器I。主数据库31消息无响应,计时器超时后,FPGA2错误包反馈模块生成主数据库31无响应数据包发送到应用服务器1,同时获取从数据库32返回结果返回上层,本次事务结束。(2)对主、从数据库31、32进行添加、修改和删除等写操作如图5所示,FPGA2中数据流复制模块6通过现场可编程进行操作数据流截取,存储到高速缓存SRAM组10的SRAMl列表中。 对数据包进行拆包分析,提取数据包数据段内容,通过深度包分析技术和规则匹配方法提取数据段中包含的SQL语句,判断为写操作,数据流复制模块6将对SRAMl中数据流进行拷贝,数据流转换模块7协同应用服务器I根据SRAM组的SRAM3中主、从数据库信息以及应用服务器I对从数据库语句转换模式的编制对操作数据库的SQL语句做格式转换,将结果存储到SRAM组的SRAM4和SRAM5中。对SRAM4和SRAM5中数据包的对应包头数据做修改,重组数据包,定位到主、从数据库服务器所连接的数据服务数据流交互RJ45接口 5,并将数据包同时发送到主、从数据库31、32都做通信,FPGA上时钟开始计时。应用服务器I对主、从数据库31、32做写操作,将与主、从数据库31、32都做通信。应用服务器I做数据写操作,FPGA2中返回结果一致性检查模块8监听主、从数据库31、32返回的数据包,将返回消息存储到SRAM组10的SRAM6中,返回结果一致性检查模块8根据数据包分析技术判别主、从数据库31、32返回消息结果逻辑是否一致。主、从数据库31、32都返回结果,检查主、从结果不一致,FPGA2中错误包反馈模块9根据返回消息生成操作失败包发送到上层应用服务器I ;主数据库31返回成功,从数据库32无返回结果,生成从数据库32操作失败数据包;主数据库31无返回结果,从数据库32返回成功,生成主数据库31操作失败数据包。主、从数据库31、32均无消息响应,FPGA2错误包反馈模块9生成主、从数据库无响应数据包发送到应用服务器I。应用服务器I与FPGA2各模块协同做出容错处理,处理成功后,本次事务结束。上述虽然结合附图对本发明的具体实施方式
进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
权利要求
1.一种基于FPGA的实时数据库备份系统,包括应用服务器,应用服务器与FPGA连接,FPGA上有SRAM组、数据流复制模块、数据流转换模块、返回结果一致性检查模块和错误包反馈模块以及若干相互独立的RJ45接口,各RJ45接口则分别与主数据库、从数据库和外部网络连接; 其中,应用服务器起到外界服务对主、从数据库发起请求的中间连接作用,它接受外界的服务请求,通过FPGA与主、从数据库连接,对主、从数据库数据做读取操作并对发起的所有请求做好日志;同时,应用服务器还起到对返回错误数据包、主、从数据库无响应数据包的处理,对主、从数据库不一致做出判断,做出提示并进行处理; 数据流复制模块是对流出数据包进行复制,即应用服务器对主数据库发起请求而并不对从数据库做出请求,对从数据库的请求则是通过数据流复制模块对主数据库请求数据包做复制和转换后发起的,为下一步数据流转换做好准备,以便生成对从数据库发起请求数据流; 数据流转换模块是对复制获得的数据包进行修改; 返回结果一致性检查模块是判断主、从数据库数据是否一致的主要模块; 错误包反馈模块发现的主、从数据库返回结果的不一致情况进行描述反馈到上层应用服务器; RJ45接口分别与主数据库、从数据库、外部网络连接。
2.如权利要求I所述的基于FPGA的实时数据库备份系统,其特征是,所述数据流转换模块主要有两方面的修改;一方面是对数据包头部做出修改,即对源、目的地址和端口的修改,通过对数据包头部进行替换实现;一方面是数据包数据内容的修改,根据已获得的从数据库的信息,应用服务器对从数据库的数据操作语言转化模式做好编制,按照从数据库的命令格式规则,通过FPGA可现场编程数据流转换模块利用规则匹配和深度包检测技术提取数据内容中包含SQL语句,数据流转换模块将提取SQL语句传递到上层应用服务器,上层应用服务器按照对从数据库编制好的数据语言转化模式对SQL语句格式进行转换后返回到数据流转换模块;最后将修改后的数据包头和数据包数据内容重组成新的数据包转发到对应连接的RJ45接口,以此与从数据库的操作规则相对应。
3.如权利要求I所述的基于FPGA的实时数据库备份系统,其特征是,所述返回结果一致性检查模块通过对获得主、从数据库返回的结果做出检查比对,判断返回结果是否成功,主、从数据库返回结果是否一致;即不同数据库进行相同操作的返回结果有差异,此模块便通过对主、从数据库返回的逻辑相同的结果进行比对,从而实现一致性检查。
4.如权利要求I所述的基于FPGA的实时数据库备份系统,其特征是,所述错误包反馈模块发现主、从数据库返回结果的不一致时,当可能反馈的错误包有主、从数据库都返回结果,但是相互之间结果不一致的,对存在的不同做描述;当主、从数据库存在其一无返回结果的情况,对无响应现象做描述;当主、从数据库都未做出响应,对无响应现象做描述。
5.一种采用权利要求I所述的基于FPGA的实时数据库备份系统的备份方法,其特征是,具体工作步骤如下 步骤一事务发起;FPGA中数据流复制模块获取与之相连的主、从数据库的信息,将信息反馈到上层应用服务器; 步骤二 FPGA中数据流复制模块截取流出数据流,判断对数据是否为添加、修改或删除写操作或读操作执行流程,如果是读操作执行流程,就进入步骤三;如果是添加、修改或删除写操作,就进入步骤四; 步骤三FPGA中数据流复制模块对数据流进行复制;FPGA中数据流转换模块根据应用服务器已获取从数据库信息,同应用服务器一同对SQL格式进行转换;通过不同RJ45接口连到主、从数据库;主、从数据库进行操作,返回操作结果;FPGA中返回结果一致性检查模块监听接收主、从数据库返回的结果;判断是否监听到主数据库响应;如果是就将返回数据发送到上层应用服务器;如果否,错误包反馈模块就生成主数据库无响应数据包,并将其与从数据库返回结果发送到上层应用服务器;本次事务结束; 步骤四FPGA中数据流复制模块对数据流进行复制;FPGA中数据流转换模块根据应用服务器已获取从数据库信息,同上层 应用服务器一同对SQL格式进行转换;通过不同RJ45接口连到主、从数据库;主、从数据库分别进行操作,返回操作结果;FPGA中返回结果一致性检查模块监听接收主、从数据返回的结果;判断是否监听到主数据库响应,如果监听到,转入步骤四a ;如果否,转入步骤四b ; 步骤四a:如果监听到主数据库响应,就对主、从数据库进行结果一致性检查,并判断结果是否一致,如果一致就将成功数据包发送到上层应用服务器,本次事务结束;如果判断结果不一致就进入步骤四b ; 步骤四b:FPGA中错误包反馈模块生成错误数据包,将错误数据包返回到上层应用服务器,上层应用服务器做出容错响应,上层应用服务器与FPGA各模块协同完成回滚等容错处理;容错处理成功,本次事务结束。
全文摘要
本发明公开了一种基于FPGA的实时数据库备份方法,涉及FPGA和数据库备份容灾技术。数据库操作数据流通过FPGA板高速复制功能定位到两个或多个1G的RJ45接口发送给不同的数据服务器,对两台或多台数据服务器中数据库进行同时一致操作,实现数据库实时备份。
文档编号G06F17/30GK102855314SQ20121030908
公开日2013年1月2日 申请日期2012年8月27日 优先权日2012年8月27日
发明者陈贞翔, 王金光, 杨波, 张蕾, 彭立志 申请人:济南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1