Recovering from a PDB Snapshot / Restore a PDB Using a Snapshot

 E' possibile creare un nuovo pdb da uno snapshot esistente, ad esempio da uno snapshot coursel.

Vedi post PDB snapshot Carousel

Mi collego al pdb PDL001 creato dagli snapshot e creo una tabella per fare un test successivamente.


SQL> show con_name

CON_NAME

------------------------------

PDL001


SQL> create user pippo identified by pippo;

SQL> grant create table to pippo;

SQL> create table pippo.pluto (n number);


Per risalire agli snapshot:

SET LINESIZE 150 TAB OFF
COLUMN con_name FORMAT A10
COLUMN snapshot_name FORMAT A30
COLUMN snapshot_scn FORMAT 9999999
COLUMN full_snapshot_path FORMAT A50

SELECT con_id,
con_name,
snapshot_name,
snapshot_scn,
full_snapshot_path
FROM cdb_pdb_snapshots
ORDER BY con_id, snapshot_scn;

Se volessimo creare un pdb per testing, oppure restorare un pdb in un certo momento usare la sintassi CREATE PLUGGABLE DATABASE … USING SNAPSHOT.

SQL> alter session set container=cdb$root;

SQL> CREATE PLUGGABLE DATABASE PDL001_TEST 
        FROM PDL001 
         USING SNAPSHOT SNAP_2468369154_1072208281;

SQL> alter pluggable database PDL001_TEST open;

SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED        READ ONLY NO
4 PDL001              READ WRITE NO
5 PDL01                READ WRITE NO
6 PDL001_TEST  READ WRITE NO

Ho scelto uno snapshot precedente alla creazione della tabella "pluto" ed in effetti il nuovo pdb non la contiene:

SQL> alter session set container=PDL001_TEST;

SQL> select * from pippo.pluto;

ERROR at line 1:
ORA-00942: table or view does not exist


Invece la tabella è presente nel pdb originario.

SQL> alter session set container=PDL001;

SQL> select * from pippo.pluto;

no rows selected


Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione