极限网络Oracle11gDataGuardBroker快速故障切换配置_第1页
极限网络Oracle11gDataGuardBroker快速故障切换配置_第2页
极限网络Oracle11gDataGuardBroker快速故障切换配置_第3页
极限网络Oracle11gDataGuardBroker快速故障切换配置_第4页
极限网络Oracle11gDataGuardBroker快速故障切换配置_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深圳极限网络科技有限公司OracleDataGuard快速启动故障切换指南深圳市极限网络科技有限公司本文档将指导您使用物理备用服务器配置OracleDataGuard快速启动故障切换(FSFO)。FSFO可以显著提高所有环境的可用性和灾难恢复准备,从基于云的价格低廉的系统一直到全球分布的数据中心。本指南中的信息基于在跨国公司生产环境中部署FSFO的实践经验。本指南对您的现有环境做出几个假设,并且包括创建物理备用服务器和DataGuardBroker配置的示例。要开始本指南,您只需Oracle数据库企业版10.2版或更高版本、一个数据库和三个主机:两个主机用于数据库,一个小型主机用于FSFO观察器。本指南不对操作系统进行讨论;然而,一些示例中可能包含了特定于平台的元素(如路径和文件命名惯例)。FSFO环境的主要组件FSFO构建于众多其他Oracle技术和特性(如DataGuard、闪回数据库和DataGuardBroker)之上。DataGuardFSFO的基础是DataGuard—一个主数据库和至少一个备用数据库。备用数据库可以是物理的或逻辑的,可以有多个备用数据库,但只有一个备用数据库可作为随时进行故障切换的目标。以下段落将描述受支持的可用性模式。

最高可用性模式(Oracle数据库10g第2版及更高版本)

在最高可用性模式中,FSFO保证在故障切换期间不会丢失已收到提交确认的事务。该保证的代价是增加提交延迟(logfilesync等待事件)。最高可用性模式使用同步重做传输,FSFO则增加了额外要求,即重做应记录在目标备用数据库(log_archive_dest_n的AFFIRM选项)的备用重做日志(SRL)中。Overallcommitlatencyisincreasedbytheround-tripnetworklatency.往返网络延迟增加了总体提交延迟。增加的延迟降低了吞吐量;然而,有些时候吞吐量的差异是由增加的并行造成的。

虽然重做传输是同步的,但如果备用数据库由于某种原因(如备用数据库、主机或网络故障)不可用,最高可用性模式会保持主数据库可用。如果在用户指定的时间段(log_archive_dest_n的NET_TIMEOUT选项)之后,主数据库无法联系到备用数据库,它将退出同步传输模式并开始像在最高性能模式中一样进行操作。当备用数据库再次可用时,主数据库和备用数据库重新同步并恢复同步重做传输。

最高性能模式(Oracle数据库11g第1版及更高版本)

Oracle数据库11gFSFO增加了对最高性能模式的支持(异步重做传输),提供了用持久性换取性能的灵活性。提交延迟不受重做传输的影响,但备用数据库未收到其重做的已提交事务将在故障切换期间丢失。通过指定故障切换期间丢失事务的最大允许时间,最高性能模式中的FSFO配置可以限制潜在的数据丢失。例如,如果指定的限定值为30秒(默认),FSFO将保证在故障切换期间保存30秒钟内提交的所有事务。最小允许限定值为10秒钟。DataGuardBrokerBroker是一个DataGuard管理实用程序,用于维护有关主数据库及其备用数据库的状态信息。它自动设置与DataGuard相关的数据库初始化参数(如实例启动和角色转换)、启动备用数据库的应用服务,并且自动执行与维护DataGuard配置相关的许多管理任务。FSFO是Broker的一个特性,用于记录故障切换目标的相关信息,例如,故障发生后到触发故障切换之间的等待时间以及FSFO的其他特有属性。闪回数据库闪回数据库是一个集成在Oracle数据库中的持续数据保护(CDP)解决方案。它使用名为闪回日志的磁盘数据结构,提供一个将数据库快速恢复到之前时间点或SCN的方法。数据库闪回比传统的时间点或基于SCN的恢复速度更快、结合更完美(一条简单的DDL语句)。FSFO将闪回数据库用作将故障主数据库恢复为备用数据库流程的一部分。

