Oracle
 sql >> Database >  >> RDS >> Oracle

È nei dettagli

Ho un database multitenant Oracle 12.1.0.2 da cui sto cercando di rimuovere un PDB. Tuttavia, ho erroneamente rimosso la memoria dal server del database e il PDB non può accedere ai suoi file. Quando si scollega il PDB, viene visualizzato il seguente errore:

SQL> alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml';
alter pluggable database GOLD2019_08_22_125953 unplug into '/tmp/GOLD2019_08_22_125953.xml'
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 50277 - see DBWR trace file
ORA-01110: data file 50277:
'/u01/app/oracle/oradata/mt_golden_2019_08_22_125953/data03/datafile_20.dbf'

Ebbene, è un peccato, ma nel mio caso c'è da aspettarselo. Ho erroneamente cancellato lo spazio di archiviazione per questo PDB prima di scollegarlo. La maggior parte della letteratura sul sito di supporto di Oracle dice di ripristinare il PDB dal backup. Ma questo PDB è un clone della produzione e non mi interessa eseguirne il backup. Sono 25+TB e se qualcosa va storto, rimuovo il PDB e creo un nuovo clone di produzione. Non è necessario alcun backup tranne May per salvarmi dal mio stupido errore di rimuovere lo spazio di archiviazione prima di scollegare.

Dal momento che non riuscivo a scollegare il PDB, ho tentato di eliminare il PDB ma ottengo un errore diverso:

SQL> drop pluggable database GOLD2019_08_22_125953 keep datafiles;
drop pluggable database GOLD2019_08_22_125953 keep datafiles
*
ERROR at line 1:
ORA-65179: cannot keep datafiles for a pluggable database that is not unplugged

Ora mi sento come se fossi in una situazione di Catch-22. Non riesco a scollegare il PDB né a rilasciarlo.

Ho visto questo errore in molte occasioni e ho sempre desiderato poter semplicemente eliminare il PDB senza doverlo prima scollegare. Non ho alcun desiderio di collegarlo a un altro CDB. Voglio solo che la cosa vada per sempre. Ed è allora che ho capito che è nei dettagli. Quando ho letto quel messaggio di errore ORA-65179, mi sono concentrato sull'ultima parte di esso. Il PDB non viene prima scollegato. Ho letto questo messaggio di errore almeno 20 volte nel mio lavoro con Multitenant e ho perso il dettaglio critico che mi ha impedito di eliminare il PDB che ora evidenzierò di seguito.

ORA-65179:impossibile mantenere file di dati per un database collegabile che non è scollegato

Il dettaglio che continuo a saltare era che non potevo MANTENERE i file di dati. Significa che posso eliminare il PDB se rimuovo anche i file di dati?

SQL> drop pluggable database GOLD2019_08_22_125953 including datafiles;

 Pluggable database dropped. 

Abbastanza sicuro, potrei facilmente eliminare il PDB. A volte, le cose più interessanti si trovano nei dettagli se rallentiamo un po' e ci assicuriamo di vedere tutto davanti a noi invece di saltare fino alla fine.