Blog Name
  • August 2018

18c: Neuerungen bei RMAN DUPLICATE

Mit der neuen Datenbankversion 18c wurden neben großen neuen Features ebenfalls eine Vielzahl an kleinen Verbesserungen bestehender Funktionen implementiert. Einer der in der neuen Version erweiterten Funktionalitäten ist das RMAN DUPLICATE. Hierbei wurden neuen Optionen im Bezug auf Multitenant, Cloud und Verschlüsselung eingeführt.
Im weiteren Verlauf des Artikels werden Ihnen diese Funktionalitäten näher beschrieben und ihre Funktionsweise erläutert:

  • Wiederverwendung von RMAN Backups nach der Migration
  • RMAN Duplicate mit "AS ENCRYPTED / AS DECRYPTED"
  • Duplizieren von Pluggable Databases mit RMAN

Wiederverwendung von RMAN Backups nach der Migration

Mit der Einführung der Oracle Datenbank 18c wurden Verbesserungen der Wiederherstellbarkeit von Datenbanken und PDBs nach Migrationen eingeführt. Bei Migration einer DB bzw. PDB stellt oftmals die Sicherstellung der Wiederherstellbarkeit der Daten in der neuen Umgebung eine Herausforderung dar. Diese Thematik ist besonders kritisch, wenn die Daten in die neue Umgebung migriert wurden, jedoch noch kein neues RMAN-FULL-Backup abgeschlossen wurde.
Ab der Version 18c ist es möglich, die in der "alten" Umgebung erstellten RMAN Sicherungen zur Wiederherstellung der Daten in der "neuen" Umgebung zu verwenden. Mit der Einführung dieser Funktionalität wird die Sicherstellung der Wiederherstellbarkeit in Migrationsszenarien wesentlich vereinfacht.

RMAN Duplicate mit "AS ENCRYPTED / AS DECRYPTED"

Der Anwendungsfall PDBs oder gar ganze Datenbanken via RMAN Duplicate in die Cloud zu verlagern gewinnt immer mehr an Beliebtheit. Aus diesem Grund wurden mit der Version 18c die Möglichkeiten in diesem Umfeld ausgebaut.
Alle in der Oracle Cloud befindlichen Oracle Datenbanken sind mit Hilfe von Transparent Data Encryption verschlüsselt. Falls Sie nun eine unverschlüsselte on-premises Datenbank in die Cloud duplizieren wollen, muss diese verschlüsselt zu übertragen und abzulegen.
In der Oracle Datenbank Version 18c ist es möglich bereits mit dem Absetzen des RMAN DUPLICATE Befehls die Verschlüsselung des Transports und der Zielumgebung sicherzustellen. Das hinzuzufügende Schlüsselwort lautet "AS ENCRYPTED". Falls die Notwendigkeit besteht, eine unverschlüsselte Datenbank aus einer verschlüsselten zu erstellen, kann die eingeführte "AS DECRYPTED" verwendet werden.

Duplizieren von Pluggable Databases

Bis zur Version 18c war es mit RMAN Duplicate möglich aus einer Container Database (CDB) eine neue CDB zu erstellen. Dabei konnte ebenfalls bestimmt werden, ob alle oder lediglich bestimmte PDBs in die neue Umgebung übertragen werden sollen. Dies stellt eine gute Möglichkeit dar ein neues Abbild einer bestehenden CDB zu erstellen. Aber falls die Ziel-Umgebung bereits existiert und lediglich einzelne PDBs übertragen werden müsste, ist diese Möglichkeit keine Option.
Mit der Version 18c wurde nun die Möglichkeit eingeführt via RMAN Duplicate Befehl eine oder mehrere PDBs in eine bestehende CDB zu übertragen. Die nachfolgende Demo zeigt die Handhabung dieser Funktionalität:

Beschreibung der Ausgangssituation:

  • Es existieren zwei Datenbanken der Version 18c, naments DB18C und TESTDB
  • In der Datenbank DB18C befindet sich einen Pluggable Database CRM, welche in die CDB TESTDB dupliziert werden soll.
  • Die Dateisystemstruktur der beiden Umgebungen ist gleich.

Die folgende Abfrage zeigt, dass aktuell noch keine Pluggable Database mit dem Namen CRM in der Container Database TESTDB existiert.

SQL> Select instance_name from v$instance;

INSTANCE_NAME
----------------
TESTDB	

SQL> Select pdb_name, STATUS, CREATION_TIME from dba_pdbs where pdb_name='CRM';

no rows selected

Nach der Einrichtung der TNSNAMES-Einträge rufen wir den Oracle Recovery Manager(RMAN) auf und verbinden uns an beide Datenbanken.

[oracle@tddb18c ~]$ rman

Recovery Manager: Release 18.0.0.0.0 - Production on Fri Aug 24 15:12:26 2018
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

RMAN> CONNECT auxiliary "sys@TESTDB as sysdba"

auxiliary database Password:
connected to auxiliary database: TESTDB (DBID=2768335232)

RMAN> connect target "sys@DB18C as sysdba"

target database Password:
connected to target database: DB18C (DBID=974033533)

Nachdem wir uns erfolgreich gegen beide Datenbanken verbunden haben, führen wir den unten stehenden RMAN-Befehl zur Duplizierung der PDB CRM aus. Das neu eingeführte Schlüsselwort dieses Features ist "DUPLICATE PLUGGABLE DATABASE" anstatt lediglich DUPLICATE DATABASE aufzurufen.

RMAN>  DUPLICATE PLUGGABLE DATABASE 'CRM' TO 'TESTDB' NOFILENAMECHECK FROM ACTIVE DATABASE ;

Starting Duplicate PDB at 24-AUG-18
using channel ORA_AUX_DISK_1

current log archived

contents of Memory Script:
{
   set newname for clone datafile  13 to new;
   set newname for clone datafile  14 to new;
   set newname for clone datafile  15 to new;
   set newname for clone datafile  16 to new;
   restore
   from  nonsparse   clone foreign pluggable database
    "CRM"
   from service  'DB18C'   ;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 24-AUG-18
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring foreign file 13 to /u01/TestDB/TESTDB/742F1EF7DB5B4FD4E055000000000001/datafile/o1_mf_system_bqtbc8k4_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring foreign file 14 to /u01/TestDB/TESTDB/742F1EF7DB5B4FD4E055000000000001/datafile/o1_mf_sysaux_dktbc8k7_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring foreign file 15 to /u01/TestDB/TESTDB/742F1EF7DB5B4FD4E055000000000001/datafile/o1_mf_undotbs1_1atbc8ke_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring foreign file 16 to /u01/TestDB/TESTDB/742F1EF7DB5B4FD4E055000000000001/datafile/o1_mf_crm_69tbc8kf_.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 24-AUG-18
current log archived

contents of Memory Script:
{
   set archivelog destination to  '/u02';
   restore clone force from service  'DB18C'
           foreign archivelog from scn  1556665;
}
executing Memory Script

executing command: SET ARCHIVELOG DESTINATION

Starting restore at 24-AUG-18
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to user-specified destination
archived log destination=/u02
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=5
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to user-specified destination
archived log destination=/u02
channel ORA_AUX_DISK_1: using network backup set from service DB18C
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=6
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 24-AUG-18

Performing import of metadata...
Finished Duplicate PDB at 24-AUG-18


Nach Beendigung des Duplizierungsvorgangs prüfen wir ob in der Container Database TESTDB nun eine Pluggable Database CRM existiert. Falls die Umgebungen eine unterschiedliche Filesystemstruktur aufweisen sollten, muss diese per DB_FILE_NAME_CONVERT Klausel abgebildet werden.

SQL> Select instance_name from v$instance;

INSTANCE_NAME
----------------
TESTDB	

SQL> Select pdb_name, STATUS, CREATION_TIME from dba_pdbs where pdb_name='CRM'

PDB_NAME		 STATUS     CREATION_TIME
------------------------ ---------- ------------------
CRM			 NORMAL     24-AUG-18

Diese neue Funktionalität ermöglicht einen wesentlich flexibleren Umgang mit Pluggable Databases. Besonders wenn diese beispielsweise peu à peu in einen neue CDB übertragen werden sollen.


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