正在进行安全检测...

发布时间:2023-11-21 03:47:44   来源:文档文库   
字号:
前情回顾:一步一步学DataGuard之基础篇一、准备工作不管物理standby还是逻辑standby其初始创建都是要依赖primary数据库,因为这个准备工作中最重要的一部分,就是对primary数据库的配置。1、打开ForcedLogging模式primary数据库置为FORCELOGGING模式。通过下列语句:SQL>alterdatabaseforcelogging;提示:关于FORCELOGGING必大家知道有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redolog(目的是提高速度,某些时候确实有效,指定数据库为FORCELOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。如果在执行forcelogging时有nologging之类的语句在执行,则forcelogging会等待直到这类语句全部执行。FORCELOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可,如果想取消,可以通过alterdatabasenoforcelogging语句关闭强制记录。2、创建密码文件(如果不存在的话需要注意的是,同一个DataGuard配置中所有数据库必须都拥有独立的密码文件,并且必须保证同一个DataGuard配置中所有数据库服务器的SYS用户拥有相同密码以保证redo数据的顺利传输,因为redo传输服务通过认证的网络会话来传输redo数据,而会话使用包含在密码文件中的SYS用户密码来认证。3、配置StandbyRedoLog对于最大保护和最高可用性模式,Standby数据库必须配置standbyredolog并且oracle推荐所有数据库都使用LGWRASYNC模式传输,当然你现在可能还不知道LGWRASYNC是什么问题,没关系,你很快就会知道了。Oracle建议你在创建standby时就考虑standbyredolog配置的问题。standbyredologsonlineredologs非常类似,应该说两者只是服务对象不同,其它参数属性甚至操作的命令格式几乎都一样,你在设计standbyredologs的时候完全可以借鉴创建onlineredologs的思路,比如多个文件组啦,每组多个文件冗余之类的。除些之外呢,oracle提供了一些标准的建议如下:确保standbyredolog的文件大小与primary数据库onlineredolog文件大小相同。这个很好理解的吧,就是为了接收和应用方便嘛。创建适当的日志组一般而言,standbyredo日志文件组数要比primary数据库的onlineredo志文件组数至少多一个。推荐standbyredo日志组数量基于primary数据库的线程数(这里的线程数可以理解为rac结构中的rac节点数有一个推荐的公式可以做参考:(每线程的日志组数+1*最大线程数例如primary数据库有两个线程,每个线程分配两组日志,standby日志组数
建议为6组,使用这个公式可以降低primary数据库实例LGWR进程锁住的可能性。提示:逻辑standby数据库有可能需要视工作量增加更多的standbyredolog文件(或增加归档进程,因为逻辑standby需要同时写onlineredolog文件。Standbyredolog的操作方式与onlineredolog几乎一模一样,只不过在创建或删除时需要多指定一个standby关键字,例如添加:SQL>alterdatabaseaddstandbylogfilegroup4('e:\ora10g\oradata\jsspdg\STANDBYRD01.LOG'size20M;删除也同样简单:SQL>alterdatabasedropstandbylogfilegroup4;另外,从可靠性方面考虑,建议在primary数据库也创建standbyredologs这样一旦发生切换,不会影响primary做为standby的正常运行。验证standbyredolog文件组是否成功创建例如:SQL>SELECTGROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUSFROMV$STANDBY_LOG;4、设置初始化参数primary数据库,需要定义几个primary角色的初始化参数控制redo传输服务,还有几个附加的standby角色的参数需要添加以控制接收redo数据库并应用(switchover/failoverprimary/standby角色可能互换,所以建议对于两类角色相关的初始化参数都进行配置下列参数为primary角色相关的初始化参数:DB_NAME注意保持同一个DataGuard中所有数据库DB_NAME相同。例如:DB_NAME=jsswebDB_UNIQUE_NAME为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非你主动修改它。例如:DB_UNIQUE_NAME=jsswebLOG_ARCHIVE_CONFIG该参数通过DG_CONFIG属性罗列同一个DataGuard中所有DB_UNIQUE_NAME(primarydbstandbydb,以逗号分隔例如:LOG_ARCHIVE_CONFIG='DB_CONFIG=(jssweb,jsspdg'CONTROL_FILES没啥说的,控制文件所在路径。LOG_ARCHIVE_DEST_n归档文件的生成路径。该参数非常重要,并且属性和子参数也特别多(这里不一一列举,后面用到时单独讲解如果你黑好奇,建议直接查询oracle方文档。Dataguard白皮书第14章专门介绍了该

本文来源:https://www.2haoxitong.net/k/doc/a1f7a3e8998fcc22bcd10dd2.html

《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式