Es ist soweit – nach und nach nehmen die Migrationsprojekte auf Oracle 18 Fahrt auf.
Eine sehr cooles Feature in Oracle 18 ist, dass man in einer Multi- oder auch Single-Tenant-Umgebung eine neue PDB aus einer vorhandenen Non-CDB clonen kann.
Voraussetzungen hierfür sind:
- eine Quell-Datenbank mindestens Version 12.1.0.2
- ein User in dieser Quell-Datenbank mit dem CREATE PLUGGABLE DATABASE Privileg
- Ein Database Link von der Ziel-CDB zur Quell-Non-CDB, der den o.g. User als connect verwendet.
- in der CDB sind mindestens die Komponenten installiert, die auch in der Quell-Datenbank vorhanden sind. Ausnahme: APEX – dies sollte nicht in der CDB, sondern nur, falls erforderlich, in der / den PDB(s) installiert werden.
Sind diese Voraussetzungen erfüllt, kann man ganz einfach die neue PDB mit dem Befehl
CREATE PLUGGABLE DATABASE mypdb FROM NON$CDB@clone_dblink;
anlegen.
Klappt wunderbar und dauert auch gar nicht lang: bei einem Test brauchte der Clone einer 425GB großen Quell-Datenbank ca. 45 Minuten. Allerdings muss man natürlich die neue PDB noch auf den Stand der CDB (also in dem Fall 18.3) bringen – heißt also: Upgrade der PDB mit catcon.pl.
SQL> alter pluggable database newpdb open upgrade;
SQL> exit
cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl catctl.pl -c „NEWPDB“ -l /u01/app/oracle/admin/MYCDB/script/upgrade catupgrd.sql
Die neue PDB ist jetzt ebenfalls eine 18! Allerdings ist der Modus momentan noch „Restricted“, was daraus resultiert, dass die neue PDB von einer Non-CDB geklont wurde – daher muss noch das Skript $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql ausgeführt werden.
Nun ist die neue PDB bereit zur Verwendung!