自动恢复的问题通常因为错误的配置,因此我们来了解一些详细信息。

闪回数据库记录经过更改的数据块的前映像。为了避免记录每个数据块的每次更改的开销,闪回数据库每30分钟进行一次“模糊”快照,仅记录前映像块上一次快照后的第一次更改。在同一快照期间中,不再记录对同一数据块的后续更改。

数据库的闪回分成两个阶段:恢复—闪回数据库将数据文件恢复到指定SCN前最近的快照。这可以与执行从指定SCN前的备份进行数据文件RMAN恢复相比,但是速度更快。介质恢复—恢复完成后,恢复将作为典型介质恢复继续进行,根据存档重做日志和联机重做日志应用重做并通过撤消回滚未提交的更改。这意味着为了使闪回数据库操作成功,闪回数据库需要在快照时间和恢复SCN之间生成的所有存档重做日志(通常为重做后的30分钟)。使用V$RECOVERY_PROGRESS视图监视恢复状态。对于FSFO环境,设置db_flashback_retention_target=60或更高值,可以为自动备用恢复提供足够的闪回数据库历史记录。模糊快照的元数据存储在闪回日志本身中。如果没有元数据,Oracle将无法找到模糊快照,从而无法进行闪回。为了避免计时差异产生的问题,我们建议值设置为不少于60分钟,实际上,如果值设置为30或30以下,肯定会导致闪回数据库故障。闪回数据库将日志存储在快速恢复区(FRA)中,所以FRA必须有足够大的空间来存储至少60分钟的闪回数据库历史记录。总的存储需求与快照期间更改的不同数据块的数量成比例,例如,一小组数据块上的1,000,000次块更改生成的闪回数据库历史记录小于一大组数据块上的1,000,000次块更改所生成的闪回数据库历史记录。确定闪存数据库存储需求的一个好方法是,启用闪存数据库并观察其在几次峰值负载时所使用的存储量。通过启用闪回数据库来确定其存储需求也有一定的风险—如有必要,在主数据库处于打开状态时可以将其禁用。然而,重新启用闪回数据库将需要回弹,因为数据库必须进行安装且未打开。FSFO观察器观察器是非常典型的主/备用DataGuard配置中的第三方。它实际上是一个内置于DGMGRLCLI(DataGuardBroker命令行界面)中、占用空间很小的OCI客户端,与其他所有客户端一样,可以运行在与数据库服务器不同的硬件平台上。其主要工作是在条件允许时执行故障切换,而不影响DBA设置的数据持久性约束条件。只有观察器能启动FSFO故障切换。它的另一个工作是在启用该特性的情况下(默认)自动将主数据库恢复为备用数据库。观察器是DataGuard故障切换在强健的高可用性解决方案中承担重要角色的关键因素,也是造成DataGuard故障切换在FSFO出现前后重大差异的关键因素。

注:FSFO观察器版本必须与数据库版本匹配。Oracle数据库11g观察器与10g数据库不兼容,Oracle数据库10g观察器与11g数据库也不兼容。FSFO故障切换的条件默认情况下,当且仅当满足以下条件时,观察器才会启动到目标备用数据库的故障切换:观察器正在运行观察器和备用数据库均与主数据库失去联系注:如果观察器与主数据库失去联系,但是备用数据库并未失去联系,观察器可以确定主数据库仍然通过备用数据库运行。观察器仍然保持与备用数据库的联系满足持久性约束条件故障切换阈值延时已过用户可配置的故障切换条件(11g及更高版本)Oracle数据库11g第1版引入了用户可配置的故障切换条件,这些条件可以触发观察器立即启动故障切换。

运行状况条件

Broker可配置为在以下任一条件下启动故障切换。以蓝色显示的条件是默认启用的。DatafileOffline(由于IO错误)CorruptedControlfileCorruptedDictionaryInaccessibleLogfile(由于IO错误)StuckArchiver

Oracle错误(ORA-NNNNN)

您可以指定一个将启动FSFO故障切换的ORA错误列表。该列表默认为空。

应用程序启动

应用程序可直接使用DBMS_DG.INITIATE_FS_FAILOVER过程启动FSFO故障切换,并包括一个可选的在观察器日志和主数据库警报日志中显示的消息文本。指南概述本指南首先介绍一个将作为DataGuard配置主数据库的数据库。对于本次构建,我们将使用一个物理备用数据库。FSFO还可以与逻辑备用数据库结合使用,支持FSFO的配置可有多个备用数据库,包括混合的物理数据库和逻辑数据库,但只有一个备用数据库可随时作为故障切换目标。

本指南中的主要步骤包括:启用闪回数据库创建Broker配置配置观察器启用并测试FSFO环境说明:操作系统:RedHat5.9X64Oracle:Oracle11gR2主库IP:23备库IP:24数据库名:lessdb主库服务名:lessprdb备库服务名:lessstdb观察服务器IP:7DataGuard搭建之前有输出过搭建DATAGUARD搭建的文档,这里我就不细说了。查看角色:SQL>selectswitchover_statusfromv$database;主库执行SWITCHOVER_STATUS--------------------TOSTANDBYSQL>selectswitchover_statusfromv$database;备库执行SWITCHOVER_STATUS--------------------NOTALLOWED二、2.1在主库和备库都启用闪回数据库(主备都执行)alterdatabaseflashbackon;altersystemsetdb_flashback_retention_target=60scope=both;验证SQL>selectflashback_onfromv$database;FLASHBACK_ON------------------YES设置DataGuardBroker配置文件的位置Broker将其配置信息存储在数据库外的一组文件镜像中。默认情况下,两个文件都存储在$ORACLE_HOME/dbs中。要保护这两个文件,比较好的做法是将它们存储在不同的文件系统中。设置(主数据库和备用数据库)altersystemsetdg_broker_config_file1='/u01/app/oracle/admin/db1/dgbroker/dg1db1.dat';

altersystemsetdg_broker_config_file2='/u02/app/oracle/admin/db1/dgbroker/dg2db1.dat';验证showparameterdg_broker_config_file

NAMETYPEVALUE

-----------------------------------------------------------------------------

dg_broker_config_file1string/u01/app/oracle/admin/db1/dgbr

oker/dg1db1.dat

dg_broker_config_file2string/u02/app/oracle/admin/db1/dgbr

oker/dg2db1.dat启用DataGuardBroker启用(主数据库和备用数据库)altersystemsetdg_broker_start=true;验证showparameterdg_broker_start

NAMETYPEVALUE

-----------------------------------------------------------------------------

dg_broker_startbooleanTRUE修改数据库保护模式为最高可用保护模式(主备都需要,注意spfile加affirm参数,保证一致性)SQL>alterdatabasesetstandbydatabasetoMAXIMUMAVAILABILITY;SQL>selectprotection_modefromv$database;PROTECTION_MODE--------------------MAXIMUMAVAILABILITY配置Broker在主数据库上启动dgmgrl实用程序并以SYS身份进行连接dgmgrlsys/password@lessprdb创建Broker配置添加主数据库createconfiguration'FSF'as

primarydatabaseislessprdb

connectidentifierislessprdb;

Configuration"FSF"createdwithprimarydatabase"lessprdb"添加备用数据库adddatabaselessstdbas

connectidentifierislessstdb

maintainedasphysical;

Database"lessstdb"added验证配置showconfiguration

Configuration

Name:FSF

Enabled:NO

ProtectionMode:MaxAvailability如何不是的话用edit命令修改

Databases:

lessprdb-Primarydatabase

lessstdb-Physicalstandbydatabase

Fast-StartFailover:DISABLED

Currentstatusfor"FSF":

DISABLED编辑数据库属性LogXptMode

默认情况下,Broker将主数据库设置为使用异步日志传输。针对最高可用性环境时,需要将此设置更改为同步。

NetTimeout

NetTimeout属性指定在考虑连接丢失前LGWR将阻塞对同步模式中来自备用数据库的确认的等待秒数(对应于log_archive_dest_n的NET_TIMEOUT选项)。默认值为30秒。使用最高可用性模式时,考虑降低该值以减少备用数据库不可用时的提交阻塞时间。选择一个足够高的值,避免由间歇性网络问题引起的假性断开。本示例使用10秒钟。

ObserverConnectIdentifier(11g及更高版本)

Oracle数据库11g将ObserverConnectIdentifier数据库属性添加到Broker配置,使您可以为观察器指定一个连接标识符,用于监视主数据库和故障切换目标。默认情况下,观察器和DataGuard使用相同的连接标识符在主数据库和备用数据库间进行重做传输和信息交换(Oracle数据库11g中为DGConnectIdentifier,Oracle数据库10g中为InitialConnectIdentifier)。ObserverConnectIdentifier使您可以指定观察器使用不同的连接标识符。例如,您可以用此参数使观察器使用与客户端应用程序相同的连接标识符监视数据库。

在本指南中,我们将在保留其他属性的默认值,但您应熟悉所有Broker配置和数据库属性。DataGuardBroker文档(10g和11g)第9章中包含了每个属性的描述。其中一些属性已经在这两个版本中有所改动。

注:Broker的许多数据库属性与数据库spfile参数相对应。Broker在角色转换、数据库启动/关闭以及其他事件期间,通过执行相应的ALTERSYSTEM命令来维护这些参数。如果这些参数在Broker外部进行了修改,将出现警告。要查看特定参数,使用“showdatabase...StatusReport”命令。editdatabaselessprdbsetpropertyLogXptMode='SYNC';

editdatabaselessprdbsetpropertyNetTimeout=10;

editdatabaselessstdbsetpropertyNetTimeout=10;启用配置Broker将验证配置、设置两个数据库上的参数并启动托管恢复。这可能需要几分钟的时间。监视主数据库和备用数据库上的警报日志是在监视Broker运行和熟悉其如何执行各种任务的好方法。enableconfiguration;验证配置在继续前确保一切正常运行。showconfiguration

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessprdb-Primarydatabase

lessstdb-Physicalstandbydatabase

Fast-StartFailover:DISABLED

Currentstatusfor"FSF":

SUCCESS启用快速启动故障切换现在,启用FSFO以确保已满足所有前提。Broker将在启用FSFO前验证配置已满足所有前提条件并将报告发现的任何问题。最常见的问题是不匹配DataGuard保护模式和LogXptMode属性,以及忘记在主数据库或备用数据库上启用闪回数据库。

注意,启用FSFO并不能使其完成自动故障切换的配置—这需要我们接下来将介绍的观察器。enablefast_startfailover;

Enabled.启用FSFO后,Broker需要找到一个观察器,而我们还没有启动,所以,如果您在“showconfiguration”处验证配置,Broker将报警(如果没有报警,请等待一分钟,就会发现缺少观察器)。showconfiguration

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessprdb-Primarydatabase

lessstdb-Physicalstandbydatabase

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Currentstatusfor"FSF":

Warning:ORA-16608:oneormoredatabaseshavewarnings在主数据库上运行StatusReport应验证导致错误的原因是缺少观察器。showdatabaselessprdbstatusreport

STATUSREPORT

INSTANCE_NAMESEVERITYERROR_TEXT

*ERRORORA-16819:fast-startfailoverobservernotstarted配置观察器为了最大程度地体现FSFO的优势,观察器应与主数据库和备用数据库运行在不同主机上。理想情况下,主数据库、备用数据库和观察器将位于不同的地理区域。观察器非常轻型且需要较少的系统资源。观察器与主数据库/备用数据库互连(带宽和延迟将决定性能因素)不同,仅需很少的网络带宽并且对延迟不太敏感,这使其可以用于任何有可靠连接的地点。

由于观察器是dgmgrl会话的特定实例,观察器主机应安装OracleClientAdministrator软件或完整的Oracle数据库软件系列。验证到主数据库和备用数据库的连接tnspinglessprdb

Attemptingtocontact(description=(SDU=32767)(address_list=(address=(protocol=tcp)(host=23)(port=1522)))

(connect_data=(service_name=lessdb)(server=dedicated)))

OK(0msec)tnspinglessstdb

Attemptingtocontact(description=(SDU=32767)(address_list=(address=(protocol=tcp)(host=24)(port=1522)))

(connect_data=(service_name=lessdb)(server=dedicated)))

OK(0msec)启动观察器通过运行dgmgrl启动观察器并使用SYS凭证登录。我们现在将以交互方式启动它以验证一切运行正常。注意,启动观察器后,终端会话将呈现挂起状态。这是正常现象。附录提供有关如何创建简单的包装脚本以将观察器作为后台进程启动的信息。dgmgrlsys/password@lessprdb

startobserver;

observerstarted此时,终端会话将呈现挂起状态。配置fast-startfailoverDGMGRL>editdatabaselessprdbsetpropertyFastStartFailoverTarget=lessstdb;Property"faststartfailovertarget"updatedDGMGRL>editdatabaselessstdbsetpropertyFastStartFailoverTarget=lessprdb;Property"faststartfailovertarget"updated验证配置在单独的终端会话中,验证配置。本示例介绍了用于提供FSFO特定信息的“showconfiguration”命令的详细模式。如果状态为SUCCESS,您可以开始测试角色转换。dgmgrlsys/password@lessprdb

showconfigurationverbose

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessprdb-Primarydatabase

lessstdb-Physicalstandbydatabase

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Threshold:30seconds

Target:lessstdb

Observer:

LagLimit:30seconds(notinuse)

ShutdownPrimary:TRUE

Auto-reinstate:TRUE

Currentstatusfor"FSF":

SUCCESS使用“showfast_startfailover”命令查看哪个用户可配置的FSFO故障切换条件有效。showfast_startfailover;

Fast-StartFailover:ENABLED

Threshold:30seconds

Target:lessstdb

Observer:

LagLimit:30seconds(notinuse)

ShutdownPrimary:TRUE

Auto-reinstate:TRUE

ConfigurableFailoverConditions

HealthConditions:

CorruptedControlfileYES

CorruptedDictionaryYES

InaccessibleLogfileNO

StuckArchiverNO

DatafileOfflineYES

OracleErrorConditions:

(none)测试配置配置的真实测试是成功的进行双向角色转换,包括转换和FSFO故障切换。我们将从转换开始。测试双向转换为了实现完全自动转换,Broker需要SYSDBA凭证以重新启动两个数据库或其中一个数据库。如果没有该凭证,Broker仍将完成角色转换,但需要手动重新启动数据库。dgmgrlsys/password@lessprdb

switchovertolessstdb

PerformingswitchoverNOW,pleasewait...

Newprimarydatabase"lessstdb"isopening...

Operationrequiresshutdownofinstance"db1"ondatabase"lessprdb"

Shuttingdowninstance"db1"...

ORA-01109:databasenotopen

Databasedismounted.

ORACLEinstanceshutdown.

Operationrequiresstartupofinstance"db1"ondatabase"lessprdb"

Startinginstance"db1"...

ORACLEinstancestarted.

Databasemounted.

Switchoversucceeded,newprimaryis"lessstdb"showconfiguration

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessstdb-Primarydatabase

lessprdb-Physicalstandbydatabase

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Currentstatusfor"FSF":

SUCCESS现在,让我们来测试另一个方向的转换。switchovertolessprdb

PerformingswitchoverNOW,pleasewait...

Newprimarydatabase"lessprdb"isopening...

Operationrequiresshutdownofinstance"db1"ondatabase"lessstdb"

Shuttingdowninstance"db1"...

ORA-01109:databasenotopen

Databasedismounted.

ORACLEinstanceshutdown.

Operationrequiresstartupofinstance"db1"ondatabase"lessstdb"

Startinginstance"db1"...

ORACLEinstancestarted.

Databasemounted.

Switchoversucceeded,newprimaryis"lessprdb"showconfiguration

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessprdb-Primarydatabase

lessstdb-Physicalstandbydatabase

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Currentstatusfor"FSF":

SUCCESS双向测试FSFO故障切换现在我们知道转换已成功,该测试故障切换了。测试FSFO故障切换需要模拟缺少主数据库。最简单的方法是中止主数据库。这将使观察器在达到FSFO阈值延时(默认值为30秒)后,启动故障切换。在中止主数据库后,查看两个数据库上的警报日志和观察器日志对深入了解FSFO故障切换期间所发生的情况有很大帮助。

我们还可以使用dgmgrl故障切换命令来启动故障切换。这将演练配置,但触发故障切换的方式与失去与主数据库的连接不同。检查闪回数据库记忆我们希望故障切换测试完成后,观察器能够自动将之前的主数据库恢复为备用数据库,因此在每次测试之前,确保闪回数据库至少有30分钟的历史记录。每次故障切换测试前执行此操作。如果闪回数据库历史记录不足,观察器将不能进行恢复,而您将需要手动从备份或主数据库副本进行恢复。

