Post

Visualizzazione dei post da maggio, 2021

Dropping a PDB Snapshot

Puoi droppare un PDB snapshot eseguando l'istruzione ALTER PLUGGABLE DATABASE ....DROP SNAPSHOT. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- 4 PDL001 READ WRITE NO SQL> ALTER PLUGGABLE DATABASE DROP SNAPSHOT NAP_139316918_1072964565; SNAP_139316918_1072964565 è il nome di un particolare snapshot.   Per droppare tutti i PDB snapshots basati su un PDB, impostare all'interno del pdb il parametro MAX_PDB_SNAPSHOTS a zero. SQL> ALTER PLUGGABLE DATABASE SET MAX_PDB_SNAPSHOTS=0; La seguente query non restituisce record perchè questa view populata solo quando i PDB snapshots che sono sparse: SQL> SELECT COUNT(*)            FROM DBA_PDB_SNAPSHOTFILE; COUNT(*) ---------- 0

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 PD

PDB snapshot Carousel

Cosa sono glii snapshot PDB? sono point-in time copy di un PDB. Oracle 12.2 ha introdotto la funzione di unplug/plugin che permette la creazione di “PDB archive files” che sono una copia zippata dei datafiles e del file xml del PDB interessato. Vedi post  PDB Archive Files for Unplug and Plugin Da Oracle 18c il PDB snapshot è a tutti gli effetti un PDB archive file ma creato con il PDB open (in stato read-write o read-only). Un PDB snapshot è perciò una copia point-in-time del PDB, che può essere usato per scopi di recovery e per produrre nuovi PDB in un determinato istante. Possono essere creati manualmente o automaticamente e gli archive file possono essere messi nella stessa directory che contiene i datafiles del PDB o, se usato Oracle Managed Files (OMF), sono posti nella directory indicata da parametro DB_CREATE_FILE_DEST. Dalla versione 18 è stato introdotto il concetto di   snapshot Carousel  che è una raccolta di snapshot, definiti da parametro MAX_PDB_SNAPSHOTS (di default è

Gli oggetti LOB importati sono inferiori all'export

Vedere (Doc ID 1595391.1) Dopo aver effettuato l'import con successo mi sono accorto che il numero di LOB importati è 3 inferiore al numero di LOB esportati che sono 39. SQL> select count(*) from obj where object_type='LOB'; oppure SQL> select count(*) from dba_objects where owner like 'EDEL%' and object_type = 'LOB' --------- 39 Nel db srogente ho 39 LOB perchè questi oggetti sono ancora prensenti nel recyclebin. Ciò avviene se droppo una tabella contenente una colonna di tipo LOB. La query precedente la conta ancora perchè non è stato svuotato il reciclebyn e quindi gli oggetti di tipo LOB esistono ancora nel recyclebin. SOLUZIONE Il Recyclebin deve essere ripulito per rimuvere questi oggetti da DBA_OBJECTS oppure usare la tabella DBA_LOBS. Ripetere ls seguente query su entrambi gli ambienti: SQL> select count(*) from dba_lobs where owner like 'EDEL%' ------------------- 3 Il risultato anche nel db sorgente è 3, confermato

PDB Archive Files for Unplug and Plugin

Oracle 12.2 ha introdotto la funzione di unplug/plugin che permette la creazione di “PDB archive files” che sono una copia zippata dei datafiles e del file descrittore xml del PDB interessato. Supponiamo di dover spostare il pluggable PDL01  dal container CDB19L01 al container CDB19L02. Questa è la situazione attuale: SQL> show pdbs     CON_ID CON_NAME                       OPEN MODE  RESTRICTED ---------- ------------------------------ ---------- ----------          2 PDB$SEED                       READ ONLY  NO          3 PDL01                          READ WRITE NO SQL> alter session set container=PDL01; SQL> show pdbs     CON_ID CON_NAME                       OPEN MODE  RESTRICTED ---------- ------------------------------ ---------- ----------          3 PDL01                          READ WRITE NO SQL> select * from user1.emp;          X ----------          1          2          2          3          4 1) Chiuedere il pdb SQL>   ALTER PLUGGABLE DATABASE  PDL01 CLOS