oracle 10g DATAGUARD.doc
《oracle 10g DATAGUARD.doc》由会员分享,可在线阅读,更多相关《oracle 10g DATAGUARD.doc(36页珍藏版)》请在三一办公上搜索。
1、36它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它dataguard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声).OracleDataGuard。而对于我而言,我一定要亲切的叫它:DG(注:主要是因为打着方便)。 不少未实际接触过dg的初学者可能会下意识以为dg是一个备份恢复的工具。我要说的是,这种形容不完全错,dg拥有备份的功能,某些情况下它甚至可以与primary数据库完全一模一样,但是它存在的目的并不仅仅是为了恢复数据,应该说它的存在是为了 确保企业数据的高可用性,数据保护以及灾难恢复 ( 注意这个字眼,灾难恢复) 。dg提供全面的服务包括:创建,维护,管理
2、以及监控standby数据库 , 确保数据安全 , 管理员可以通过将一些操作转移到standby数据库执行的方式改善数据库性能 。后面这一长串大家可以把它们理解成形容词,千万不要被其花哨的修饰所迷惑,要抓住重点,要拥有透明现象看本质的能力,如果没有那就要努力学习去拥有,下面我来举一个例子,比如我们夸人会说它聪明勇敢善良等等,这些就属于形容词,不重要,重点在于我们究竟想形容这个人是好人还是坏人。然后再回来看看oracle对dg功能上的形容,数据保护和灾难恢复应该都可以归结为高可用性,那么我们可以清晰的定位dg的用途了,就是构建高可用的企业数据库应用环境。 一、 DataGuard 配置(Data
3、GuardConfigurations) DataGuard 是一个集合,由一个primary数据库(生产数据库)及一个或多个standby数据库(最多9个)组成。组成DataGuard的数据库通过OracleNet连接,并且有可能分布于不同地域。只要各库之间可以相互通信,它们的物理位置并没有什么限制,至于操作系统就更无所谓了(某些情况下),只要支持oracle就行了。 你即可以通过命令行方式管理primary数据库或standby数据库,也可以通过DataGuardbroker提供的专用命令行界面(DGMGRL),或者通过OEM图形化界面管理。 1. Primary 数据库 前面提到,Dat
4、aGuard包含一个primary数据库即被大部分应用访问的生产数据库,该库即可以是单实例数据库,也可以是RAC。 2. Standby 数据库 Standby 数据库是primary数据库的复制(事务上一致)。在同一个DataGuard中你可以最多创建9个standby数据库。一旦创建完成,DataGuard通过应用primary数据库的redo自动维护每一个standby数据库。Standby数据库同样即可以是单实例数据库,也可以是RAC结构。关于standby数据库,通常分两类:逻辑standby和物理standby,如何区分,两类各有什么特点,如何搭建,这方面内容就是后面的章节主要介绍
5、的,在这里呢三思先简单白话一下: o 逻辑standby 就像你请人帮你素描画像,基本器官是都会有的,这点你放心,但是各器官位置啦大小啦肤色啦就不一定跟你本人一致了。 o 物理standby 就像拿相机拍照,你长什么样出来的照片就是什么样,眼睛绝对在鼻子上头。或者说就像你去照镜子,里外都是你,哇哈哈。具体到数据库就是不仅文件的物理结构相同,甚至连块在磁盘上的存储位置都是一模一样的(默认情况下)。 为什么会这样呢?这事就得从同步的机制说起了。逻辑standby是通过接收primary数据库的redolog并转换成sql语句,然后在standby数据库上执行SQL语句(SQLApply)实现同步,
6、物理standby是通过接收并应用primary数据库的redolog以介质恢复的方式(RedoApply)实现同步。 另外,不知道大家是否注意到形容词上的细节:对于相机拍照而言,有种傻瓜相机功能强大而操作简便,而对于素描,即使是最简单的画法,也需要相当多的练习才能掌握。这个细节是不是也说明逻辑standby相比物理standby需要操作者拥有更多的操作技能呢? 二、 DataGuard 服务(DataGuardServices) REDO 传输服务(RedoTransportServices) 控制redo数据的传输到一个或多个归档目的地。 Log 应用服务(LogApplyServices
7、) 应用redo数据到standby数据库,以保持与primary数据库的事务一致。redo数据即可以从standby数据库的归档文件读取,也可直接应用standbyredolog文件(如果实时应用打开了的话)。 角色转换服务(RoleTransitions) Dg 中只有两种角色:primary和standby。所谓角色转换就是让数据库在这两个角色中切换,切换也分两种:switchover和failover switchover :转换primary数据库与standby数据库。switchover可以确保不会丢失数据。 failover :当primary数据库出现故障并且不能被及时恢复时
8、,会调用failover将一个standby数据库转换为新的primary数据库。在最大保护模式或最高可用性模式下,failover可以保证不会丢失数据。 注:上述各概念简要了解即可,这里写的太简单,不要咬文嚼字,不然你会越看越糊涂,相关服务在后面章节将会有详细介绍,不仅有直白的描述,还会有示例,再加上浅显的图片,就算你一看不懂,再看肯定懂:) 三、 DataGuard 保护模式(DataGuardProtectionModes) 对于DataGuard而言,其生存逻辑非常简单,好好活,做有意义的事,做黑多黑多有意义的事:) 由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模: 最大保护
9、(Maximumprotection): 这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其redo不仅被写入到本地的onlineredolog,还要同时提交到standby数据库的standbyredolog,并确认redo数据至少在一个standby数据库可用(如果有多个的话),然后才会在primary数据库上提交。如果出现了什么故障导致standby数据库不可用的话,primary数据库会被shutdown。 最高性能(Maximumperformance): 这种模式提供在不影响primary数据库性能前提下最高级别的数据保护策略。事务可以随时提交,当
10、前primary数据库的redo数据也需要至少写入一个standby数据库,不过这种写入可以是不同步的。 如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护而仅对primary数据库有轻微的性能影响。 最高可用性(Maximumavailability): 这种模式提供在不影响primary数据库可用前提下最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求所有事务在提交前必须保障redo数据至少在一个standby数据库可用,不过与之不同的是,如果出现故障导入无法同时写入standby数据库redolog,primary数据库并不会shutdown,而是自动转为最高性能
11、模式,等standby数据库恢复正常之后,它又会再自动转换成最高可用性模式。 最大保护及最高可用性需要至少一个standby数据库redo数据被同步写入。三种模式都需要指定LOG_ARCHIVE_DEST_n初始化参数。LOG_ARCHIVE_DEST_n很重要,你看着很眼熟是吧,我保证,如果你完完整整学完dataguard,你会对它更熟。 四、 DataGuard 优点总结 灾难恢复及高可用性 全面的数据保护 有效利用系统资源 在高可用及高性能之间更加灵活的平衡机制 故障自动检查及解决方案 集中的易用的管理模式 自动化的角色转换 经过开篇的灌输,相信大家已经看的出来,上面这几条都是形容词,看
12、看就好,记住更好,跟人穷白活的时候通常能够用上:) 同一个DataGuard配置包含一个 Primary 数据库和最多九个 Standby 数据库。 Primary 的创建就不说了,Standby数据库初始可以通过primary数据库的备份创建。一旦创建并配置成standby后,dg负责传输primary数据库redodata到standby数据库,standby数据库通过应用接收到的redodata保持与primary数据库的事务一致。 一、 Standby 数据库类型 前章我们简单介绍了Standby数据库,并且也知道其通常分为两类:物理standby和逻辑standby,同时也简短的描述
13、了其各自的特点,下面我们就相关方面进行一些稍深入的了解: 1. 物理standby 我们知道物理standby与primary数据库完全一模一样(默认情况下,当然也可以不一样,事无绝对嘛),Dg通过redo应用维护物理standby数据库。通常在不应用恢复的时候,可以以read-only模式打开,如果数据库指定了flashbackarea的话,也可以被临时性的置为read-write模式。 o Redo 应用 物理standby通过应用归档文件或直接从standby系统中通过oracle恢复机制应用redo文件。恢复操作属于块对块的应用(不理解?那就理解成块复制,将redo中发生了变化的块复制
14、到standby)。如果正在应用redo,数据库不能被open。 Redo 应用是物理standby的核心,务必要搞清楚其概念和原理,后续将有专门章节介绍。 o Read-only 模式 以read-only模式打开后,你可以在standby数据库执行查询,或者备份等操作(变相减轻primary数据库压力)。此时standby数据库仍然可以继续接收redo数据,不过并不会触发操作,直到数据库恢复redo应用。也就是说read-only模式时不能执行redo应用,redo应用时数据库肯定处于未打开状态。如果需要的话,你可以在两种状态间转换,比如先应用redo,然后read-only,然后切换数据
15、库状态再应用redo,呵呵,人生就是循环,数据库也是一样。 o Read-write 模式 如果以read-write模式打开,则standby数据库将暂停从primary数据库接收redo数据,并且暂时失去灾难保护的功能。当然,以read-write模式打开也并非一无是处,比如你可能需要临时调试一些数据,但是又不方便在正式库操作,那就可以临时将standby数据库置为read-write模式,操作完之后将数据库闪回到操作前的状态(闪回之后,DataGuard会自动同步,不需要重建standby)。 o 物理standby特点 灾难恢复及高可用性 物理standby提供了一个健全而且极高效的灾
16、难恢复及高可用性的解决方案。更加易于管理的switchover/failover角色转换及最更短的计划内或计划外停机时间。 数据保护 应用物理standby数据库,Dg能够确保即使面对无法预料的灾害也能够不丢失数据。前面也提到物理standby是基于块对块的复制,因此对象、语句统统无关,primary数据库上有什么,物理standby也会有什么。 分担primary数据库压力 通过将一些备份任务、仅查询的需求转移到物理standby,可以有效节省primary数据库的cpu以及i/o资源。 提升性能 物理standby所使用的redo应用技术使用最底层的恢复机制,这种机制能够绕过sql级代码层
17、,因此效率最高。 2. 逻辑standby 逻辑standby是逻辑上与primary数据库相同,结构可以不一致。逻辑standby通过sql应用与primary数据库保持一致,也正因如此,逻辑standby可以以read-write模式打开,你可以在任何时候访问逻辑standby数据库。同样有利也有弊,逻辑standby对于某些数据类型以及一些ddl,dml会有操作上的限制。 o 逻辑standby的特点: 除了上述物理standby中提到的类似灾难恢复,高可用性及数据保护等之外,还有下列一些特点: 有效的利用standby的硬件资源 除灾难恢复外,逻辑standby数据库还可用于其它业务需
18、求。比如通过在standby数据库创建额外的索引、物化视图等提高查询性能并满足特定业务需要。又比如创建新的schema(primary数据库并不存在)然后在这些schema中执行ddl或者dml操作等。 分担primary数据库压力 逻辑standby数据库可以在更新表的时候仍然保持打开状态,此时这些表可同时用于只读访问。这使得逻辑standby数据库能够同时用于数据保护和报表操作,从而将主数据库从那些报表和查询任务中解脱出来,节约宝贵的CPU和I/O资源。 平滑升级 比如跨版本升级啦,打小补丁啦等等,应该说应用的空间很大,而带来的风险却很小(前提是如果你拥有足够的技术实力。另外虽然物理sta
19、ndby也能够实现一些升级操作,但如果跨平台的话恐怕就力不从心,所以此项就不做为物理standby的特点列出了),我个人认为这是一种值的推荐的在线的滚动的平滑的升级方式。 二、 DataGuard 操作界面(方式) 做为oracle环境中一项非常重要的特性,oracle提供了多种方式搭建、操作、管理、维护DataGuard配置,比如: OEM(OracleEnterpriseManager) OrcaleEM 提供了一个窗口化的管理方式,基本上你只需要点点鼠标就能完全dg的配置管理维护等操作(当然三思仍然坚持一步一步学rman中的观点,在可能的情况下,尽可能不依赖视窗化的功能,所以这种操作方式
20、不做详细介绍),其实质是调用oracle为dg专门提供的一个管理器:DataGuardBroker来实施管理操作。 Sqlplus 命令行方式 命令行方式的管理,本系列文章中主要采用的方式。不要一听到命令行就被吓倒,dataguard的管理命令并不多,你只需要在脑袋瓜里稍微挪出那么一小点地方用来记忆就可以了。 DGMGRL(DataGuardbroker 命令行方式) 就是DataGuardBroker,不过是命令行方式的操作。 初始化参数文件 我感觉不能把参数化参数视为一种操作方式,应该说,在这里,通过初始化参数,更多是提供更灵活的DataGuard配置。 三、 DataGuard 的软硬件
21、需求 1、 硬件及操作系统需求 同一个DataGurid配置中的所有oracle数据库必须运行于相同的平台。比如inter架构下的32位linux系统可以与inter架构下的32位linux系统组成一组DataGuard。另外,如果服务器都运行于32位的话,64位HP-UX也可以与32位HP-UX组成一组DataGuard。 不同服务器的硬件配置可以不同,比如cpu啦,内存啦,存储设备啦,但是必须确保standby数据库服务器有足够的磁盘空间用来接收及应用redo数据。 primary 数据库和standby数据库的操作系统必须一致,不过操作系统版本可以略有差异,比如(linuxas4&lin
22、uxas5),primary数据库和standby数据库的目录路径也可以不同。 2、 软件需求 DataGuard 是Oracle企业版的一个特性,明白了吧,标准版是不支持地。 通过DataGuard的SQL应用,可以实现滚动升级服务器数据库版本(要求升级前数据库版本不低于10.1.0.3)。 同一个DataGuard配置中所有数据库初始化参数:COMPATIBLE的值必须相同。 Primary 数据库必须运行于归档模式 ,并且务必确保在primary数据库上打开FORCELOGGING,以避免用户通过nologging等方式避免写redo造成对应的操作无法传输到standby数据库。 Pri
23、mary 和standby数据库均可应用于单实例或RAC架构下 ,并且同一个dataguard配置可以混合使用逻辑standby和物理standby 。 Primary 和standby数据库可以在同一台服务器,但需要注意各自的数据文件存放目录,避免重写或覆盖。 使用具有sysdba系统权限的用户管理primary和standby数据库。 建议数据库必须采用相同的存储架构。比如存储采用ASM/OMF的话,那不分primarty或是standby也都需要采用ASM/OMF。 另外还有很重要一点,注意各服务器的时间设置,不要因为时区/时间设置的不一置造成同步上的 问题。 四、 分清某某REDOLO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 10g DATAGUARD 10
链接地址:https://www.31ppt.com/p-2288751.html