Ausgangslage

Wie gut lässt sich mit Oracle Standard Edition unter Windows eine Hochverfügbarkeitslösung aufbauen?

Die Basis, zwei Windows Server 2012 R2, Oracle Standard Edition und Dbvisit Standby.

Die eingesetzte Version Dbvisit Standby 7.0.48.15006.

Die eingesetzte Oracle Version 12.1.0.2.0.

Installation

Die Windows Installation ist Standard, nur die beiden Server müssen, zwecks Namensauflösung im Hosts File(C:\Windows\System32\drivers\etc\hosts) unter Windows eingetragen werden.

192.168.198.129 node01.localdomain node01 NODE01
192.168.198.130 node02.localdomain node02 NODE02

Der zweite Schritt, die Installation der Oracle Software. Als erstes müssen zwei User(oracle, OraSys) erstellt werden:

 2016-01-18_09h55_44

Wichtig, der Oracle User muss in der lokalen Administrator Gruppe sein!

Nun erfolgt die Oracle Software Installation. Bei der Oracle Software Installation, habe ich in diesem Beispiel auch gerade die Datenbank erstellt. Vorsicht bei der SID, hier sollten Grossbuchstaben verwendet werden. Zwar funktioniert es auch mit Kleinbuchstaben, jedoch muss beim erstellen des Service auf dem Node02, beim Befehl oradim zwingend Grossbuchstaben verwendet werden. Nach der Installation haben wir zusätzliche lokale Gruppen erhalten:

2016-01-18_09h56_59

Wichtig, die Oracle Software muss auf beiden Servern installiert werden.

Als nächster Schritt, wird Dbvisit Standby installiert. Auf dem Node01(Primary) gibt es nichts besonderes zu beachten, die Installation erfolgt sehr gut geführt. Hier ist nichts besonderes zu beachten, ausser der Konfiguration der Firewall. Hier müssen auf beiden Servern die beiden Ports, TCP 7890(dbvnet Interkommunikation zwischen den Nodes), TCP 8081(HTTP für das Web_Interface) geöffnet werden.

Die Installation der Dbvisit Standby auf dem Node02, da gibt es Punkte zu beachten. Das es auf dem Standby(Node02) keine Datenbank gibt, muss nach der Installation der DBvisit Software mit dem Befehl:

oradim -new -sid ORCL -startmode m

Dadurch wird ein Service erstellt, der benötigt wird um die Datenbank Instanz auf dem Node02 zu erstellen. Dieser Service startet nach einen Neustart auch die entsprechende Datenbank wieder.

 2016-01-18_10h21_48

Konfiguration

Als nächsten Schritt, kann mit der Konfiguration von Dbvisit gestartet werden.

Dazu gibt es zwei Möglichkeiten, die erste ist über eine sehr übersichtliche Web-Oberfläche. Die URL lautet http://node01.localdomain:8081.

2016-01-18_10h25_03

Die zweite Möglichkeit ist eine Text basierte Konfiguration auf der Konsole:

 2016-01-18_10h28_13

Die beiden Möglichkeiten Dbvisit Standby zu Konfigurieren (Konsole oder Web-Oberfläche), sieht unter Windows identisch aus wie unter Linux.

Am Ende der Konfiguration, wir ein Konfigurationsfile(DDC, Dbvisit Database Configuration) erstellt, in dem die Parameter für beide Server(Primary und Standby), das Synchronisieren zwischen den beiden, Mail-Alarmierung, Archivelog Management auf beiden Nodes und noch einiges mehr festgehalten wird. Dbvisit transferiert die Konfiguration auch auf den Standby Server. Die gesamte Kommunikation zwischen den Servern(Primary und Standby) erfolgt durch den Dbvisit eigenen Service(Dbvnet). Dazu musste auf beiden Servern (Node01, Node02) jeweils die Firewall für den Port TCP 7890 geöffnet werden.

Ist die Konfiguration abgeschlossen, kann auf beide Arten(Text basiert oder Web-Oberfläche) die Erstellung der Standby Datenbank gestartet werden.

