关闭

关闭

关闭

封号提示

内容

首页 一步一步学DataGuard.pdf

一步一步学DataGuard.pdf

一步一步学DataGuard.pdf

上传者: maye0429 2011-09-19 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《一步一步学DataGuardpdf》,可适用于IT/计算机领域,主题内容包含三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:三思笔记一步一步学DataGuardDataGuardDat符等。

三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:三思笔记一步一步学DataGuardDataGuardDataGuardDataGuard本系列是一个一般初学者学习过程的记录其中的概念可能解释的略显初级其中的过程可能演示的略显生疏其中的操作可能表现的略显繁琐但它记录了一种方法一番热忱一段历程希望我曾经的崎岖能帮助你走的更平坦:三思笔记之一步一步学DataGuard~~~~另注:本系列中部分文章已发表至itpub如无授权请勿转载~~~君三思junsansisaincom第一部分基础之名词先混个脸熟第一部分基础之术语再了解大概第二部分物理standby()standby()standby()standby()创建步骤第二部分物理standby()standby()standby()standby()创建示例第二部分物理standby()standby()standby()standby()角色转换第二部分物理standby()standby()standby()standby()高级管理第三部分逻辑standby()standby()standby()standby()创建步骤第三部分逻辑standby()standby()standby()standby()创建示例第三部分逻辑standby()standby()standby()standby()角色转换第三部分逻辑standby()standby()standby()standby()高级管理第四部分补充()Standby()Standby()Standby()Standby之RedoRedoRedoRedo传输服务第四部分补充()Standby()Standby()Standby()Standby之选择保护模式第四部分补充()Standby()Standby()Standby()Standby之LogLogLogLog应用服务第四部分附章()RMAN()RMAN()RMAN()RMAN备份来创建之热身第四部分附章()RMAN()RMAN()RMAN()RMAN备份来创建之实践三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:第一部分基础之名词先混个脸熟它有无数个名字有人叫它dg有人叫它数据卫士有人叫它dataguard在oracle的各项特性中它有着举足轻理的地位它就是(掌声)OracleDataGuard。而对于我而言我一定要亲切的叫它:DG(注:主要是因为打着方便)。不少未实际接触过dg的初学者可能会下意识以为dg是一个备份恢复的工具。我要说的是这种形容不完全错dg拥有备份的功能某些情况下它甚至可以与primary数据库完全一模一样但是它存在的目的并不仅仅是为了恢复数据应该说它的存在是为了确保企业数据的高可用性数据保护以及灾难恢复(注意这个字眼灾难恢复)。dg提供全面的服务包括:创建维护管理以及监控standby数据库确保数据安全管理员可以通过将一些操作转移到standby数据库执行的方式改善数据库性能。后面这一长串大家可以把它们理解成形容词千万不要被其花哨的修饰所迷惑要抓住重点要拥有透明现象看本质的能力如果没有那就要努力学习去拥有下面我来举一个例子比如我们夸人会说它聪明勇敢善良等等这些就属于形容词不重要重点在于我们究竟想形容这个人是好人还是坏人。然后再回来看看oracle对dg功能上的形容数据保护和灾难恢复应该都可以归结为高可用性那么我们可以清晰的定位dg的用途了就是构建高可用的企业数据库应用环境。一、DataDataDataDataGuardGuardGuardGuard配置(Data(Data(Data(DataGuardGuardGuardGuardConfigurations)Configurations)Configurations)Configurations)DataGuard是一个集合由一个primary数据库(生产数据库)及一个或多个standby数据库(最多个)组成。组成DataGuard的数据库通过OracleNet连接并且有可能分布于不同地域。只要各库之间可以相互通信它们的物理位置并没有什么限制至于操作系统就更无所谓了(某些情况下)只要支持oracle就行了。你即可以通过命令行方式管理primary数据库或standby数据库也可以通过DataGuardbroker提供的专用命令行界面(DGMGRL)或者通过OEM图形化界面管理。PrimaryPrimaryPrimaryPrimary数据库前面提到DataGuard包含一个primary数据库即被大部分应用访问的生产数据库该库即可以是单实例数据库也可以是RAC。StandbyStandbyStandbyStandby数据库Standby数据库是primary数据库的复制(事务上一致)。在同一个DataGuard中你可以最多创建个standby数据库。一旦创建完成DataGuard通过应用primary数据库的redo自动维护每一个standby数据库。Standby数据库同样即可以是单实例数据库也可以是RAC结构。关于standby数据库通常分两类:逻辑standby和物理standby如何区分两类各有什么特点如何搭建这方面内容就是后面的章节主要介绍的在这里呢三思先简单白话一下:逻辑standby就像你请人帮你素描画像基本器官是都会有的这点你放心但是各器官位置啦大小啦肤色啦就不一定跟你本人一致了。物理standby就像拿相机拍照你长什么样出来的照片就是什么样眼睛绝对在鼻子上头。或者说就像你去照镜子里外都是你哇哈哈。具体到数据库就是不仅文件的物理结构相同甚至连块在磁盘上的存储位置都是一模一样的(默认情况下)。三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:为什么会这样呢?这事就得从同步的机制说起了。逻辑standby是通过接收primary数据库的redolog并转换成sql语句然后在standby数据库上执行SQL语句(SQLApply)实现同步物理standby是通过接收并应用primary数据库的redolog以介质恢复的方式(RedoApply)实现同步。另外不知道大家是否注意到形容词上的细节:对于相机拍照而言有种傻瓜相机功能强大而操作简便而对于素描即使是最简单的画法也需要相当多的练习才能掌握。这个细节是不是也说明逻辑standby相比物理standby需要操作者拥有更多的操作技能呢?二、DataDataDataDataGuardGuardGuardGuard服务(Data(Data(Data(DataGuardGuardGuardGuardServices)Services)Services)Services)REDO传输服务(RedoTransportServices)控制redo数据的传输到一个或多个归档目的地。Log应用服务(LogApplyServices)应用redo数据到standby数据库以保持与primary数据库的事务一致。redo数据即可以从standby数据库的归档文件读取也可直接应用standbyredolog文件(如果实时应用打开了的话)。角色转换服务(RoleTransitions)Dg中只有两种角色:primary和standby。所谓角色转换就是让数据库在这两个角色中切换切换也分两种:switchover和failoverswitchover:转换primary数据库与standby数据库。switchover可以确保不会丢失数据。failover:当primary数据库出现故障并且不能被及时恢复时会调用failover将一个standby数据库转换为新的primary数据库。在最大保护模式或最高可用性模式下failover可以保证不会丢失数据。注:上述各概念简要了解即可这里写的太简单不要咬文嚼字不然你会越看越糊涂相关服务在后面章节将会有详细介绍不仅有直白的描述还会有示例再加上浅显的图片就算你一看不懂再看肯定懂:)三、DataDataDataDataGuardGuardGuardGuard保护模式(Data(Data(Data(DataGuardGuardGuardGuardProtectionProtectionProtectionProtectionModes)Modes)Modes)Modes)对于DataGuard而言其生存逻辑非常简单好好活做有意义的事做黑多黑多有意义的事:)由于它提供了三种数据保护的模式我们又亲切的叫它:有三模:最大保护(Maximum(Maximum(Maximum(Maximumprotection)protection)protection)protection):这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的它要求所有的事务在提交前其redo不仅被写入到本地的onlineredolog还要同时提交到standby数据库的standbyredolog并确认redo数据至少在一个standby数据库可用(如果有多个的话)然后才会在primary数据库上提交。如果出现了什么故障导致standby数据库不可用的话primary数据库会被shutdown。最高性能(Maximum(Maximum(Maximum(Maximumperformance)performance)performance)performance):这种模式提供在不影响primary数据库性能前提下最高级别的数据保护策略。事务可以随时提交当前primary数据库的redo数据也需要至少写入一个standby数据库不过这种写入可以是不同步的。如果网络条件理想的话这种模式能够提供类似最高可用性的数据保护而仅对primary数据库有轻微的性能影响。最高可用性(Maximum(Maximum(Maximum(Maximumavailability)availability)availability)availability):这种模式提供在不影响primary数据库可用前提下最高级别的数据保护策略。其实现方式与最大保护模式类三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:似也是要求所有事务在提交前必须保障redo数据至少在一个standby数据库可用不过与之不同的是如果出现故障导入无法同时写入standby数据库redologprimary数据库并不会shutdown而是自动转为最高性能模式等standby数据库恢复正常之后它又会再自动转换成最高可用性模式。最大保护及最高可用性需要至少一个standby数据库redo数据被同步写入。三种模式都需要指定LOGARCHIVEDESTn初始化参数。LOGARCHIVEDESTn很重要你看着很眼熟是吧我保证如果你完完整整学完dataguard你会对它更熟。四、DataDataDataDataGuardGuardGuardGuard优点总结灾难恢复及高可用性全面的数据保护有效利用系统资源在高可用及高性能之间更加灵活的平衡机制故障自动检查及解决方案集中的易用的管理模式自动化的角色转换经常开篇的灌输相信大家已经看的出来上面这几条都是形容词看看就好记住更好跟人穷白活的时候通常能够用上:)三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:第一部分基础之术语再了解大概同一个DataGuard配置包含一个Primary数据库和最多九个Standby数据库。Primary的创建就不说了Standby数据库初始可以通过primary数据库的备份创建。一旦创建并配置成standby后dg负责传输primary数据库redodata到standby数据库standby数据库通过应用接收到的redodata保持与primary数据库的事务一致。一、StandbyStandbyStandbyStandby数据库类型前章我们简单介绍了Standby数据库并且也知道其通常分为两类:物理standby和逻辑standby同时也简短的描述了其各自的特点下面我们就相关方面进行一些稍深入的了解:物理standbystandbystandbystandby我们知道物理standby与primary数据库完全一模一样(默认情况下当然也可以不一样事无绝对嘛)Dg通过redo应用维护物理standby数据库。通常在不应用恢复的时候可以以readonly模式打开如果数据库指定了flashbackarea的话也可以被临时性的置为readwrite模式。Redo应用物理standby通过应用归档文件或直接从standby系统中通过oracle恢复机制应用redo文件。恢复操作属于块对块的应用(不理解?那就理解成块复制将redo中发生了变化的块复制到standby)。如果正在应用redo数据库不能被open。Redo应用是物理standby的核心务必要搞清楚其概念和原理后续将有专门章节介绍。Readonly模式以readonly模式打开后你可以在standby数据库执行查询或者备份等操作(变相减轻primary数据库压力)。此时standby数据库仍然可以继续接收redo数据不过并不会触发操作直到数据库恢复redo应用。也就是说readonly模式时不能执行redo应用redo应用时数据库肯定处于未打开状态。如果需要的话你可以在两种状态间转换比如先应用redo,然后readonly然后切换数据库状态再应用redo呵呵人生就是循环数据库也是一样。Readwrite模式如果以readwrite模式打开则standby数据库将暂停从primary数据库接收redo数据并且暂时失去灾难保护的功能。当然以readwrite模式打开也并非一无是处比如你可能需要临时调试一些数据但是又不方便在正式库操作那就可以临时将standby数据库置为readwrite模式操作完之后将数据库闪回到操作前的状态(闪回之后DataGuard会自动同步不需要重建standby)。物理standby特点灾难恢复及高可用性物理standby提供了一个健全而且极高效的灾难恢复及高可用性的解决方案。更加易于管理的switchoverfailover角色转换及最更短的计划内或计划外停机时间。数据保护应用物理standby数据库Dg能够确保即使面对无法预料的灾害也能够不丢失数据。前面也提到物理standby是基于块对块的复制因此对象、语句统统无关primary数据库上有什么物三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:理standby也会有什么。分担primary数据库压力通过将一些备份任务、仅查询的需求转移到物理standby可以有效节省primary数据库的cpu以及io资源。提升性能物理standby所使用的redo应用技术使用最底层的恢复机制这种机制能够绕过sql级代码层因此效率最高。逻辑standbystandbystandbystandby逻辑standby是逻辑上与primary数据库相同结构可以不一致。逻辑standby通过sql应用与primary数据库保持一致也正因如此逻辑standby可以以readwrite模式打开你可以在任何时候访问逻辑standby数据库。同样有利也有弊逻辑standby对于某些数据类型以及一些ddl,dml会有操作上的限制。逻辑standby的特点:除了上述物理standby中提到的类似灾难恢复高可用性及数据保护等之外还有下列一些特点:有效的利用standby的硬件资源除灾难恢复外逻辑standby数据库还可用于其它业务需求。比如通过在standby数据库创建额外的索引、物化视图等提高查询性能并满足特定业务需要。又比如创建新的schema(primary数据库并不存在)然后在这些schema中执行ddl或者dml操作等。分担primary数据库压力逻辑standby数据库可以在更新表的时候仍然保持打开状态此时这些表可同时用于只读访问。这使得逻辑standby数据库能够同时用于数据保护和报表操作从而将主数据库从那些报表和查询任务中解脱出来节约宝贵的CPU和IO资源。平滑升级比如跨版本升级啦打小补丁啦等等应该说应用的空间很大而带来的风险却很小(前提是如果你拥有足够的技术实力。另外虽然物理standby也能够实现一些升级操作但如果跨平台的话恐怕就力不从心所以此项就不做为物理standby的特点列出了)我个人认为这是一种值的推荐的在线的滚动的平滑的升级方式。二、DataDataDataDataGuardGuardGuardGuard操作界面((((方式))))做为oracle环境中一项非常重要的特性oracle提供了多种方式搭建、操作、管理、维护DataGuard配置比如:OEM(OracleEnterpriseManager)OrcaleEM提供了一个窗口化的管理方式基本上你只需要点点鼠标就能完全dg的配置管理维护等操作(当然三思仍然坚持一步一步学rman中的观点在可能的情况下尽可能不依赖视窗化的功能所以这种操作方式不做详细介绍)其实质是调用oracle为dg专门提供的一个管理器:DataGuardBroker来实施管理操作。Sqlplus命令行方式命令行方式的管理本系列文章中主要采用的方式。不要一听到命令行就被吓倒dataguard的管理命令并不多你只需要在脑袋瓜里稍微挪出那么一小点地方用来记忆就可以了。DGMGRL(DataGuardbroker命令行方式)就是DataGuardBroker不过是命令行方式的操作。三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:初始化参数文件我感觉不能把参数化参数视为一种操作方式应该说在这里通过初始化参数更多是提供更灵活的DataGuard配置。三、DataDataDataDataGuardGuardGuardGuard的软硬件需求、硬件及操作系统需求同一个DataGurid配置中的所有oracle数据库必须运行于相同的平台。比如inter架构下的位linux系统可以与inter架构下的位linux系统组成一组DataGuard。另外如果服务器都运行于位的话位HPUX也可以与位HPUX组成一组DataGuard。不同服务器的硬件配置可以不同比如cpu啦内存啦存储设备啦但是必须确保standby数据库服务器有足够的磁盘空间用来接收及应用redo数据。primary数据库和standby数据库的操作系统必须一致不过操作系统版本可以略有差异比如(linuxaslinuxas)primary数据库和standby数据库的目录路径也可以不同。、软件需求DataGuard是Oracle企业版的一个特性明白了吧标准版是不支持地。通过DataGuard的SQL应用可以实现滚动升级服务器数据库版本(要求升级前数据库版本不低于)。同一个DataGuard配置中所有数据库初始化参数:COMPATIBLE的值必须相同。Primary数据库必须运行于归档模式并且务必确保在primary数据库上打开FORCELOGGING以避免用户通过nologging等方式避免写redo造成对应的操作无法传输到standby数据库。Primary和standby数据库均可应用于单实例或RAC架构下并且同一个dataguard配置可以混合使用逻辑standby和物理standby。Primary和standby数据库可以在同一台服务器但需要注意各自的数据文件存放目录避免重写或覆盖。使用具有sysdba系统权限的用户管理primary和standby数据库。建议数据库必须采用相同的存储架构。比如存储采用ASMOMF的话那不分primarty或是standby也都需要采用ASMOMF。另外还有很重要一点注意各服务器的时间设置不要因为时区时间设置的不一置造成同步上的。四、分清某某REDOREDOREDOREDOLOGS(OnlineLOGS(OnlineLOGS(OnlineLOGS(OnlineRedoRedoRedoRedoLogs,Logs,Logs,Logs,ArchivedArchivedArchivedArchivedRedoRedoRedoRedoLogs,Logs,Logs,Logs,StandbyStandbyStandbyStandbyRedoRedoRedoRedoLogs)Logs)Logs)Logs)黑多黑多的redo想必诸位早已晕头并吐过多次了吧。哎说实话我描述的时候也很痛苦。这块涉及到中英文之间的意会。我又不能过度白话不然看完我这篇文章再看其它相关文档的相关概念恐怕您都不知道人家在说什么这种误人子弟的事情咱不能干(也许干过但主观意愿上肯定是不想的)更何况咱也是看各乱杂七杂八文档被误过XXXXXXXXXXXXXXXXX次(X=)深受其害坚决不能再让跟俺一样受尽苦楚历经磨难的DDMM们因为看俺的文档被再次一百遍啊一百遍。但是已到关键时刻此处不把redo混清楚后头就得被redo混了所以这里我要用尽我全部的口水目前为止我所有已成体系的认识再给大家浅显的白话一回。注:基础概念仅一笔带过水太大了也不好要响应胡书记号召书写节约型笔记。REDO:中文直译是重做与UNDO对应(天哪又扯出个概念你看不见我看不见我看不见我)。重做什么?为什么要重做呢?首先重做是oracle对操作的处理机制我们操作数据(增册改)并非直接反映到数据文件而是三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:先被记录(就是onlineredolog喽)等时机合适的时候再由相应的进程操作提交到数据文件(详细可见:数据写过程中各项触发条件及逻辑)。你是不是想说如果把所有的onlineredologs都保存下来不就相当于拥有了数据库做过的所有操作了吗?en我可以非常负责任的告诉你你说的对oracle跟你想到一块去了并且也将其实现了这就是archivedredologs简称archivelog即归档日志。我们再回来看DataGuard由于standby数据库的数据通常都来自于primary数据库怎么来的呢通过RFS进程接收primary数据库的redo保存在本地就是Standbyredologs喽(arch模式的话不写standbyredo直接保存归档)然后standby数据库的相关进程读取接收到的redo数据再将其写入standby数据库。保存之后数据又是怎么生成的呢两种方式物理standby通过redo应用逻辑standby通过sql应用不管是哪种应用应用的是什么呢?是redolog中的内容(默认情况下应用archivedredologs如果打开了实时应用则直接从standbyredologs中读取)至于如何应用那就是redo应用和sql应用机制的事情了(也许后头我们会深入聊一聊这个话题很复杂也很有趣)。针对上述内容我们试着总结一下看看能否得出一些结论:对于primary数据库和逻辑standby数据库onlineredolog文件肯定是必须的而对于物理standby是否还需要redolog呢?毕竟物理standby通常不会有写操作所以物理standby应该不会生成有redo数据。为保证数据库的事务一致性必然需要有归档也就是说不管primary或standby都必须运行于归档模式。standbyredologs是standby数据库特有的文件(如果配置了的话)就本身的特点比如文件存储特性配置特性等等都与onlineredologs非常类似不过它存储的是接收自primary数据库的redo数据而onlineredologs中记录的是本机中的操作记录。上面的描述大家尽可能意会能够理解最好理解不了也没关系我始终认为只要坚定不移的学习下去总会水到渠成。下面进入实战章节先来个简单的创建物理standby。三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:第二部分物理standby()standby()standby()standby()创建步骤一、准备工作不管物理standby还是逻辑standby其初始创建都是要依赖primary数据库因为这个准备工作中最重要的一部分就是对primary数据库的配置。、打开ForcedLogging模式将primary数据库置为FORCELOGGING模式。通过下列语句:SQL>alterdatabaseforcelogging提示:关于FORCEFORCEFORCEFORCELOGGINGLOGGINGLOGGINGLOGGING想必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redolog(目的是提高速度某些时候确实有效)指定数据库为FORCELOGGING模式后数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。如果在执行forcelogging时有nologging之类的语句在执行则forcelogging会等待直到这类语句全部执行。FORCELOGGING是做为固定参数保存在控制文件中因此其不受重启之类操作的影响(只执行一次即可)如果想取消可以通过alterdatabasenoforcelogging语句关闭强制记录。、创建密码文件(如果不存在的话)需要注意的是同一个DataGuard配置中所有数据库必须都拥有独立的密码文件并且必须保证同一个DataGuard配置中所有数据库服务器的SYS用户拥有相同密码以保证redo数据的顺利传输因为redo传输服务通过认证的网络会话来传输redo数据而会话使用包含在密码文件中的SYS用户密码来认证。、配置StandbyRedoLog对于最大保护和最高可用性模式Standby数据库必须配置standbyredolog并且oracle推荐所有数据库都使用LGWRASYNC模式传输当然你现在可能还不知道LGWRASYNC是什么问题没关系你很快就会知道了。Oracle建议你在创建standby时就考虑standbyredolog配置的问题。standbyredologs与onlineredologs非常类似应该说两者只是服务对象不同其它参数属性甚至操作的命令格式几乎都一样你在设计standbyredologs的时候完全可以借鉴创建onlineredologs的思路比如多个文件组啦每组多个文件冗余之类的。除些之外呢oracle提供了一些标准的建议如下:确保standbyredolog的文件大小与primary数据库onlineredolog文件大小相同。这个很好理解的吧就是为了接收和应用方便嘛。创建适当的日志组一般而言standbyredo日志文件组数要比primary数据库的onlineredo日志文件组数至少多一个。推荐standbyredo日志组数量基于primary数据库的线程数(这里的线程数可以理解为rac结构中的rac节点数)。有一个推荐的公式可以做参考:(每线程的日志组数)*最大线程数例如primary数据库有两个线程每个线程分配两组日志则standby日志组数建议为组使用这个公式可以降低primary数据库实例LGWR进程锁住的可能性。提示:逻辑standby数据库有可能需要视工作量增加更多的standbyredolog文件(或增加归档进程)因为逻辑standby需要同时写onlineredolog文件。三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:Standbyredolog的操作方式与onlineredolog几乎一模一样只不过在创建或删除时需要多指定一个standby关键字例如添加:SQL>alterdatabaseaddstandbylogfilegroup('e:oragoradatajsspdgSTANDBYRDLOG')sizeM删除也同样简单:SQL>alterdatabasedropstandbylogfilegroup另外从可靠性方面考虑建议在primary数据库也创建standbyredologs这样一旦发生切换不会影响primary做为standby的正常运行。验证standbyredolog文件组是否成功创建例如:SQL>SELECTGROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUSFROMV$STANDBYLOG、设置初始化参数对于primary数据库需要定义几个primary角色的初始化参数控制redo传输服务还有几个附加的standby角色的参数需要添加以控制接收redo数据库并应用(switchoverfailover后primarystandby角色可能互换所以建议对于两类角色相关的初始化参数都进行配置)。下列参数为primary角色相关的初始化参数:DBNAME注意保持同一个DataGuard中所有数据库DBNAME相同。例如:DBNAME=jsswebDBUNIQUENAME为每一个数据库指定一个唯一的名称该参数一经指定不会再发生变化除非你主动修改它。例如:DBUNIQUENAME=jsswebLOGARCHIVECONFIG该参数通过DGCONFIG属性罗列同一个DataGuard中所有DBUNIQUENAME(含primarydb及standbydb)以逗号分隔例如:LOGARCHIVECONFIG='DBCONFIG=(jssweb,jsspdg)'CONTROLFILES没啥说的控制文件所在路径。LOGARCHIVEDESTn归档文件的生成路径。该参数非常重要并且属性和子参数也特别多(这里不一一列举后面用到时单独讲解如果你黑好奇建议直接查询oracle官方文档。Dataguard白皮书第章专门介绍了该参数各属性及子参数的功能和设置)。例如:LOGARCHIVEDEST='LOCATION=E:oragoradatajsswebVALIDFOR=(ALLLOGFILES,ALLROLES)DBUNIQUENAME=jssweb'LOGARCHIVEDESTSTATEn指定参数值为ENABLE允许redo传输服务传输redo数据到指定的路径。该参数共拥有个属性值功能各不相同。REMOTELOGINPASSWORDFILE推荐设置参数值为EXCLUSIVE或者SHARED注意保证相同DataGuard配置中所有db服务器sys密码相同。LOGARCHIVEFORMAT指定归档文件格式。LOGARCHIVEMAXPRODUC指定归档进程的数量()默认值通常是。三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:注意:上面列举的这些参数仅只是对于primarystandby两角色可能会相关的参数还有一些基础性参数比如*dest,*size等数据库相关的参数在具体配置时也需要根据实际情况做出适当修改。、确保数据库处于归档模式SQL>archiveloglist数据库日志模式存档模式自动存档启用如果当前primary数据库并未处于归档模式可通过下列命令将数据库置为归档模式:SQL>STARTUPMOUNTSQL>ALTERDATABASEARCHIVELOGSQL>ALTERDATABASEOPEN二、手把手的创建物理standbystandbystandbystandby、创建备份(手工复制数据文件或通过RMAN)primary库操作、创建控制文件primary库操作通过下列语句为standby数据库创建控制文件SQL>alterdatabasecreatestandbycontrolfileas'd:backupjsspdgctl'注意哟控制文件通常需要有多份你要么手工将上述文件复制几份要么用命令多创建几个出来。另外创建完控制文件之后到standby数据库创建完成这段时间内要保证primary数据库不再有结构性的变化(比如增加表空间等等)不然primary和standby同步时会有问题。、创建初始化参数文件创建客户端初始化参数文件例如:ESSES以下参数为standby角色相关的参数建议在Primary数据库的初始化参数中也进行设置这样在roletransition后(Primary转为Standby)也能正常运行:FALSERVER指定一个数据库SID通常该库为primary角色。例如:FALSERVER=jsswebFALCLIENT指定一个数据库SID通常该库为standby角色。例如:FALCLIENT=jsspdg提示:FAL是FetchArchivedLog的缩写DBFILENAMECONVERT在做duplicate复制和传输表空间的时候这类参数讲过很多遍该参数及上述内容中同名参数功能格式等完全相同。LOGFILENAMECONVERT同上STANDBYFILEMANAGEMENT如果primary数据库数据文件发生修改(如新建重命名等)则按照本参数的设置在standby中做相应修改。设为AUTO表示自动管理。设为MANUAL表示需要手工管理。例如:STANDBYFILEMANAGEMENT=AUTO三思笔记一步一步学DataGuard系列http:wwwienetcomQQ:君三思群:SQL>createpfile='d:backupinitjsspdgora'fromspfile修改初始化参数文件中的参数根据实际情况修改吧注意primary和standby不同角色的属性配置注意文件路径。、复制文件到standby服务器至少三部分:数据文件控制文件修改过的初始化参数文件注意路径。、配置standby数据库如果你看过三思之前"一步一步学rman"系列看过"duplicate复制数据库"或看过"传输表空间复制数据"系列那么对于创建一个新的数据库应该非常熟悉了下面再简单描述一下步骤:)创建新的OracleService(windows环境下需要)。)创建密码文件注意保持密码与primary数据库一致。)配置监听并启动)修改primary和standby的tnsnamesora各自增加对应的NetServiceName。)创建服务器端的初始化文件、启动standby注意哟咱们前面说过的物理standby极少情况下可以以readwrite模式打开某些情况下可以以readonly模式打开所以默认情况下加载到mount状态即可。SQL>STARTUPMOUNT启动redo应用SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION启动实时应用SQL>ALT

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/20
仅支持在线阅读

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部