Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1013350
  • 博文数量: 584
  • 博客积分: 2293
  • 博客等级: 大尉
  • 技术积分: 3045
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 11:15
文章分类

全部博文(584)

文章存档

2012年(532)

2011年(47)

2009年(5)

我的朋友

分类:

2012-03-27 10:04:53

原文地址:DATAGUARD数据保护模式 作者:TOMSYAN

    Data Guard 提供三种数据保护模式:最大保护、最大可用性、和最大性能。你选择的数据保护级别控制了如果主数据库丢失其到备数据库的连接之后的行为。
 
一、选择数据保护模式
 
   要决定使用合适的数据保护模式,回顾下面的数据保护模式的描述会帮助评估你的对于数据可用性的业务需求与对于响应时间和性能的用户需要之间的对比。
 
最大保护模式
 
   这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个会话所需的重做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库备重做日志。要确不能发生保数据丢失,如果故障导致主数据库无法向至少一个远程备重做日志写其重做流,则主数据库会关闭。对于多实例RAC 数据库,如果无法写重做记录到至少一个适当配置的数据库实例,则Data Guard 关闭主数据库。最大保护模式需要至少一个备实例有一个备重做日志并且在LOG_ARCHIVE_DEST_n 参数上对于这个目的地使用LGWR、SYNC、和AFFIRM 属性。
 
最大可用性模式
 
    这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相妥协。如同最大保护模式,事务将不会提交,直到恢复该事务所需的重做写到本地联机重做日志和至少一个远程备重做日志。不同于最大保护模式,如果故障导致主数据库无法写其重做流到远程备重做日志,主数据库不需要关闭。替代地,主数据库操作于最大性能模式直到解除故障并且解决所有重做日志文件中的中断。当解决所有中断后,主数据库自动继续操作于最大可用性模式。这种模式确保即使主数据库故障也不会发生数据丢失,但是只有在第二次故障没有阻止完整的重做数据集从主数据库发送到至少一个备数据库的情况下。

如同最大保护模式,最大可用性模式需要你:

􀁺 至少在一个备数据库上配置备重做日志文件。
􀁺 为至少 1 个备数据库设置LOG_ARCHIVE_DEST_n 参数的LGWR、SYNC、和AFFIRM 属性。
 
最大性能模式

    这种保护模式(默认)提供了可能的最高级别的数据保护,而不用影响主数据库的性能。这是通过允许事务在恢复该事务所需的重做数据一写到本地联机重做日志就提交来实现的。主数据库的重做数据流也写到至少一个备数据库,但是那个重做流相对于创建重做数据的事务的提交是异步写的。当使用足够带宽的网络链接,这种模式提供了接近最大可用性模式而对主数据库性能影响最小的数据保护级别。最大性能模式允许你在 LOG_ARCHIVE_DEST_n 参数上对于备数据库目的地设置LGWR 和ASYNC 属性,或设置ARCH 属性。如果主数据库故障,你能通过设置LGWR 和ASYNC 属性来减少备目的地上未接收到的数据量。
 
二、设置Data Guard 配置的数据保护模式
 
    要设置重做传输服务和指定对于 Data Guard 配置的数据保护级别,执行下述步骤。
 
在主数据库上配置LOG_ARCHIVE_DEST_n 参数。

    在主数据库上,适当配置LOG_ARCHIVE_DEST_n 参数属性。每种Data Guard 数据保护模式在配置中需要至少一个备数据库,以满足在表中列出的最小需求集。
 
  最大保护 最大可用性  最大性能
重做归档进程  LGWR  LGWR  LGWR或者ARCH
网络传输模式  SYNC  SYNC

当使用LGWR 进程时为SYNC 或ASYNC。

如果使用ARCH 进程则SYNC

磁盘写选项  AFFIRM AFFIRM  AFFIRM 或NOAFFIRM
是否需要备重做日志?  是  是  否,但是推荐
 
注:
Oracle 推荐运行在最大保护模式的Data Guard 配置包含至少两个满足表中所列需求的备数据库。那样的话,数据库能在备数据库之一不能从主数据库接收重做数据时继续进行。
 
下面的例子显示了如何配置最大可用性模式:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=chicago
2> OPTIONAL LGWR SYNC AFFIRM
3> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
4> DB_UNIQUE_NAME=chicago';

  如果没有已经在 SPFILE 中指定,你也应该使用DB_UNIQUE_NAME 初始化参数指定唯一名字,以及在使用DG_CONFIG 属性的LOG_ARCHIVE_CONFIG 上列出所有数据库。例如:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
这将会允许动态添加一个备数据库到一个拥有运行在最大保护或最大可用性模式中的
Real Application Cluster 主数据的Data Guard 配置。
 
 
第1 步如果你升级保护模式,执行这个步骤。

    只有你升级保护模式才执行这个步骤(例如,从最大性能到最大可用性模式)。否则,跳到步骤3。假定这个例子是升级 Data Guard 配置从最大性能模式到最大可用性模式。关闭主数据库并重启到安装模式:

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

对于Real Application Clusters 数据库,关闭所有的主实例但只启动并安装一个主实例。

第 2 步设置数据保护模式。

    要指定一种数据保护模式,在主数据库上执行 SQL ALTER DATABAE SET STANDBY DATABASE TO MAXIMIZE {PROTECTION | AVAILABILITY | PERFORMANCE}语句。例如,下面的语句指定了最大可用性模式:

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
 
第3 步打开主数据库。

如果你执行步骤1 来升级保护模式,打开数据库:

SQL> ALTER DATABASE OPEN;

如果你是降级保护模式,则数据库已经打开。

第 4 步在备数据库上配置LOG_ARCHIVE_DEST_n 参数。

在备数据库上,配置LOG_ARCHIVE_DEST_n 参数属性使得配置能在切换过后继续操作在新的保护模式。例如:

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=boston
2> OPTIONAL LGWR SYNC AFFIRM
3> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
4> DB_UNIQUE_NAME=boston';

第 5 步确认配置操作在新的保护模式。

查询 V$DATABASE 视图以确认Data Guard 配置操作在新的保护模式。例如:

SQL> SELECT PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE PROTECTION_LEVEL
--------------------- ---------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
阅读(261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~