Dbvisit führt diesen Schritt in wenigen Minuten vollständig und automatisiert durch. Dieser Prozess kann jeweils im Web-Interface oder in der textbasierten Version verfolgt werden.

Ist das erstellen der Standby Database auf dem Node02 abgeschlossen, muss noch die Synchronisation durchgeführt werden. Dazu gibt wieder entweder das Web-Interface oder die textbasierte Oberfläche. Gestartet wird auf dem Node01:

2016-01-18_13h00_03

oder die Text-Konsole, als Beispiel auf dem Node02.

2016-01-18_13h02_28

Um das zu automatisieren wird noch ein Task benötigt, damit regelmässig die Synchronisation startet.

Das kann mittels dem Task Scheduler konfiguriert werden:

2016-01-18_13h10_10

Damit wäre die Konfiguration abgeschlossen.

Graceful Switchover (Cli)

Nun wollen wir den Switchover, jeweils durch das Web-Interface bzw. durch die Textkonsole untersuchen.

Um einen Graceful Switchover durchzuführen, muss die automatische Synchronisation angehalten werden.

Folgende Befehle sollten durchgeführt werden:

Node01: dbvisit orcl
Node02: dbvisit orcl
Node01: dbv_oraStartStop switchover orcl 1111
Node02: dbv_oraStartStop switchover orcl 1111

Die beiden ersten Befehle stellen manuel sicher das Primary und Standby möglichst synchron sind.

Die beiden letzten Befehle lösen den Graceful Switchover aus.

Die Ausgabe an der Konsole des Node01 sieht dann folgendermassen aus:

C:\Program Files (x86)\Dbvisit\Standby>dbv_oraStartStop switchover orcl 1111
=============================================================
Dbvisit Standby Database Technology (7.0.48.15006) (pid 1392)
dbv_oraStartStop started on NODE01: Mon Jan 18 13:24:12 2016 ()
=============================================================

=============================================================
Graceful Switchover starting on Primary Database orcl.
Timestamp: 201601181324.

>>> Database orcl will be shutdown and restarted <<<
Ensure Dbvisit is no longer scheduled.

Obtaining archive log gap....
Contacting Standby Database orcl on NODE02...
Next standby sequence required for recovery (434) for thread 1.

Archive Log Gap for thread 1 is: 0. This is correct to continue.

Please enter unique key to begin graceful switchover for database orcl.
The same key must be entered on both primary and standby server.

Please start command: dbv_oraStartStop switchover orcl
on NODE02 if not already started.

Batch key will be used: 1111
Key 1111 entered.

Contacting NODE02 to ensure the same unique key is entered for orcl.
Waiting for Key 1 on NODE02...
Checkpoint 1 completed. Key found on NODE02
Waiting for Checkpoint 2 on NODE02...
Checkpoint 2 completed. Key found on NODE02
Waiting for Checkpoint 3 on NODE02...
Checkpoint 3 completed. Key found on NODE02
Shutting down regular Database orcl...
Regular Database orcl shutdown successfully.
Windows Service OracleServiceorcl already started.
Starting Regular Database orcl...
Regular Database orcl started restrict.
Performing Oracle Checkpoint.
    Waiting 3 seconds for log switch completion...

Creating standby control file as 'C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.dbvi
sit.1111.orcl.standbycontrolfile'...
Waiting for Checkpoint 4 on NODE02...
Checkpoint 4 completed. Key found on NODE02
Copying new archives for orcl to NODE02...
Compressing  O1_MF_1_434_C9SPG2XB_.ARC...
  > Transferring 'O1_MF_1_434_C9SPG2XB_.ARC.gz' to server NODE02:7890
    Progress: 0%...20%...40%...60%...80%...100% [4989 KB/s] - done.
Compressing  O1_MF_1_435_C9SPJL2H_.ARC...
  > Transferring 'O1_MF_1_435_C9SPJL2H_.ARC.gz' to server NODE02:7890
    Progress: 0%...20%...40%...60%...80%...100% [27154 KB/s] - done.