在即将中止的主数据库上:select(sysdate-oldest_flashback_time)*24*60ashistoryfromv$flashback_database_log;

HISTORY

----------

140.35如果没有30分钟内的可用历史记录,不要启动故障切换。创建一些测试数据如果我们不须验证是否满足持久性约束条件,顶多是个测试,因此我们在主数据库上进行一些更改并查看更改是否在故障切换后仍然存在。本指南使用最高可用性模式实现“零数据丢失”。

作为测试用户登录,并进行一些不会影响系统其他部分的更改。--NotethatDDLstatementsautomaticallycommit

createtablexasselect*fromall_objects;

Tablecreated.selectcount(*)fromx;

COUNT(*)

----------

68855启动FSFO故障切换中止主数据库。shutdownabort观察器日志:InitiatingFast-StartFailovertodatabase"lessstdb"...

PerformingfailoverNOW,pleasewait...

Failoversucceeded,newprimaryis"lessstdb"通过登录到新主数据库上的dgmgrl查看Broker配置。您会看到之前的主数据库现在已禁用。dgmgrlsys/password@lessstdb

showconfiguration

Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessstdb-Primarydatabase

lessprdb-Physicalstandbydatabase(disabled)

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Currentstatusfor"FSF":

Warning:ORA-16608:oneormoredatabaseshavewarnings查看测试数据登录到新的主数据库并验证更改与之前主数据库一致。selectcount(*)fromx;

COUNT(*)

----------

68855将之前中止的主数据库恢复为备用数据库通过安装数据库启动恢复。注意,数据库此时不会打开。仅当观察器验证主数据库仍为主数据库后,主数据库才会打开。如果观察器发现该数据库不再是主数据库,会尝试将其恢复为故障切换的目标备用数据库。

恢复的第一步是将数据库闪回到备用数据库变为主数据库的SCN处(新主数据库上的v$database.standby_became_primary_scn)。如闪回数据库部分中所述,闪回数据库将分成两个阶段进行:恢复阶段和介质恢复阶段。在恢复阶段,闪回数据库使用闪回数据库日志中的前映像块将数据库恢复到standby_became_primary_scn之前的一点。在介质恢复阶段中,闪回数据库应用重做以将数据库带到standby_became_primary_scn。为使闪回数据库成功,闪回数据库日志中必须包括足够的可用历史记录,并且恢复点和standby_became_primary_scn之间生成的所有重做必须可用。如果闪回数据库失败,自动恢复将停止,您将需要手动执行基于SCN的恢复以恢复到standby_became_primary_scn,直到完成该恢复。

一旦闪回数据库成功,观察器会将该数据库转换为备用数据库,执行回弹并开始应用服务。startupmount观察器日志:Initiatingreinstatementfordatabase"lessprdb"...

Reinstatingdatabase"lessprdb",pleasewait...

Operationrequiresshutdownofinstance"db1"ondatabase"lessprdb"

Shuttingdowninstance"db1"...

ORA-01109:databasenotopen

Databasedismounted.

ORACLEinstanceshutdown.

Operationrequiresstartupofinstance"db1"ondatabase"lessprdb"

Startinginstance"db1"...

ORACLEinstancestarted.

Databasemounted.

Continuingtoreinstatedatabase"lessprdb"...

Reinstatementofdatabase"lessprdb"succeededdgmgrl状态:Configuration

Name:FSF

Enabled:YES

ProtectionMode:MaxAvailability

Databases:

lessstdb-Primarydatabase

lessprdb-Physicalstandbydatabase

-Fast-StartFailovertarget

Fast-StartFailover:ENABLED

Currentstatusfor"FSF":

