Oracle数据库容灾备份技术探讨
Oracle数据库容灾备份技术探讨
三种Oracle灾备技术
对于Oracle数据库的灾备技术,我们可以从Data Guard,GoldenGate和CDP角度去考虑。
Oracle Data Guard提供了一种数据同步技术来实现Oracle的高可用性、增强的性能以及自动的故障转移方案,为主数据库创建和维护多个备用数据库,主数据库的改变能够自动将信息从主数据库传送到备用数据库,并保证在此过程中没有信息的丢失。Oracle
Data Guard实现方式(见图1)
图1:Oracle Data Guard实现方式图
Data Guard有两种类型的备用数据库:物理备用和逻辑备用数据库,虽然都是通过归档日志来实现主数据库和备用数据库的数据一致性,但是过程却不相同:一个是通过物理磁盘的方式,一个是通过重新生成SQL事物来完成数据同步。
而GoldenGate则是一种基于日志的结构化数据复制技术,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。GoldenGate 可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据的实时复制(大概5秒以内的延迟),从而可以在应急系统、在线报表、实时数据仓库供应、交易跟踪、数据同步、集中/分发、容灾等多个场景下应用。由于GoldenGate是通过分析过滤日志来捕捉变化,因而可以实现跨平台的数据库复制以及非Oracle数据库的数据同步。
CDP(Continue Data Protection 持续数据保护)是一项新兴的技术,也是目前最热门的数据保护技术之一。行业内通常的定义为:持续数据保护是一套方法,它可以捕获或跟踪数据的变化,并将其在生产数据之外独立存放,以确保数据可以恢复到过去的任意时间点。持续数据保护系统可以基于块、文件或应用实现,可以为恢复对象提供足够细的恢复粒度,实现几乎无限多的恢复时间点。
由于Oracle数据库对读写一致性的特殊性要求,CDP厂商通常是通过调用Oracle9.2后提供的快照技术,能够在数据库正常运行的同时生成某一个时间点的一致性的镜像(注意一定是一致性镜像),Oracle数据库支持在这个一致性镜像基础上通过recover
database,达到一致性的恢复。