Shutting down regular Database orcl...
Regular Database orcl shutdown successfully.
Copying redo logs ... this may take a while...
Compressing  X.dbvisit.1111.orcl.redo_1.log...
  > Transferring 'X.dbvisit.1111.orcl.redo_1.log.gz' to server NODE02:7890
    Progress: 0%...20%...40%...60%...80%...100% [195731 KB/s] - done.
Compressing  X.dbvisit.1111.orcl.redo_2.log...
  > Transferring 'X.dbvisit.1111.orcl.redo_2.log.gz' to server NODE02:7890
    Progress: 0%...20%...40%...60%...80%...100% [223546 KB/s] - done.
Compressing  X.dbvisit.1111.orcl.redo_3.log...
  > Transferring 'X.dbvisit.1111.orcl.redo_3.log.gz' to server NODE02:7890
    Progress: 0%...20%...40%...60%...80%...100% [193141 KB/s] - done.
Waiting for Checkpoint 5 on NODE02...
Checkpoint 5 completed. Key found on NODE02
Backing up current control files for orcl NODE01...
Database orcl on NODE01 is already down. No action taken.
Windows Service OracleServiceorcl already started.
Starting Regular Database orcl...
Regular Database orcl started nomount.
Control file backed up as C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.1111
.orcl.controlfile.
Shutting down standby Database orcl...
Standby Database orcl shutdown successfully.
Waiting for Checkpoint 6 on NODE02...
Checkpoint 6 completed. Key found on NODE02
Waiting for Checkpoint 7 on NODE02...
Checkpoint 7 completed. Key found on NODE02
Waiting for Checkpoint 8 on NODE02...
Checkpoint 8 completed. Key found on NODE02
Waiting for Checkpoint 9 on NODE02...
Checkpoint 9 completed. Key found on NODE02
Waiting for Checkpoint 10 on NODE02...
Checkpoint 10 completed. Key found on NODE02
Waiting for Checkpoint 11 on NODE02...
Checkpoint 11 completed. Key found on NODE02
Waiting for Checkpoint 12 on NODE02...
Checkpoint 12 completed. Key found on NODE02
Database orcl on NODE01 is already down. No action taken.
Windows Service OracleServiceorcl already started.
Starting Regular Database orcl...
Regular Database orcl started nomount.
STANDBY control file(s) restored from C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.
dbvisit.1111.orcl.standbycontrolfile.
Shutting down standby Database orcl...
Standby Database orcl shutdown successfully.
Windows Service OracleServiceorcl already started.
Starting Standby Database orcl...
Standby Database orcl started .
Waiting for Checkpoint 13 on NODE02...
Checkpoint 13 completed. Key found on NODE02
Waiting for Checkpoint 14 on NODE02...
Checkpoint 14 completed. Key found on NODE02
File C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env copied to
C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env.201601181324.
Dbvisit Database configuration (DDC) file C:\Program Files
(x86)\Dbvisit\standby\conf\dbv_orcl.env has been updated and variables have been

reversed between primary and standby server.

SOURCE=NODE02 DESTINATION=NODE01.

Waiting for Checkpoint 15 on NODE02...
Checkpoint 15 completed. Key found on NODE02
Uncompressing O1_MF_1_434_C9SPG2XB_.ARC.gz...
Uncompressing O1_MF_1_435_C9SPJL2H_.ARC.gz...
Waiting for Checkpoint 16 on NODE02...
Checkpoint 16 completed. Key found on NODE02
Waiting for Checkpoint 17 on NODE02...
Checkpoint 17 completed. Key found on NODE02
Waiting for Checkpoint 18 on NODE02...
Checkpoint 18 completed. Key found on NODE02

Graceful switchover completed.

This database (orcl) is now a standby database.

To keep this new standby database in synch,
reschedule Dbvisit as per normal:
        dbvisit orcl
=============================================================
dbv_oraStartStop ended on NODE01: Mon Jan 18 13:32:13 2016
=============================================================

Die Ausgabe an der Konsole des Node02:

C:\Program Files (x86)\Dbvisit\Standby>dbv_oraStartStop switchover orcl 1111
=============================================================
Dbvisit Standby Database Technology (7.0.48.15006) (pid 1748)
dbv_oraStartStop started on NODE02: Mon Jan 18 13:24:48 2016 ()
=============================================================

