一、 最高可用性架构中的Data Guard
Data Guard用于Oracle数据的高可用性、数据保护和企业数据灾难恢复。Data Guard提供一整套服务,包括创建、维护、管理和监控一个或更多个Standby数据库,使主数据库即使发生灾难和数据破坏也能保证数据不丢失。Data Guard作为对主数据库的拷贝来维护Standby数据库。然而,如果主数据库因为计划活非计划的停机变得不活动,Data Guard能切换任何Standby数据到主数据库角色,最小化停机时间。Data Guard能切换任何Standby数据库到主数据库角色,最小化停机时间。Data Guard能使用传统的备份、恢复和集群技术帮助提供高级别的数据保护和更高可用性的数据库。
使用Data Guard,管理员可以选择通过卸载资源密集型的备份和生成报表到Standby数据库来减小主数据库压力,提高主数据库的性能。
1. Data Guard优势
优势1:灾难恢复、数据保护和高可用性
Data Guard提供高效和综合的灾难恢复及高可用性的解决方案。允许角色在主数据库和Standby数据库之间切换,具备轻松管理主备数据库Switchover和Failover的能力;针对计划和非计划停机,最小化主数据库停机时间。
优势2:完整的数据保护
即使是不可预见的灾难,Data Guard也能确保零数据丢失。Standby数据库提供防范数据损坏和用户错误的能力。因为Redo数据是从主数据库接收,在Standby数据库应用的,因为在主数据库存储级别的物理损坏不会传播到Standby数据库。类似的,逻辑损坏或者用户错误引起的主数据库破坏也能够得到一定程度的解决。
优势3:高效使用系统资源
Standby数据的表接收来自主数据库Redo数据的更新,这样Standby数据库就能完成备份、生成报表和查询等工作,由此减少主数据库的工作量,节约主数据库的CPU和I/O周期等宝贵资源。
优势4:数据保护的灵活性
Oracle Data Guard提供了最大保护、最大可用性和最大性能三种数据保护模式,以帮助企业平衡不同系统对数据安全性、可用性和性能的不同要求。
优势5:自动检测和解决日志文件缺失
如果主数据库和一个或多个Standby数据库之间的连接丢失(如发生网络故障),在主数据库生成的Redo数据不能传送到Standby数据库。一旦连接重新建立,Standby数据库缺失的归档Redo日志文件能通过Data Guard被自动扫描和传送,在没有DBA手动介入的情况下,Standby数据库与主数据库也能重新同步。
优势6:集中和简化管理
Data Guard Broker提供图形化用户接口和命令接口,对在Data Guard配置中的多个数据库进行自动化管理。
优势7:整合Oracle数据库
Data Guard是Oracle数据库企业版的一个特性,不需要单独安装。
优势8:自动角色转变
当启动fast-start Failover时,一旦主数据库位置发生灾难,Data Guard Broker自动失败切换到一个同步的Standby数据库,不需要DBA的介入。另外,应用程序被自动通知数据库角色发生转换。
2. 客户端Failover
一个高可用性架构要求数据库和数据库客户端有快速Failover的能力。数据库的Failover发生后,几秒内能够使客户端自动重定向到新的主数据库。
如果实现了最高可用性环境,主数据库是RAC环境,主数据库与Standby数据库之间使用Data Guard进行同步,使用SCAN提供的别名进行连接,客户端能够连接到当前活动的主数据库(如果发生了主备切换,客户端依然能够正确的连接上切换后的数据库)。
为了简化配置,Oracle Database 11gR2引入了两个新的SQL*Net参数,它们能够用于客户端本地服务名的配置。第一个参数是CONNECT_TIMEOUT,表示客户端连接到Oracle数据库的超时时间(单位秒),取代了SQLNET.ORA中的SQLNET.OUTBOUT_CONNECT_TIMEOUT参数。第2个参数是RETRY_COUNT,表示连接被终止之前,访问ADDRESS_LIST的次数。
下面是一个典型的11gR2客户端本地服务器最高可用性配置,如果随机选择的一个地址指向了一个当前不活动的位置,在客户端等待了过长时间(默认超时是依赖系统而定的,可能长达10分钟)之前,超过了CONNECT_TIMEOUT时间允许连接请求发生失败切换。换句话说,如果主备发生了切换,能够确保新的连接或重新的连接都能正常链接到切换后的数据库。
RACTEST=
(DESCRIPTION=
(CONNECT_TIMEOUT=10)
(RETRY_COUNT=3)
(ADDRESS_LIST=
(LOAD_BALANCE=on)
(FAILOVER=ON)
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel-cluster-scan.grid.example.com)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=rheldg1)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ractest)
)
)
以上配置可以结合RAC Service服务或Client-side TAF来使用,确保RAC内部也能够实现节点间的Failover。
3. Standby数据库
Standby数据库是主数据库事务一致性的拷贝。使用一个拷贝主数据库的备份可以创建多大30个Standby数据库,可以将它们加入到一个Data Guard配置环境中。一旦创建成功,Data Guard通过自动应用从主数据库传送到Standby数据库的Redo数据以维护每个Standby数据库。类似主数据库,Standby数据库也可以是单实例数据库或RAC数据库。Standby数据库分为以下三种类型。
a. 物理Standby数据库
物理Standby数据库提供了一个物理上与主数据库相同的拷贝,磁盘数据库结构与主数据库是相同的,物理Standby数据库是块到块的拷贝。一个物理Standby数据库通过应用从主数据库收到的Redo数据保持与主数据库的同步,这个过程称为日志应用。
在10g的Data Guard中,物理Standby数据库在应用日志的时候是不可以打开的。从Oracle Database 11gR1开始,Standby以只读形式打开时,物理Standby数据库能收到并且应用Redo数据,因此,物理Standby数据库能在保护数据的同时生成最新报表,Oracle将这种Data Guard称为Active Data Guard。
b. 逻辑Standby数据库
逻辑Standby数据库包含和主数据库相同的逻辑信息,物理结构和数据结构可以是不同的。逻辑Standby将从主数据库收到的Redo转换成SQL语句,然后在Standby数据库上执行SQL语句,这个过程称为SQL应用(SQL Apply)。
逻辑Standby数据库能用于除灾难恢复要求以外的其它目的。在任何时间,允许用户查询逻辑Standby数据库和通过逻辑Standby数据库生成报表。同时,使用逻辑Standby数据库能升级Database软件,在几乎不停机的情况下打补丁,因此,逻辑Standby数据库能在保护数据的同时生成报表和升级数据库。
c. 快照Standby数据库
快照Standby数据库是一个在11g版本中出现的全新的Standby数据库。像物理或逻辑Standby数据库一样,快照Standby数据库从主数据库接受Redo数据。与物理或者逻辑Standby数据库不同的是,快照Standby数据库只接收而不应用Redo数据。快照Standby数据库没有应用接收到的Redo数据,直到快照Standby数据库转换为物理Standby数据库,之后首次抛弃任何对快照Standby数据库的更新,然后再应用Redo数据。
一个快照数据库最好用在要求临时的、可更新的物理Standby数据库快照场景。
4. Data Guard保护模式
Oracle提供了3种Data Guard保护模式来满足各种不同安全级别要求的系统,包括:最大保护、最大性能和最高可用性模式。所有的保护模式都要求使用特定的Redo传送选项发送Redo数据到至少一个Standby数据库,下面分别讨论三种模式:
a. 最大保护
如果主数据库失败,这个保护模式可以确保没有任何数据丢失。事务在完成提交之前事务恢复需要的Redo数据必须写到主数据库的联机Redo日志和至少一个同步的Standby数据库的Standby Redo日志中,如果主数据库不能写Redo数据到至少一个同步的Standby数据库中,为了确保数据不会丢失,主数据库将被关闭。
采用最大保护必须符合以下的条件:
1) 主数据库在LOG_ARCHIVE_DEST_n的参数设置中必须用到LGWR SYNC AFFIRM属性来归档到Standby数据库。
2) Standby数据库必须配置Standby Redo日志。
3) 至少有一个Standby数据库是可用的。
采用这种保护模式保护的主数据库,不能使用shutdown immediate对唯一的Standby数据库执行关闭操作。
b. 最大性能
这是默认的保护模式,它提供在不影响主库性能的情况下的最高级别的数据保护。主数据库的用户事务一旦被写入到本地联机重做日志中后,就被允许提交,而不需要立刻写到至少一个同步的Standby数据库中。主数据库只要使用ARCH或LGWR ASYNC属性对远程的Standby数据库进行归档即可。Redo数据也写到一个或更多个Standby数据库,但是对于事务提交是异步完成的,因此通过延迟写Redo数据到Standby数据库不会影响主数据库的性能。这个保护模式提供比最高可用性模式略少的数据保护,但能最低程度的影响主数据库的性能。
c. 最高可用性
次高的数据保护模式,最小化对主数据库可用性的影响。采用与最大保护模式同样的方式,确保Redo日志被完全的写入本地数据库和至少一个Standby数据库的Standby Redo日志中时,才会给用户返回提交完成信息。如果由于某些原因使得Standby数据库变为不可用,并且主数据库不能将Redo日志写入到Standby数据库的Standby Redo日志中,此时主数据库不会关闭,主数据库将暂时保护将保护模式降级为最大性能模式,并且继续工作。一旦Standby数据库恢复正常可用,主数据库的缺失消除方案将会启动,归档Redo日志的缺失部分将会被填满。当主数据库中下一个日志打开的时候,主数据库中的保护模式又会上升为最高可用性模式。
采用最高可用性模式必须符合以下条件:
n 主数据库在LOG_ARCHIVE_DEST_n初始化参数中必须用到LGWR SYNC AFFIRM属性归档到Standby数据库。
n Standby数据库必须配置Standby Redo日志。
n 至少有一个Standby数据库是可用的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29339097/viewspace-1063139/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29339097/viewspace-1063139/