图2:CDP实现方式图
灾备技术深入比较
这三种技术都实现了数据库的灾难备份,但各有特点,存在以下几方面的不同。
基本原理
Oracle Data Guard 是通过Oracle数据库归档日志来实现的,并且通过Oracle
Net来传输日志;Oracle Golden Gate是通过对归档日志的捕捉并分析其的变化来实现的,有自己独享的传输方式;CDP技术是通过数据库镜像来来实现数据同步,数据库镜像的归档以及传送策略是通过CDP软件来完成。Oracle
Data Guard无论是物理备用或者逻辑备用都最多只能使数据库处在同时读的状态,不能实现同时读写,只能实现主机和备机的单活状态;Oracle
GoldenGate由于其实现方式,两端数据库都处在双活状态,备份端可以提供实时的数据查询及报表业务等,从而提高系统整体的业务处理能力,充分利用备份端的计算能力,提升系统整体业务处理性能。可以实现两端数据的同时写入。CDP由于是操作系统及实现数据同步,因此不能实现数据库的双活,两个数据库的状态只能实现单活的状态。
切换的时效性
Data Guard在主备切换时需要改变数据库的状态才能使备用数据库达到可读写状态,Oracle GoldenGate在情况发生时,可以立即实现服务器的切换。CDP需要改变整个系统的状态才能将备用系统达到可用。
对异构数据库的支持
Data Guard通过物理和逻辑的方式在备用机上还原数据库的日志,因此不支持异构数据库,也不支持异构的操作系统;GoldenGate通过分析主数据库的日志来完成tail文件,因此支持异构数据库,也支持异构的操作系统。CDP是通过操作系统层面完成数据同步的,因此不支持异构数据库,更不支持异构的操作系统。
系统资源的占用
Data Guard在完成数据同步过程中需要占用数据库的一部份资源比如LGWR、ARCN和Net
manger进程或服务等,对数据库有较大的影响,使数据库性能下降。GoldenGate和CDP是动态监控方式,对资源的消耗相对较少。
归档方式支持
Data Guard和GoldenGate都是通过日志来实现数据库的数据同步,因此必须要求Oracle数据库处在归档状态。而CDP因为其的实现方式,就没有这样的需求。
结语
在构建实际的灾备系统过程中,还需要实际情况,比如Oracle GoldenGate虽然支持双向复制,但如果链路因为网络中断发生问题,一旦网络恢复,故障发生后导致的主备库的数据差异如何处理,这些都不是数据库能完成的工作。因此在实际的方案选择上,还是要根据实际情况以及用户的需求来完善Oracle的灾备方案,这样才能做到有的放矢。
Oracle数据库容灾备份技术探讨的更多相关文章
- 三分钟读懂Oracle数据库容灾架之DataGuard
Oracle数据库目前依然处于商用数据库的霸主地位. 运行在Oracle数据库上的核心业务及核心数据的安全性尤为重要. 目前市场上针对Oracle数据库常见的容灾产品大致可以分为两大类. Oracle ...
- 转://三分钟读懂Oracle数据库容灾架之DataGuard
目前市场上针对Oracle数据库常见的容灾产品大致可以分为两大类. Oracle 公司自己的容灾产品 非Oracle公司的容灾产品 Oracle公司目前的容灾产品有我们常见的DataGuard和属于中 ...
- 本地IDC机房数据库容灾解决方案
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB 发表于云+社区专栏 作者介绍:李明,腾讯云数据库架构师华南区负责人,曾在某专业数据库服务商.51jo ...
- oracle数据迁移、备份等
exp db 或者数据泵. 或者ETL工具
- oracle数据导入/导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...
- Oracle数据导入导出
Oracle数据导入导出imp/exp 在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与ora ...
- Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电 ...
- oracle数据导入的常用命令
oracle 中数据库完全导入导出:cmd命令行模式 oracle数据库cmdfile数据库服务器constraints Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.ex ...
- Oracle数据导入导出imp/exp命令总结
racle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用 ...
随机推荐
- Android自定义View(二、深入解析自定义属性)
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51468648 本文出自:[openXu的博客] 目录: 为什么要自定义属性 怎样自定义属性 ...
- Android系统的安全设计与架构
Android系统的安全设计与架构 一.安全策略 1.Android 的总体架构由5个主要层次上的组件构成,这5层是:Android应用层. Android框架层.Dalvik虚拟机层.用户空间原生代 ...
- 集成JPA+springmvc+spring+EJB中的Java EE应用
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序.凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台.EJB (Enterprise Jav ...
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
1 创建day14数据库,创建user.sql表: A 创建数据库 day14 B 创建数据表 users create table users ( id int primary keyaut ...
- 带你深入理解STL之Vector容器
C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. ST ...
- java中hashCode()与equals()详解
首先之所以会将hashCode()与equals()放到一起是因为它们具备一个相同的作用:用来比较某个东西.其中hashCode()主要是用在hash表中提高 查找效率,而equals()则相对而言使 ...
- 【java集合框架源码剖析系列】java源码剖析之java集合中的折半插入排序算法
注:关于排序算法,博主写过[数据结构排序算法系列]数据结构八大排序算法,基本上把所有的排序算法都详细的讲解过,而之所以单独将java集合中的排序算法拿出来讲解,是因为在阿里巴巴内推面试的时候面试官问过 ...
- Android实现登录小demo
安卓,在小编实习之前的那段岁月里面,小编都没有玩儿过,如果说玩儿过,那就是安卓手机了,咳咳,敲登录的时候有种特别久违的熟悉,这种熟悉的感觉就和当时敲机房收费系统一样,那叫一个艰难啊,不过小编相信,在小 ...
- Activity与Fragment的生命周期详解
在安卓中Activity与Fragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图.其中Activity是通过setContenView()显示视图,而Fra ...
- 如何在Cocos2D游戏中实现A*寻路算法(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...