=============================================================
Graceful Switchover starting on Standby Database orcl.
Timestamp: 201601181324.
Database orcl will be shutdown and restarted!
Ensure Dbvisit is no longer scheduled.

Please enter unique key to begin graceful switchover for database orcl.
The same key must be entered on both primary and standby server.

Please start command: dbv_oraStartStop switchover orcl
on NODE01 if not already started.

Batch key will be used: 1111
Key 1111 entered.

Contacting NODE01 to ensure the same unique key is entered for orcl.
Waiting for Key 1 on NODE01...
Checkpoint 1 completed. Key found on NODE01
Waiting for Checkpoint 2 on NODE01...
Checkpoint 2 completed. Key found on NODE01
Waiting for Checkpoint 3 on NODE01...
Checkpoint 3 completed. Key found on NODE01
Tempfiles dropped.
Waiting for Checkpoint 4 on NODE01...
Checkpoint 4 completed. Key found on NODE01
Shutting down standby Database orcl...
Standby Database orcl shutdown successfully.
Waiting for Checkpoint 5 on NODE01...
Checkpoint 5 completed. Key found on NODE01
Uncompressing 1_434_898595433.arc.gz...
Uncompressing 1_435_898595433.arc.gz...
Uncompressing X.dbvisit.1111.orcl.redo_1.log.gz...
Uncompressing X.dbvisit.1111.orcl.redo_2.log.gz...
Uncompressing X.dbvisit.1111.orcl.redo_3.log.gz...
Waiting for Checkpoint 6 on NODE01...
Checkpoint 6 completed. Key found on NODE01
Waiting for Checkpoint 7 on NODE01...
Checkpoint 7 completed. Key found on NODE01
Backing up current control files for orcl NODE02...
Database orcl on NODE02 is already down. No action taken.
Windows Service OracleServiceorcl already started.
Starting Standby Database orcl...
Standby Database orcl started nomount.
Control file backed up as C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.1111
.orcl.stdby_ctl_bck.
Shutting down standby Database orcl...
Standby Database orcl shutdown successfully.
Waiting for Checkpoint 8 on NODE01...
Checkpoint 8 completed. Key found on NODE01
Windows Service OracleServiceorcl already started.
Starting Standby Database orcl...
Standby Database orcl started nomount.
PRIMARY control file(s) restored from C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.
dbvisit.1111.orcl.controlfile.
Mount Database orcl...
Database orcl mounted.
Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_1.log to C:\oradata\ORCL\onlinelog\redo_1_1.log
File C:\FAST_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_1_C729GQGG_.LOG renamed to C:\or
adata\ORCL\onlinelog\redo_1_1.log.

Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_1.log to C:\oradata\ORCL\onlinelog\redo_1_2.log
File C:\ORADATA\ORCL\ONLINELOG\O1_MF_1_C729GPX3_.LOG renamed to C:\oradata\ORCL\
onlinelog\redo_1_2.log.

Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_2.log to C:\oradata\ORCL\onlinelog\redo_2_1.log
File C:\FAST_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_2_C729GR73_.LOG renamed to C:\or
adata\ORCL\onlinelog\redo_2_1.log.

Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_2.log to C:\oradata\ORCL\onlinelog\redo_2_2.log
File C:\ORADATA\ORCL\ONLINELOG\O1_MF_2_C729GQTN_.LOG renamed to C:\oradata\ORCL\
onlinelog\redo_2_2.log.

Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_3.log to C:\oradata\ORCL\onlinelog\redo_3_1.log
File C:\FAST_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_3_C729GRY2_.LOG renamed to C:\or
adata\ORCL\onlinelog\redo_3_1.log.

Copying redo log C:\Program Files (x86)\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.11
11.orcl.redo_3.log to C:\oradata\ORCL\onlinelog\redo_3_2.log
File C:\ORADATA\ORCL\ONLINELOG\O1_MF_3_C729GRMB_.LOG renamed to C:\oradata\ORCL\
onlinelog\redo_3_2.log.

