本发明专利技术公开了一种基于FPGA的实时数据库备份方法,涉及FPGA和数据库备份容灾技术。数据库操作数据流通过FPGA板高速复制功能定位到两个或多个1G的RJ45接口发送给不同的数据服务器,对两台或多台数据服务器中数据库进行同时一致操作,实现数据库实时备份。
【技术实现步骤摘要】
本专利技术涉及一种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中返回结果一致性检查模块监听接收主、从数据返回的结果;判断是本文档来自技高网...
【技术保护点】
一种基于FPGA的实时数据库备份系统,包括应用服务器,应用服务器与FPGA连接,FPGA上有SRAM组、数据流复制模块、数据流转换模块、返回结果一致性检查模块和错误包反馈模块以及若干相互独立的RJ45接口,各RJ45接口则分别与主数据库、从数据库和外部网络连接;其中,应用服务器起到外界服务对主、从数据库发起请求的中间连接作用,它接受外界的服务请求,通过FPGA与主、从数据库连接,对主、从数据库数据做读取操作并对发起的所有请求做好日志;同时,应用服务器还起到对返回错误数据包、主、从数据库无响应数据包的处理,对主、从数据库不一致做出判断,做出提示并进行处理;数据流复制模块是对流出数据包进行复制,即应用服务器对主数据库发起请求而并不对从数据库做出请求,对从数据库的请求则是通过数据流复制模块对主数据库请求数据包做复制和转换后发起的,为下一步数据流转换做好准备,以便生成对从数据库发起请求数据流;数据流转换模块是对复制获得的数据包进行修改;返回结果一致性检查模块是判断主、从数据库数据是否一致的主要模块;错误包反馈模块发现的主、从数据库返回结果的不一致情况进行描述反馈到上层应用服务器;RJ45接口分别与主数据库、从数据库、外部网络连接。...
【技术特征摘要】
【专利技术属性】
技术研发人员:陈贞翔,王金光,杨波,张蕾,彭立志,
申请(专利权)人:济南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。