Jeg har en Oracle 12.1.0.2 Multitenant-database, som jeg forsøger at fjerne en PDB fra. Jeg har dog ved en fejl fjernet lageret fra databaseserveren, og PDB kan ikke få adgang til dets filer. Når jeg frakobler PDB, får jeg følgende fejl:
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'
Det er uheldigt, men det kan forventes i mit tilfælde. Jeg trak fejlagtigt lageret til dette FDB ud, før jeg frakoblede det. Det meste af litteraturen på Oracles supportwebsted siger, at man skal gendanne PDB fra din backup. Men dette FBF er en klon af produktion, og jeg er ligeglad med at sikkerhedskopiere det. Det er 25+TB, og hvis noget går galt med det, fjerner jeg PDB og opretter en ny klon af produktionen. Ingen sikkerhedskopiering er nødvendig, undtagen måske for at redde mig fra min fjollede fejl med at fjerne lageret, før jeg trækker stikket ud.
Da jeg ikke kunne frakoble PDB, forsøgte jeg bare at droppe PDB, men jeg får en anden fejl:
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
Nu føler jeg, at jeg er i en Catch-22 situation. Jeg kan ikke frakoble FBF og kan heller ikke droppe det.
Jeg har set denne fejl ved mange lejligheder og har altid ønsket, at jeg bare kunne droppe PDB uden at skulle trække stikket ud først. Jeg har intet ønske om at tilslutte dette til en anden CDB. Jeg vil bare have det væk for altid. Og det var da jeg indså, at det er i detaljerne. Da jeg læste den ORA-65179 fejlmeddelelse, fokuserede jeg på den sidste del af den. FBF frakobles ikke først. Jeg har læst denne fejlmeddelelse mindst 20 gange i mit arbejde med Multitenant, og jeg savnede den kritiske detalje, der forhindrede mig i at droppe PDB, som jeg nu vil fremhæve nedenfor.
ORA-65179:kan ikke bevares datafiler for en pluggbar database, der ikke er frakoblet
Den detalje, jeg blev ved med at springe over, var, at jeg ikke kunne BEHOLDE datafilerne. Betyder det, at jeg kan droppe PDB, hvis jeg også fjerner datafilerne?
SQL> drop pluggable database GOLD2019_08_22_125953 including datafiles; Pluggable database dropped.
Selvfølgelig kunne jeg sagtens droppe FBF. Nogle gange findes de mest interessante ting i detaljerne, hvis vi bare sætter farten lidt ned og sørger for at se alting foran os i stedet for at springe til ende.