一种实现Oracle数据库同机房零数据丢失的方法与流程

文档序号:11654330阅读:435来源:国知局
一种实现Oracle数据库同机房零数据丢失的方法与流程

本发明涉及数据库技术领域,尤其涉及了一种实现oracle数据库同机房零数据丢失的方法。



背景技术:

oracle数据库系统是美国oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)或b/s体系结构的数据库之一。比如silverstream就是基于数据库的一种中间件。oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了oracle知识,就可以在各种类型的机器上使用它。

dataguard是oracle数据库实现远程容灾的技术,它有三种模式:最大保护模式、最大可用模式、最大性能模式。

对于一个事务的提交,最大保护模式与最大可用模式要确保redo已传输至备库才返回。所以这两种方式对网络延迟的要求比较高,在网络条件比较差或者网络不稳定的情况下对主数据库性能有比较大的影响。

所以,在数据一致性要求不是很高的情况下建议采用最大性能模式,这也是使用最广泛的一种模式。鉴于在这种模式下,在线日志通过异步方式进行传输,所以在主数据库突然宕机的情况下会面临数据丢失。



技术实现要素:

本发明针对现有技术中、数据不安全的缺点,提供了一种实现oracle数据库同机房零数据丢失的方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决。

一种实现oracle数据库同机房零数据丢失的方法,包括如下步骤:

(1)主数据库内存储有在线日志,在线日志用于记录数据库中的事务操作,事务操作包括数据的增加、删除、修改和查询;主数据库中在线日志文件通过网络传送到备数据库,备数据库将在线日志进行存储与恢复;

(2)主数据库与备数据库通过infiniband高带宽低延迟网络进行互联,将网络延迟控制在200ns;在备数据库中划分一部分存储空间,通过infiniband网络将该存储空间共享到主数据库,主数据在该存储空间上创建额外的一个日志成员,成员是在线日志的镜像副本;

(3)在主数据库出现故障的情况下,备数据库使用主数据库内的在线日志成员进行前滚操作。

作为优选,步骤(1)中,oracle使用最大性能模式,最大性能模式中使用异步方式传输在线日志。

作为优选,步骤(4)中,前滚操作为对主数据库的在线日志进行重演。

本发明由于采用了以上技术方案,具有显著的技术效果:在备数据库环境中划分一部分存储空间,通过infiniband网络将该存储空间共享到主数据库环境,主数据库在该存储空间上创建额外的一个日志成员,成员是在线日志的多个镜像副本;这样,可以保证备数据库环境中有一份完整的在线日志,弥补了网络异步传输导致的部分在线日志未传输至备库的情况。主数据库在线日志通过高速infiniband网络进行传输可以保证不会对主数据库性能造成影响。主数据库完全故障的情况下,备数据库使用主数据库位于备数据库环境中的在线日志成员进行前滚操作,补足主数据库的数据,实现零数据丢失。

附图说明

图1是本发明一种实现oracle数据库同机房零数据丢失的方法的架构示意图;

图2是本发明一种实现oracle数据库同机房零数据丢失的方法中运行原理图。

具体实施方式

下面结合附图与实施例对本发明作进一步详细描述。

实施例1

如图1所示,一种实现oracle数据库同机房零数据丢失的方法,包括如下步骤:

(1)主数据库内存储有在线日志,在线日志用于记录数据库中的事务操作,事务操作包括数据的增加、删除、修改和查询;主数据库中在线日志文件通过网络传送到备数据库,备数据库将在线日志进行存储与恢复;主数据库中记录事务后会将日志通过网络传送到备数据库,备数据库将日志进行应用,以达到容灾的目的。oracledataguard使用最大性能模式,最大性能模式使用异步方式传输在线日志;这种模式下,不会因为备库故障对主数据库产生影响,也会保证主数据库的性能,98%以上的dataguard应用场景都采用最大性能模式。同时因为在线日志使用异步方式传输,所以在主数据库故障时会造成数据丢失,而本发明解决的便是使用最大性能模式的情况下仍能保证数据零丢失的要求;

(2)主数据库环境与备数据库环境通过infiniband高带宽低延迟网络进行互联,将网络延迟控制在200ns;在备数据库中划分一部分存储空间,通过infiniband网络将该存储空间共享到主数据库,主数据在该存储空间上创建额外的一个日志成员,成员是在线日志的镜像副本;这样,可以保证备数据库环境中有一份完整的在线日志,弥补了网络异步传输导致的部分在线日志未传输至备库的情况。主数据库在线日志通过高速infiniband网络进行传输可以保证不会对主数据库性能造成影响;

(3)主数据库完全故障的情况下,备数据库使用主数据库内的在线日志成员进行前滚操作,前滚操作为对主数据库的在线日志进行重演,对数据进行备份,实现零数据丢失。

主数据库环境,包含一台或多台服务器以及相关存储设备,用于数据存储,应用程序可以对数据库中的数据进行查询、增加、删除、修改;

备数据库环境,包含一台或多台服务器以及相关存储设备,用于数据容灾备份,当主数据库发生故障时,可以接管业务的查询、增加、删除、修改;

主数据库与备数据库之间通过网络传输在线日志,也就是dataguard架构,备库使用最大性能模式。这种模式下,不会因为备库故障对主数据库产生影响,也会保证主数据库的性能。但是因为在线日志使用异步方式传输,所以在主数据库故障时会有小部分数据未能及时通过网络传输到备库,从而造成数据丢失。

如图2所示,在备数据库环境中划分一部分存储空间,通过infiniband网络将该存储空间共享到主数据库环境,主数据库在该存储空间上创建额外的一个主库在线日志b,主库在线日志b是在线日志a的多个镜像副本;这样,可以保证备数据库环境中有一份完整的在线日志,弥补了网络异步传输导致的部分在线日志未传输至备库的情况。主数据库中在线日志a通过高速infiniband网络进行传输,可以保证不会对主数据库性能造成影响。主数据库完全故障的情况下,备数据库使用主数据库位于备数据库环境中的在线日志成员进行前滚操作,补足主数据库的数据,实现零数据丢失。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。



技术特征:

技术总结
本发明涉及数据库技术领域,公开了一种实现Oracle数据库同机房零数据丢失的方法,包括如下步骤:(1)主数据库中在线日志文件通过网络传送到备数据库,备数据库将在线日志进行存储与恢复;(2)主数据库与备数据库通过infiniband高带宽低延迟网络进行互联,将网络延迟控制在200ns;在备数据库中划分一部分存储空间,通过infiniband网络将该存储空间共享到主数据库,主数据在该存储空间上创建额外的一个日志成员;(3)在主数据库出现故障的情况下,备数据库使用主数据库内的在线日志成员进行前滚操作。本发明可在主数据库完全故障的情况下,备数据库使用主数据库位于备数据库环境中的在线日志成员进行前滚操作,补足主数据库的数据,实现零数据丢失。

技术研发人员:郭旭瑞
受保护的技术使用者:杭州沃趣科技股份有限公司
技术研发日:2017.02.22
技术公布日:2017.07.28
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1