SUCCESS在另一个方向重复操作现在,对FSFO故障切换回到原始主数据库的操作进行测试。进行一些新的更改并验证故障切换执行后这些更改仍然存在。记住,在中止主数据库前查看闪回数据库历史记录。主数据库停滞还有一个很好的测试是模拟网络故障时主数据库仍然运行,但与故障切换目标备用数据库和观察器失去联系。当主数据库同时失去与故障切换目标和观察器的联系时,将进入“停滞”状态(v$database.fs_failover_status='STALLED'),所有仍与主数据库连接的会话将在提交时阻塞。查询和DML将继续运行—只有提交的会话会阻塞。这将防止在故障切换时出现“裂脑”情况,因为对隔离主数据库进行的更改并不是永久性的。运行之前版本的Oracle数据库10g数据库将处于停滞状态,直至您中止或由观察器设定其在连接恢复后仍然作为主数据库。从开始(包括11g以及之后的所有版本),Oracle将提供FastStartFailoverPmyShutdownBroker属性,如果超过FSFO阈值超时后主数据库仍然处于停滞状态,您可以通过该属性指定主数据库应该进行何种操作。如果该属性设置为“TRUE”(默认值),主数据库将自己终止。如果该属性设置为“FALSE”,数据库仍然处于打开的停滞状态,直至终止或者通知其在未发生故障切换的时间内继续运行(例如,停滞开始后但未到达故障切换超时前,观察器被终止)。

本指南中介绍的简单测试有利于确保基础部分正常工作,但是您可能希望开发一套更全面、更适合您的环境和需求的测试。监视FSFO准备情况启用FSFO的系统和可以运行FSFO的系统有很大的区别。可以运行FSFO意味着满足成功进行故障切换的所有条件,包括正在运行的观察器和为满足持久性需求传输到故障切换目标的重做。本部分将介绍如何保持顶级FSFO环境。询问Broker如果Broker报错,使用Broker的“showconfiguration”命令确定FSFO状态,使用“showdatabase<db_unique_name>statusreport”命令查看详细信息。询问主数据库v$database视图有专门用于监视FSFO状态的栏。以下所列的值表示FSFO可以进行故障切换。有关详细信息,请参阅所用版本的Oracle参考资料和DataGuard管理员指南。

fs_failover_status=

'SYNCHRONIZED'forMaxAvail

'TARGETUNDERLAGLIMIT'forMaxPerf

fs_failover_observer_present='YES'备用数据库应用没有什么比发现观察器刚刚进行故障切换的备用数据库在应用重做中落后12个小时更糟糕的了。如果故障切换目标收到了所有用于满足您持久性需求的重做,这将完美地满足观察器的所有条件。观察器不会考虑已经应用了多少重做。所以,请准备一个在备用数据库应用落后过多时通知相关人员的办法。闪回数据库历史记录确保故障主数据库可自动恢复的重要性仅次于确保您拥有一个良好的主数据库。监视闪回数据库历史记录并在其降至30分钟以下时作出反应,这将节省时间并提高可用性。这还能在数据库在FSFO启动后的某一点禁用闪回数据库时向您发出警报。启用FSFO后,Broker将检查主数据库和故障切换目标上的闪回数据库是否已启用。启用FSFO后,Broker将继续在运行状况检查期间查看闪回数据库是否已启用。如果检测到闪回数据库因自身发现问题而遭禁用(无论手动或自动),Broker将提示“ORA-16827:FlashbackDatabaseisdisabled”。客户端通知如果应用程序和其他数据库客户端不知道主数据库的去向,故障切换数据库也无法发挥很好的作用。如果客户端已配置为收不到数据库响应时自动超时并重新连接,使用网络别名(例如,DNSCNAME)解决主数据库的问题将是一个简单有效的方法。进行角色更改后,命名服务将更新为新的主数据库地址。可以使用DB_ROLE_CHANGE系统上的触发器更新命名服务,并且客户端可以借助相应的客户端缓存TTL设置非常快速地连接到新的主数据库。

Oracle还为OCI客户端提供快速应用通知(FAN),为JDBC客户端提供快速连接故障切换。这些功能使利用它们的应用程序可以异步接收数据库事件的通知(包括角色转换)。附录创建观察器包装本部分将帮助您开始创建用于自动启动和重新启动FSFO观察器的包装脚本。使用包装脚本在观察器主机启动时启动观察器进程,或者在观察器主机终止重新启动。您将决定如何编写包装和决定何时执行该包装的方法。创建钱夹虽然并非严格要求,但创建钱夹将为存储启动观察器时自动连接到主数据库所需的凭证提供一个安全的方法。Oracle数据库安全指南中的“配置身份认证”一章提供了有关如何创建钱夹的详细说明。

下面提供的*nix简单示例适用于两个版本。Oracle数据库10gFSFO观察器限于使用钱夹中定义的默认用户名和口令。在10g中,一个钱夹可以用于多个观察器,但必须使用相同的SYS口令。Oracle数据库11g观察器可使用特定的凭证,允许同一钱夹在多个观察器中使用不同的SYS口令。

创建存储钱夹的目录。mkdir-p/u01/app/oracle/admin/wallet创建一个钱夹并将其默认用户名和口令设置为数据库的SYSDBA凭证(通常为SYS)。mkstore-wrl/u01/app/oracle/admin/wallet-createEntryoracle.security.client.default_usernameSYS

mkstore-wrl/u01/app/oracle/admin/wallet-createEntryoracle.security.client.default_password<syspassword>添加钱夹位置并覆盖到sqlnet.ora。WALLET_LOCATION=

(SOURCE=

(METHOD=FILE)

(METHOD_DATA=

(DIRECTORY=/u01/app/oracle/admin/wallet)

)

)

SQLNET.WALLET_OVERRIDE=TRUE确定观察器状态文件(fsfo.dat文件)的存储位置观察器在一个文件中维护状态信息。默认情况下,该文件名为fsfo.dat并创建于启动观察器的工作目录。该状态文件在观察器运行时锁定,以防止多个观察器使用同一文件。为避免一台主机上运行的多个观察器时的锁定问题,通常来说,比较好的做法是将状态文件存储在与数据库相关联的目录中。mkdir-p/u01/app/oracle/admin/db1/observer观察器启动命令以下是一行*nix的观察器启动命令。注意,使用“/@<tns_alias>”登录将用到钱夹。nohupdgmgrl/@db1"startobserverfile='/u01/app/oracle/admin/db1/observer/fsfo.dat'"\

>>/u01/app/oracle/admin/db1/observer/dgmgrl.log&有助于了解观察器的信息所有与观察器相关联的连接(包括初始连接)必须使用专用服务器连接。使用SharedServer(MTS)或连接池可能导致无法预料的行为。为实现可靠的启动,初始连接应始终连接到主数据库。运行中的观察器在角色转换后将自动跟随主数据库,但如果初始连接连接到故障数据库或者包含过期或损坏的Broker配置文件的数据库,新(重新)启动的观察器将不会启动。启动可能会失败,原因为“cORA-16647:couldnotstartmorethanoneobserver”。如果之前的观察器进程未注销即终止并且新观察器未使用之前的fsfo.dat文件,那么即使没有观察器在实际运行也会发生该错误。如果出现此情形,运行“stopobserver”并重试。至少配置两台主机来运行观察器是一个比较好的办法,这样,其中一台主机可以在另一台发生故障时进行替换。故障切换脚本创建一个自动启动FSFO故障切换的脚本,并将其作为备用数据库翻转的标准方法。这不仅节省了时间,还将使由自动化反向手动进程所引起的问题最小化。每一次翻转都将演练您的故障切换和DR流程,从中您将了解FSFO配置是多么出色,并且在真实的紧急情况下,每一个人都知道如何应对。故障切换将趋于常规。实际上,故障切换非常可靠、快捷和简便,转换将成为异常而不再是惯例。只需确保脚本中包括对闪回数据库历史记录的检查,从而在故障切换需要手动恢复时提供一个中止的选项。DB_ROLE_CHANGE系统事件当数据库在角色转换后第一次打开时,将触发DB_ROLE_CHANGE事件。转换或故障切换后,在该事件上创建一个触发器来执行特定于您环境的操作,如将名称解析服务更新为指向新主数据库。尽量保持该触发器保持简单可靠,将其仅限定为角色转换时绝对必要,因为此时出现任何故障都将影响可用性。如果需要触发很多操作,请将它们放入一个单独的脚本中并使用触发器在一个孤立的进程或独立于数据库的线程中运行该脚本。包括多个备用数据库的FSFO配置备用节点除故障切换目标之外的所有备用数据库被称为备用节点(v$database.fs_failover_status='BYSTANDER')。备用节点是DataGuard配置的一部分,但不是FSFO配置的一部分。FSFO配置在任何给定时间只包括两个数据库(主数据库和故障切换目标数据库)。

在故障切换期间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论