Waiting for Checkpoint 9 on NODE01...
Checkpoint 9 completed. Key found on NODE01
Recovering new primary database...
Catalog archivelog 'C:\dbvisit_archdest\orcl\1_434_898595433.arc'...
Catalog archivelog 'C:\dbvisit_archdest\orcl\1_435_898595433.arc'...
Completed.
Waiting for Checkpoint 10 on NODE01...
Checkpoint 10 completed. Key found on NODE01
Archive log all for Database orcl...
Completed.
Tempfiles dropped.
Waiting for Checkpoint 11 on NODE01...
Checkpoint 11 completed. Key found on NODE01
Open Database orcl...
Database orcl opened.
Waiting for Checkpoint 12 on NODE01...
Checkpoint 12 completed. Key found on NODE01
Waiting for Checkpoint 13 on NODE01...
Checkpoint 13 completed. Key found on NODE01
Waiting for Checkpoint 14 on NODE01...
Checkpoint 14 completed. Key found on NODE01
File C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env copied to
C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env.201601181324.
Dbvisit Database configuration (DDC) file C:\Program Files
(x86)\Dbvisit\standby\conf\dbv_orcl.env has been updated and variables have been

reversed between primary and standby server.

SOURCE=NODE02 DESTINATION=NODE01.

Waiting for Checkpoint 15 on NODE01...
Checkpoint 15 completed. Key found on NODE01
Tempfiles created.

FORCE LOGGING is turned on in the primary database orcl on NODE02.
Waiting for Checkpoint 16 on NODE01...
Checkpoint 16 completed. Key found on NODE01
Compressing  1_434_898595433.arc...
Compressing  1_435_898595433.arc...
Waiting for Checkpoint 17 on NODE01...
Checkpoint 17 completed. Key found on NODE01
Waiting for Checkpoint 18 on NODE01...
Checkpoint 18 completed. Key found on NODE01

Graceful switchover completed.

This database (orcl) is now the primary database.

You may consider re-creating a password file to make sure all sysdba passwords are preserved.
To keep the standby database on NODE01 in synch with this primary database,
reschedule Dbvisit as per normal:
        dbvisit orcl
=============================================================
dbv_oraStartStop ended on NODE02: Mon Jan 18 13:32:11 2016
=============================================================

Somit haben die beiden Nodes die Rolle getauscht. Die Datenbank orcl ist nun als primary auf dem Node02 und die Standby befindet sich auf dem Node01.

Um den originalen Zustand wieder herzustellen, gehen wir wieder zurück. Dieses mal mit dem Web-Interface.

Graceful Switchover (Web Interface)

Die Dbvisit Web-Oberfläche ist sehr übersichtliche. Ich verbinde mich auf den Node01 um dort die Operationen zu starten.

2016-04-11_09h35_10

Ja, klar! Diese Operationen sind nur auf dem primären Node erlaubt, und das ist der Node02 nach dem letzten Switchover.

2016-04-11_09h28_35

Schon besser, damit habe ich den Switchover von Node02 zurück auf Node01 auf dem Node02 gestartet. Wieder wird ein eindeutiger Key verwendet um sicherzustellen, dass genau dieser Prozess weitergeführt werden soll, sobald ich den Key auch auf dem Node01 eingegeben habe.

2016-04-11_09h27_24

Ist die Eingabe erfolgt, geht es weiter im Prozess des Switchovers.

2016-04-11_09h44_34

 

Verläuft alles korrekt, so ist zum Abschluss, gesamter Log:

=============================================================
Graceful Switchover starting on Primary Database orcl.
Timestamp: 201604110926.

>>> Database orcl will be shutdown and restarted <<<
Ensure Dbvisit is no longer scheduled.

Obtaining archive log gap....
Contacting Standby Database orcl on NODE01...
Next standby sequence required for recovery (445) for thread 1.

Archive Log Gap for thread 1 is: 0. This is correct to continue. 

Please enter unique key to begin graceful switchover for database orcl. 
The same key must be entered on both primary and standby server. 

Please start command: dbv_oraStartStop.exe switchover orcl 
on NODE01 if not already started. 

Batch key will be used: 1122 
Key 1122 entered. 

