Oracle的容灾方案Data Guard
DATA GUARD数据库简介
远程磁盘镜像是一种被广泛应用的数据保护技术,然而在对Oracle数据库进行备份的实际应用中,由于该技术本身所固有的局限,使得其无法很好地实现数据库的完整备份,为此,本文提出以Oracle的容灾技术Data Guard,来实现Oracle数据库的完整备份。
   Data Guard是Oracle公司提出的数据库容灾技术,它提供了一种管理、监测和自动运行的体系结构,用于创建和维护一个或多个备份数据库。与远程磁盘镜像 技术的根本区别在于,Data Guard是在逻辑级,通过传输和运行数据库日志文件,来保持生产和备份数据库的数据一致性。一旦数据库因某种情况而不可用时,备份数据库将正常切换或故 障切换为新的生产数据库,以达到无数据损失或最小化数据损失的目的,为业务系统提供持续的数据服务能力。
  Data Guard体系结构
  一个Data Guard环境可配置一个生产数据库和最多至9个备份数据库系统,生产和备份数据库之间通过Oracle Net技术互联,并且没有任何距离上的限制(Data Guard体系结构如图2所示)。
 
   
  物理备份数据库 物理上提供了与生产数据库在数据块级的一致性镜像。物理备份数据库是通过Redo Apply技术来保障数据镜像能力。
Data Guard的保护模式
  ● 最大保护模式: 该模式以牺牲生产数据库性能为代价,换取无数据损失的能力。
  ● 最大可用模式: 该模式也能提供无数据损失,对生产数据库的影响较小。
  ● 最大性能模式: 该模式允许少量数据损失,但能为生产数据库提供最大性能。
 
 
  Data Guard和远程磁盘镜像技术的总体比较
  远程磁盘镜像技术是存储层的数据保护方案,对于Oracle数据库而言,Oracle Data Guard提供了更有效、可行,更完备的数据库容灾方案。以下是两种方案的总体比较:
 
  异步远程磁盘镜像技术的潜在问题
银行为什么用db2数据库
   远程磁盘镜像技术可采用异步方式,达到降低网络延时、减轻对生产系统影响等目的。但用这种方式进行Oracle数据库的镜像,却存在一个潜在问题:无法 保证写操作顺序的一致性(write-order consistency),导致出现数据坏块的可能性增大。最坏情况,可能导致备份数据库无法打开。
  而Data Guard基于逻辑级,传输的是与业务逻辑完整性相关的日志文件。Data Guard是以日志文件为边界,会自动检验日志文件的完整性,并可进行断点日志文件的检查(log gap detection),通过FAL后台进程自动重传断点日志文件。因此,备份数据库的一致性会得到保证。
  网络传输量分析
   网络传输量的大小直接关系到容灾方案实施的可行性。在原理上,Data Guard只是传输一份日志文件,而磁盘镜像技术将传输数据文件、联机日志、归档日志、控制文件等所有发生变化的文件。例如,针对交易处理,Data Guard只传输相应DML语句的日志信息,而磁盘
镜像技术将传输该交易所涉及的所有数据块,以及归档日志等数据。根据统计资料显示,磁盘镜像的网络传输 量是Data Guard的7倍,而磁盘I/O次数是Data Guard的27倍。
  以某银行业务系统为实例: 该系统日交易量达到高峰时,日志文件将有60GB,网络传输率要求6Mbps/秒。使用磁盘镜像技术,网络传输率则至少会达到6×7 = 42Mbps/秒。如果还要考虑DB2、CICS、MQ等系统对线路的复用,以及系统的扩充,即便采用155Mbps的线路,从广域网络建设和运行成本等 考虑,磁盘镜像进行数据库容灾也难以实施。
  远程灾备分析
  远程磁盘镜像技术由于受底层通信技术(光纤、ESCON等)限制,一般都有距离限制,如几十或百公里,如果要在广域网实施远程磁盘镜像,则需要大量的网络中继和转发设备,这样,网络设备投入将大量增加,而且网络延时的增加,对生产系统的影响也将加大。
   相比之下,Data Guard基于Oracle Net Services(即标准的TCP/IP协议) 传输数据。TCP/IP协议是ESCON之上的传输协议,由于在信息包转发、路由和拥塞控制等方面更为优化,同时TCP/IP与底层通信协议无关(以太 网、ATM、SONET等),而且,TCP/IP可以并
行地进行若干信息包的传输。因此,TCP/IP的效率更高、网络延时更低,对生产系统的影响也更 小。
  数据保护能力分析
  在各种故障中,故障率最高的是磁盘故障 (Corruption)。一旦出现磁盘坏块,磁盘镜像技术将忠实地将这种错误传播到备份数据库的磁盘中,导致备份数据库无法使用。而由于Data Guard传输的是日志文件,而且传输之前对日志文件的完整性进行了校验,因此,不可能发生因系统磁盘出现物理坏块,或磁盘控制器故障等,将数据块写坏而 导致备份数据库出现坏块的情况。
  投资回报率(ROI)分析
  Data Guard软件对硬件没有特殊的要求,网络只要求TCP/IP。备份数据库可以建立在相对低档的系统和廉价的磁盘阵列中。而磁盘镜像技术不仅需要单独购买昂贵的磁盘镜像软件,而且对硬件要求也很苛刻。
   此外,Data Guard具有备份数据库的查询统计功能,而磁盘镜像技术建立的备份数据库
在正常情况下处于闲置状态,只有在发生故障时,才能投入应用;为降低生产数据库 的负载,Data Guard还可以将物理备份功能移植到备份数据库进行,备份数据库产生的物理备份数据,同样可用于生产数据库的恢复操作。
DATA GUARD 创建
主库上的配置
启用生产库的强制日志
select force_logging from v$database;
alter database force logging;
创建standy日志文件组
alter database add standby logfile group 4 '/oradata/xsgf/sby_redo01.rdo' size 50M;
alter database add standby logfile group 5 '/oradata/xsgf/sby_redo02.rdo' size 50M;
alter database add standby logfile group 6 '/oradata/xsgf/sby_redo03.rdo' size 50M;
alter database add standby logfile group 7 '/oradata/xsgf/sby_redo04.rdo' size 50M;
修改主生产库的参数
show parameter db_name
show parameter db_unique_name
show parameter log_archive_config
show parameter log_archive_dest
alter system set log_archive_config='dg_config=(xsgf,xsgfst)'scope=both;
alter system set log_archive_dest_2='SERVICE=xsgfst LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xsgfst' scope=both;
alter system set FAL_SERVER='xsgfst' scope=both;
alter system set FAL_CLIENT='xsgf' scope=both;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;
创建备库用的控制文件
alter database create standby controlfile as '/oradata/l';
复制所有主生产库上的所需要数库配置文件,数据文件,日志文件,密码文件,参数文件。
l racdb2:/oradata/xsgfst/
scp orapwxsgf racdb2:/database/product/11gr2/dbs/
scp -r admin racdb2:/database/
scp -r cfgtoollogs racdb2:/database/
scp -r checkpoints racdb2:/database/
scp -r diag racdb2:/database/
scp -r flash_recovery_area racdb2:/database/
scp -r /oradata/xsgf racdb2:/oradata/
scp -r /oradata/archlog racdb2:/oradata/
生产库数据库客户端名称解析文件a配置
XSGF =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.252)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xsgf)
    )
  )
XSGFST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.253)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xsgfst)
    )
  )
 
 
备库监听配置文件a 配置内容
LISTENER =
  (DESCRIPTION_LIST =

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。