Kompletní postup je v dokumentu PDF, který je na konci článku k dispozici.Nastavení prostředíPředpokládejme, že máte dva servery vserver1 a vserver2. Oba jsou to linuxové servery s distribucí Enterprise linux.[oracle@vserver1 ~]$ cat /etc/redhat-releaseEnterprise Linux Enterprise Linux Server release 5.2 (Carthage)[oracle@vserver2 ~]$ cat /etc/redhat-releaseEnterprise Linux Enterprise Linux Server release 5.2 (Carthage)Na serveru vserver1 běží primární databáze orcl, zároveň zde běží i instance ASM.SQL> select database_role from v$database;DATABASE_ROLE—————-PRIMARYNa serveru vserver2 běží standby databáze orclsby1, zároveň zde běží instance ASM.SQL> select database_role from v$database;DATABASE_ROLE—————-PHYSICAL STANDBYMáme nastavený a zapnutý Data Guard broker.DGMGRL> show configurationConfigurationName: drsolutionEnabled: YESProtection Mode: MaxPerformanceDatabases:orcl – Primary databaseorclsby1 – Physical standby databaseFast-Start Failover: DISABLEDCurrent status for „drsolution“:SUCCESSTeď je tedy potřeba nastavit Fast start faileover a observer, aby v případě výpadku primární databáze došlo k přepnutí na standby databázi.Kontrola nastavení standby redo logů na včech databázíchOrclSQL> set lines 120col member for a80select type,member from v$logfile order by type;TYPE MEMBER——- ———————————————————ONLINE +DATA/orcl/onlinelog/group_3.267.711595847ONLINE +DATA/orcl/onlinelog/group_3.266.711595853ONLINE +DATA/orcl/onlinelog/group_2.265.711595837ONLINE +DATA/orcl/onlinelog/group_2.264.711595841ONLINE +DATA/orcl/onlinelog/group_1.263.711595825ONLINE +DATA/orcl/onlinelog/group_1.320.711595831STANDBY +DATA/orcl/onlinelog/group_4.270.711089195STANDBY +DATA/orcl/onlinelog/group_4.271.711089199STANDBY +DATA/orcl/onlinelog/group_5.272.711089229STANDBY +DATA/orcl/onlinelog/group_5.273.711089233STANDBY +DATA/orcl/onlinelog/group_6.274.711089251STANDBY +DATA/orcl/onlinelog/group_6.275.711089255Orclsby1SQL> set lines 120col member for a80select type,member from v$logfile order by type;SQL> SQL>TYPE MEMBER——- ———————————————————ONLINE +DATA/orclsby1/onlinelog/group_3.289.711596149ONLINE +DATA/orclsby1/onlinelog/group_3.288.711596153ONLINE +DATA/orclsby1/onlinelog/group_2.287.711596139ONLINE +DATA/orclsby1/onlinelog/group_2.286.711596143ONLINE +DATA/orclsby1/onlinelog/group_1.285.711596125ONLINE +DATA/orclsby1/onlinelog/group_1.344.711596133STANDBY +DATA/orclsby1/onlinelog/group_4.278.711156737STANDBY +DATA/orclsby1/onlinelog/group_4.279.711156743STANDBY +DATA/orclsby1/onlinelog/group_5.280.711156749STANDBY +DATA/orclsby1/onlinelog/group_5.281.711156753STANDBY +DATA/orclsby1/onlinelog/group_6.282.711156757STANDBY +DATA/orclsby1/onlinelog/group_6.283.711156761Nastavte parametr LogXptMode na SYNCDGMGRL> EDIT DATABASE orcl SET PROPERTY ‚LogXptMode’=’SYNC‘;Property „LogXptMode“ updatedDGMGRL> EDIT DATABASE orclsby1 SET PROPERTY ‚LogXptMode’=’SYNC‘;Property „LogXptMode“ updatedNastavte cílovou databáziDGMGRL> EDIT DATABASE orcl SET PROPERTY FastStartFailoverTarget=’orclsby1′;Property „faststartfailovertarget“ updatedDGMGRL> EDIT DATABASE orclsby1 SET PROPERTY FastStartFailoverTarget=’orcl‘;Property „faststartfailovertarget“ updatedNastavte mód na maximální dostupnostDGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;Succeeded.Zapněte Flashback na primární i standby databáziorclsby1SQL> ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE;System altered.SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=’AUTO‘ SCOPE=SPFILE;System altered.SQL> shutdown immediateORA-01109: database not openDatabase dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 857903104 bytesFixed Size 1303272 bytesVariable Size 490736920 bytesDatabase Buffers 360710144 bytesRedo Buffers 5152768 bytesDatabase mounted.SQL> ALTER DATABASE FLASHBACK ON;Database altered.orclSQL> ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE;System altered.SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=’AUTO‘ SCOPE=SPFILE;System altered.SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 857903104 bytesFixed Size 1303272 bytesVariable Size 381685016 bytesDatabase Buffers 469762048 bytesRedo Buffers 5152768 bytesDatabase mounted.SQL> ALTER DATABASE FLASHBACK ON;Database altered.SQL> alter database open;Database altered.Zapněte fast start failoverDGMGRL> enable fast_start failover;Enabled.DGMGRL> show configurationConfigurationName: drsolutionEnabled: YESProtection Mode: MaxAvailabilityDatabases:orcl – Primary databaseorclsby1 – Physical standby database- Fast-Start Failover targetFast-Start Failover: ENABLEDCurrent status for „drsolution“:Warning: ORA-16608: one or more databases have warningsPři výpisu nastala chyba. Její přesné znění zjistíte pomocí příkazu verbose.DGMGRL> show database verbose orcl;DatabaseName: orclRole: PRIMARYEnabled: YESIntended State: TRANSPORT-ONInstance(s):orcl…Current status for „orcl“:Warning: ORA-16819: fast-start failover observer not startedNastartujte observerObserver by měl běžet na nějakém třetím serveru neustále na pozadí.Můžete ho spustit ve screenu nebo pomocí příkazu nohup.DGMGRL> start observer;Observer startedKontrolaDGMGRL> show configuration verbose;ConfigurationName: drsolutionEnabled: YESProtection Mode: MaxAvailabilityDatabases:orcl – Primary databaseorclsby1 – Physical standby database- Fast-Start Failover targetFast-Start Failover: ENABLEDThreshold: 30 secondsTarget: orclsby1Observer: vserver1Lag Limit: 30 seconds (not in use)Shutdown Primary: TRUEAuto-reinstate: TRUECurrent status for „drsolution“:A pak ještě z primární databáze pomocí sqlplus.SQL> select FS_FAILOVER_STATUS,FS_FAILOVER_OBSERVER_PRESENT from v$database;FS_FAILOVER_STATUS FS_FAIL———————- ——-SYNCHRONIZED YESTEST při pádu primární databázeZ jiné session databázi shodíme příkazem abort.SQL> shutdown abortORACLE instance shut down.Na straně observeru uvidíte, že došlo k automatickému přepnutí.DGMGRL> start observer;Observer started04:15:34.52 Monday, February 22, 2010Initiating Fast-Start Failover to database „orclsby1″…Performing failover NOW, please wait…Failover succeeded, new primary is „orclsby1″04:17:45.14 Monday, February 22, 2010Dejme tomu, že jste původní primární databázi orcl opravili a pokusili se ji připojit do režimu mount.SQL> startup mountORACLE instance started.Total System Global Area 857903104 bytesFixed Size 1303272 bytesVariable Size 381685016 bytesDatabase Buffers 469762048 bytesRedo Buffers 5152768 bytesDatabase mounted.Na straně observeru uvidíte, že se automaticky začne inicializovat.04:27:23.76 Monday, February 22, 2010Initiating reinstatement for database „orcl“…Reinstating database „orcl“, please wait…Operation requires shutdown of instance „orcl“ on database „orcl“Shutting down instance „orcl“…ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.Operation requires startup of instance „orcl“ on database „orcl“Starting instance „orcl“…ORACLE instance started.Database mounted.Continuing to reinstate database „orcl“ …Reinstatement of database „orcl“ succeeded04:29:59.42 Monday, February 22, 2010Je-li databáze zinicializovaná pak může dojít opět k přepnutí orcl na primární.DGMGRL> switchover to orcl;Tímto jste nastavili automatické přepínání na standby databázi v případě, že dojde k výpadku primárníCelý postup je v přiloženém dokumentu PDF.



Komentáře