Contacting NODE01 to ensure the same unique key is entered for orcl. 
Waiting for Key 1 on NODE01... 
Checkpoint 1 completed. Key found on NODE01 
Waiting for Checkpoint 2 on NODE01... 
Checkpoint 2 completed. Key found on NODE01 
Waiting for Checkpoint 3 on NODE01... 
Checkpoint 3 completed. Key found on NODE01 
Shutting down regular Database orcl... 
Regular Database orcl shutdown successfully. 
Windows Service OracleServiceorcl already started. 
Starting Regular Database orcl... 
Regular Database orcl started restrict. 
Performing Oracle Checkpoint.  
	Waiting 3 seconds for log switch completion...

Creating standby control file as 'C:\PROGRA~2\Dbvisit\standby\tmp\GS
\orcl\X.dbvisit.1122.orcl.standbycontrolfile'... 
Waiting for Checkpoint 4 on NODE01... 
Checkpoint 4 completed. Key found on NODE01 
Copying new archives for orcl to NODE01... 
Compressing O1_MF_1_445_CJPNKFTH_.ARC... 
	Transferring 'O1_MF_1_445_CJPNKFTH_.ARC.gz' to server NODE01:7890
	Progress: 0%...20%...40%...60%...80%...100% [38631 KB/s] 
Compressing O1_MF_1_446_CJPNMY6F_.ARC... 
	Transferring 'O1_MF_1_446_CJPNMY6F_.ARC.gz' to server NODE01:7890
	Progress: 0%...20%...40%...60%...80%...100% [99472 KB/s] 
Shutting down regular Database orcl...
Regular Database orcl shutdown successfully.
Copying redo logs ... this may take a while... 
Compressing X.dbvisit.1122.orcl.redo_1.log... 
	Transferring 'X.dbvisit.1122.orcl.redo_1.log.gz' to server NODE01:7890
	Progress: 0%...20%...40%...60%...80%...100% [239504 KB/s] 
Compressing X.dbvisit.1122.orcl.redo_2.log... 
	Transferring 'X.dbvisit.1122.orcl.redo_2.log.gz' to server NODE01:7890
	Progress: 0%...20%...40%...60%...80%...100% [66125 KB/s] 
Compressing X.dbvisit.1122.orcl.redo_3.log...
	Transferring 'X.dbvisit.1122.orcl.redo_3.log.gz' to server NODE01:7890
	Progress: 0%...20%...40%...60%...80%...100% [232851 KB/s] 
Waiting for Checkpoint 5 on NODE01... 
Checkpoint 5 completed. Key found on NODE01 
Backing up current control files for orcl NODE02... 
Database orcl on NODE02 is already down. No action taken. 
Windows Service OracleServiceorcl already started. 
Starting Regular Database orcl... 
Regular Database orcl started nomount. 
Control file backed up as C:\PROGRA~2\Dbvisit\standby\tmp\GS\orcl\X.dbvisit.1122.orcl.controlfile. 
Shutting down standby Database orcl... 
Standby Database orcl shutdown successfully. 
Waiting for Checkpoint 6 on NODE01... 
Checkpoint 6 completed. Key found on NODE01 
Waiting for Checkpoint 7 on NODE01... 
Checkpoint 7 completed. Key found on NODE01 
Waiting for Checkpoint 8 on NODE01... 
Checkpoint 8 completed. Key found on NODE01 
Waiting for Checkpoint 9 on NODE01... 
Checkpoint 9 completed. Key found on NODE01 
Waiting for Checkpoint 10 on NODE01... 
Checkpoint 10 completed. Key found on NODE01 
Waiting for Checkpoint 11 on NODE01... 
Checkpoint 11 completed. Key found on NODE01 
Waiting for Checkpoint 12 on NODE01... 
Checkpoint 12 completed. Key found on NODE01 
Database orcl on NODE02 is already down. No action taken. 
Windows Service OracleServiceorcl already started. 
Starting Regular Database orcl... 
Regular Database orcl started nomount. 
STANDBY control file(s) restored from C:\PROGRA~2\Dbvisit\standby\tmp\GS
\orcl\X.dbvisit.1122.orcl.standbycontrolfile. 
Shutting down standby Database orcl... 
Standby Database orcl shutdown successfully. 
Windows Service OracleServiceorcl already started. 
Starting Standby Database orcl... 
Standby Database orcl started . 
Waiting for Checkpoint 13 on NODE01... 
Checkpoint 13 completed. Key found on NODE01 
Waiting for Checkpoint 14 on NODE01... 
Checkpoint 14 completed. Key found on NODE01 
File C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env copied to 
C:\Program Files (x86)\Dbvisit\standby\conf\dbv_orcl.env.201604110926. 
Dbvisit Database configuration (DDC) file C:\Program Files 
(x86)\Dbvisit\standby\conf\dbv_orcl.env has been updated and variables have 
been reversed between primary and standby server. 

