[Oracle] Drop datafile from tablespace

Mi è capitato di intervenire su un’istanza oracle di un cliente in cui era stato erroneamente aggiunto un datafile in un tablespace, ovvero era stato sbagliato il path è la cosa non è piacevole sopratutto in una installazione RAC (Real Application Cluster di Oracle).

Siccome il tablespace si trova su un istanza di produzione la cosa è diventata alquanto delicata, l’unica soluzione (fornita da un collega che lavora su oracle) era quella di prendere un blackup 0 esportare l’intero tablespace e ricrearlo ex-novo, ma questo implica la messa in down dei servizi ad esso legati (soluzione troppo drastica).

Girando per il forum oracle, vedo che dalla release 10.0.2 è possibile droppare un datafile senza la necessita di stoppare o cancellare l’intero tablespace, unica prerogativa e che il datafile deve essere vuoto!

Mi appresto tramite vpn a collegarmi al server oracle e con mia stra-grande soddisfazione noto che il datafile è vuoi ed ecco che usando i comandi sotto descritti o droppato il datafile e creato correttemente il suo sostituto risolvendo il problema.

Comandi usati:

1. bisogna loggarsi tramite sqlplus con le credenziali di sys CONNECT / AS SYSDBA
2. Visualizzare l’elenco dei tablespace presenti con il comando:

SQL> select tablespace_name from dba_tablespaces;

3. Visualizzare i datafile che compongono il tablespace da modificare:

select file_name from dba_data_files where tablespace_name=’NOME_TABLESPACE’;

4. Prendere nota del datafile da eliminare comprensivo del path, per
esempio il datafile si chiama datafile3.dbf e usare il seguente
comando:

SQL> alter tablespace richfinanziamenti drop datafile ‘/USARE/IL/PATH/COMPLETO/datafile3.dbf’;

Il datafile è stato rimosso, ora potete inserire il datafile corretto.

RICORDA IL DATAFILE PER ESSERE RIMOSSO DEVE ESSERE VUOTO.

Tags:

This entry was posted on mercoledì, gennaio 14th, 2009 at 15:58 and is filed under Work. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

Security Code: