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
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:
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