SOURCE=NODE01 DESTINATION=NODE02. 

Waiting for Checkpoint 15 on NODE01... 
Checkpoint 15 completed. Key found on NODE01 
Uncompressing O1_MF_1_445_CJPNKFTH_.ARC.gz... 
Uncompressing O1_MF_1_446_CJPNMY6F_.ARC.gz... 
Waiting for Checkpoint 16 on NODE01... 
Checkpoint 16 completed. Key found on NODE01 
Waiting for Checkpoint 17 on NODE01... 
Checkpoint 17 completed. Key found on NODE01 
Waiting for Checkpoint 18 on NODE01... 
Checkpoint 18 completed. Key found on NODE01 

Graceful switchover completed. 

This database (orcl) is now a standby database. 
To keep this new standby database in synch, 
reschedule Dbvisit as per normal: 
dbvisit orcl

Wie im Log zu sehen ist, ist der Switchover erfolgreich gewesen und die Datenbank läuft nun wieder auf dem primären Node01.

Bei den Varianten eines Switchovers wir grundsätzlich unterschieden zwischen einem Kontrollierten Switchover (Graceful Switchover) und einem richtigen Failover, nach einem Ausfall des Primären Servers.

Failover

Den ersten Fall haben wir nun bereits durchgespielt, jetz möchte ich noch den Failover nach einem Ausfall des primären Servers sehen:

Dazu stoppe ich den primären Server Node01 und verbinde mich auf das Web-Interface des Node02:

Jetzt gehe ich unter HOME->RUN->RUN INTERACTIVE auf den Standby Server und wähle dort Activate aus:

2016-04-11_10h20_38

2016-04-11_10h23_04

Somit erzwinge ich die Standby Database die Rolle als primäre Database zu übernehmen! Dabei gibt es keinen Weg mehr zurück zur alten primären Datenbank auf dem Node01!

2016-04-11_10h26_22

Somit haben wir jetzt keine Standby Datenbank mehr, diese muss nun neu aus der aktuellen primären Datenbank auf dem Node02 erstellt werden.

Damit die Standby neu erstellt werden kann, muss sie zuerst gestoppt werden auf dem Node01, danach kann eine neue Standby erstellt werden, diese Aufgabe kann Dbvisit Standby vollständig übernehmen. Achtung, nicht vergessen auf dem alten primären Server Node01, müssen alle alten Datenbankfiles gelöscht werden, bevor der Prozess zur Erstellung der Standby Datenbank gestartet wird.

Fazit

Der Einsatz des Produktes Dbvisit Standby eignet sich ausgezeichnet um eine Hochverfügbarkeitslösung basierend auf Oracle Standardedition zu erstellen. Es ist nicht möglich eine 0 Downtime Lösung zu erstellen, jedoch kann eine RTO von < 10 Minuten erreicht werden. Die RPO nahe 0. In einem Worstcase, können je nach Konfiguration auch kleinere Werte erreicht werden. Das Produkt Dbvisit arbeitet auch auch unter Windows zuverlässig und ist über eine Web-Oberfläche sehr gut zu bedienen. Damit ist es eine gute Alternative, unter Linux oder Windows wenn eine Oracle Enterprise Edition zum Einsatz kommt um Hochverfügbare Datenbanken zu betreiben.