Blog Name
  • Oktober 2018

18c: Neuerungen bei Oracle Data Guard

Mit der Version 18c wurden in allen Bereichen der Oracle Datenbank Neuerungen und Verbesserungen eingeführt. Besonders im Umfeld der Hochverfügbarkeit gab es eine Vielzahl an Weiterentwicklungen. In dem folgenden Artikel möchte ich besonders ein Augenmerk auf die Verbesserungen im Bereich von Oracle Data Guard legen und Ihnen einige dieser Neuerungen genauer vorstellen.

Im weiteren Verlauf des Eintrags möchte ich auf folgende Weiterentwicklungen weiter eingehen:

  • Global Temporary Tables auf Active Data Guard Instanzen
  • Vereinfachung der Wiederherstellung von Standby Datenbanken
  • Einführung neuer Möglichkeiten für den Oracle Data Guard Broker

Global Temporary Tables auf Active Data Guard Instanzen

Mit der Version 11.2 der Oracle Datenbank wurde eine Funktionalität namens Active Data Guard eingeführt, welche die Möglichkeit bietet die Oracle Data Guard Standby Datenbank für Select-Operationen zu verwenden. Dies eröffnete eine Vielzahl an Möglichkeiten, wie beispielweise umfangreiche analytische Abfragen von der Primary- auf die Standby-Datenbank zu verlagern und somit die primäre Datenbank somit zu entlasten. Ein limitierender Faktor für diesen Anwendungsfall war die Notwenigkeit von temporären Tabellen als Daten-Puffer für einige dieser analytischen Werkzeuge. Denn bis zur Version 12.2 war es nicht möglich Globale Temporary Tables (GTT) zu erstellen. Mit der Oracle Datenbankversion 18c wurde nun eine Möglichkeit eingeführt diese temporären Datenstrukturen auf der Standby-Datenbank zu erstellen.
Im Folgenden möchte ich Ihnen diese Neuerung genauer beschreiben.
Um eine GTT auf der Standby-Datenbank zu erstellen, können Sie das DDL in einer Session auf der Standby-DB ausführen.

SQL> CREATE GLOBAL TEMPORARY TABLE tab1(c1 number, c2 varchar(10)) ON COMMIT PRESERVE ROWS;  

Table created. 
SQL>

Im Anschluss wird dieses Statement implizit an die primäre Datenbank übergeben und dort ausgeführt. Nachdem die Definition dieser Tabelle an die Standby-Instanz übertragen wurde, ist diese Datenstruktur auch auf der Standby-Datenbank sichtbar und kann verwendet werden.

Vereinfachung der Wiederherstellung von Standby Datenbanken

Bei der Verwendung von Oracle Data Guard kommt es aus verschiedenen Gründen vor, dass die Verbindung der Primary und der Standby Datenbank getrennt werden muss. Falls diese Situation der Trennung dieser Umgebungen für eine geraume Zeit anhält, kann es möglich sein, dass die Datenstände und Konfiguration dieser Instanzen differgieren. Im diesem Fall muss die Standby-Umgebung mit dem neuen Datenstand der primären Datenbank aktualisiert werden. Bisher waren für diese Aufgabe eine Vielzahl manueller Schritte notwendig. Mit der Datenbankversion 18c wurden diese Schritte nun automatisiert und somit der administrative Aufwand verringert.
Um die Aktualisierung der Standby Datenbank anzustoßen ist nun lediglich ein RMAN-Kommando „RECOVER STANDBY DATABASE“ vonnöten. Mit der Klausel „FROM SERVICE“ wird angegeben von welcher primären Datenbank die Konfiguration und die Daten übertragen werden sollen.

Im folgenden Beispiel wird eine Standby-Datenbank vom Service ORCL der primären Datenbank aktualisiert.

[oracle@tddb18c admin]$ rman target /
 
Recovery Manager: Release 18.0.0.0.0 - Production on Wed Oct 25 11:02:24 2018
Version 18.3.0.0.0
 
Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: ORCL_STBY (DBID=6273781454)
 
RMAN>  RECOVER STANDBY DATABASE FROM SERVICE ORCL;
 
Starting recover at 25-OCT-18
using target database control file instead of recovery catalog
Executing: alter database flashback off
Oracle instance started
 
Total System Global Area     956299440 bytes
 
Fixed Size                     8902832 bytes
Variable Size                348127232 bytes
Database Buffers             595591168 bytes
Redo Buffers                   3678208 bytes
 
contents of Memory Script:
{
   restore standby controlfile from service  'ORCL';
   alter database mount standby database;
}
executing Memory Script
 
Starting restore at 25-OCT-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 device type=DISK
 
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: using network backup set from service ORCL
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/u01/app/oracle/oradata/ORCL/control01.ctl
output file name=/u01/app/oracle/oradata/ORCL/control02.ctl
Finished restore at 25-OCT-18
 
released channel: ORA_DISK_1
Statement processed
 
executing command: SET NEWNAME
 
Starting restore at 25-OCT-18
Starting implicit crosscheck backup at 25-OCT-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=51 device type=DISK
Crosschecked 5 objects
Finished implicit crosscheck backup at 25-OCT-18
 
Starting implicit crosscheck copy at 25-OCT-18
using channel ORA_DISK_1
Finished implicit crosscheck copy at 25-OCT-18
 
searching for all files in the recovery area
cataloging files...
cataloging done
 
List of Cataloged Files
=======================
File Name: /u01/app/oracle/fast_recovery_area/ORCL/ORCL/archivelog/2018_10_25/o1_mf_1_32_fs82o499_.arc
File Name: /u01/app/oracle/fast_recovery_area/ORCL/ORCL/archivelog/2018_10_25/o1_mf_1_33_fs8q4k63_.arc
File Name: /u01/app/oracle/fast_recovery_area/ORCL/ORCL/archivelog/2018_10_25/o1_mf_1_34_fs8r77f8_.arc
File Name: 
…
…
 
contents of Memory Script:
{
  recover database from service  'ORCL';
}
executing Memory Script
 
Starting recover at 25-OCT-18
using channel ORA_DISK_1
skipping datafile 14; already restored to SCN 3452028
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: using network backup set from service ORCL_SITE
destination for restore of datafile 00001: /u01/app/oracle/oradata/ORCL/system01.dbf
channel ORA_DISK_1: restore complete, elapsed time: 00:00:32
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: using network backup set from service ORCL_SITE
destination for restore of datafile 00003: 
…
…
destination for restore of datafile 00012: /u01/app/oracle/oradata/ORCL/PDB1/users01.dbf
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: using network backup set from service ORCL_SITE
destination for restore of datafile 00014: /u01/app/oracle/oradata/ORCL/PDB1/tbs_perf.dbf
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
 
starting media recovery
 
media recovery complete, elapsed time: 00:00:00
Finished recover at 25-OCT-18
flashback needs to be reenabled on standby open
Finished recover at 25-OCT-18
 
RMAN>

Durch die Einführung dieser Funktionalität wurde der Prozess eines "Refreshs" einer Oracle Data Guard Stanby wesentlich vereinfacht und optimiert.

Einführung neuer Möglichkeiten für den Oracle Data Guard Broker

Mit der Datenbank Version 18c wurden ebenfalls Verbesserungen für den Oracle Data Guard Broker eingeführt. Zu diesen Anpassungen zählen Funktionalitäten, die mit neu implementierten Befehlen angesprochen werden können.
Nachfolgend möchte ich die neuen Kommandos auflisten und jeweils kurz einzeln darauf eingehen:

VALIDATE DATABASE SPFILE
Validierung der Primary- und Standby-SPFILEs zur Identifikation von Differenzen

VALIDATE NETWORK CONFIGURATION
Durchführung von Verbindungstests zu allen Umgebungen der Broker-Konfiguration

VALIDATE STATIC CONNECT IDENTIFIER
Validierung der statischen Connections aller Umgebungen

SET ECHO
Steuerung der Ausgabe von ausgeführten DGMGRL Befehlen

SHOW ALL
Ausgabe der Einstellungen des DGMGRL CLIs

Desweiteren wurden auf unserem Blog bereits zu vielen neuen Funktionalitäten der Oracle Datenbank 18c separate Einträge verfasst:

Weitere Informationen

 

Zurück zur Community-Seite
 

Visit the Oracle Blog

 

Contact Us

Oracle

Integrated Cloud Applications & Platform Services