Come eliminare in modo sicuro un database Oracle e tutti i file di dati?

Questo post descrive come eliminare in modo sicuro un database Oracle utilizzando SQL*Plus e RMAN. Tratta sei passaggi fondamentali e fornisce suggerimenti per la pulizia successiva alla rimozione.

download-icon
Download gratuito
per VM, sistema operativo, database, file, NAS, ecc.
sofia

Updated by Sofia on 2026/06/11

Indice dei contenuti
  • Informazioni su Oracle Database

  • Checklist pre-eliminazione: Misure di sicurezza fondamentali

  • Comando DROP DATABASE

  • Come eliminare un intero database Oracle?

  • Attività di pulizia successive all’eliminazione

  • Come eliminare un database Oracle, inclusi i file di dati?

  • Qual è la differenza tra DROP e DELETE nel database Oracle?

  • Eseguire il backup del database Oracle prima dell’eliminazione

  • Domande frequenti sull’eliminazione di un database Oracle

  • Conclusione

Informazioni su Oracle Database

Oracle Database è uno dei sistemi di gestione di database relazionali (RDBMS) più diffusi al mondo. Memorizza informazioni fondamentali per le applicazioni, che vanno da piccoli siti web a sistemi aziendali globali. Alla sua base, Oracle organizza i dati in tablespace gestiti da diversi componenti fondamentali:

  • I file dati memorizzano i dati dell’utente e del sistema.

  • File di controllo tengono traccia della struttura e dello stato del database.

  • File di log delle operazioni di ripristino registrano le modifiche ai fini del recupero.

  • File dei parametri (spfile o pfile) contenenti le impostazioni di configurazione.

  • File temporanei supportano gli spazi di memorizzazione temporanea utilizzati per l’ordinamento o la combinazione di grandi insiemi di dati.

  • File password gestiscono l'autenticazione per gli utenti privilegiati.

Comprendere questi componenti è fondamentale, poiché l’eliminazione di un database ne rimuove quasi tutti in modo permanente. Ad esempio, eseguendo il comando DROP DATABASE, vengono eliminati tutti i file di dati associati, i file di controllo, i log di redo, i file temporanei elencati nei file di controllo — e persino i file di parametri, se vengono referenziati dall’istanza. Tuttavia, alcuni elementi, come i file delle password o le directory create manualmente, potrebbero rimanere a meno che non vengano rimossi separatamente.

È inoltre importante conoscere le diverse architetture presenti nelle versioni moderne di Oracle:

  • Nelle configurazioni tradizionali (precedenti alla versione 12c), ogni istanza gestisce un singolo database.

  • Nell’architettura multitenant (a partire dalla versione 12c), un Container Database (CDB) può ospitare più Pluggable Database (PDB). Eliminare un CDB comporta la rimozione di tutti i PDB in esso contenuti; eliminare un PDB influisce esclusivamente su quell’unità plug-in.

Prima di procedere ad alcuna azione distruttiva, come l’eliminazione di un database o di un PDB, verificare sempre quali componenti verranno interessati e assicurarsi che esistano dei backup!

Checklist pre-eliminazione: Misure di sicurezza fondamentali

Prima di rimuovere qualsiasi database Oracle—even negli ambienti di test—è consigliabile verificare attentamente i preparativi effettuati. Alcuni minuti spesi ora possono evitare ore di rimpianti in seguito.

Primo: verificare che esistano copie di backup recenti esterne al server di produzione. Utilizzare la funzione di convalida di RMAN (VALIDATE BACKUP) per confermare l’integrità dei backup; non basarsi esclusivamente su supposizioni! Successivamente: mappare le dipendenze elencando le applicazioni connesse a questo database — ad esempio strumenti di reporting o processi pianificati — e informare le parti interessate riguardo al fermo programmato.

Controlla le sessioni attive utilizzando:

SELECT sid, serial# FROM v$session WHERE type != 'BACKGROUND';

In questo modo si garantisce che nessun utente sia ancora connesso durante la rimozione.

Se stai recuperando spazio di archiviazione dopo una cancellazione o stai pianificando la dismissione di un server, calcola l’uso totale dello spazio con:

SELECT SUM(bytes)/1024/1024 AS SIZE_MB FROM dba_data_files;

In fine: esaminare i collegamenti esterni (SELECT * FROM DBA_DB_LINKS;) per evitare di lasciare connessioni interrotte in altre parti dell’ambiente.

Comando DROP DATABASE

Il comando DROP DATABASE è il metodo ufficiale di Oracle per eliminare un intero database, comprese le relative strutture di archiviazione fisica, dal disco. Introdotto con la versione 10g, questo comando automatizza operazioni che in passato richiedevano l’eliminazione manuale dei file, comportando rischi elevati.

È necessario disporre dei privilegi SYSDBA per eseguire correttamente questo comando. Il processo richiede l’accesso esclusivo: nessun altro utente può connettersi mentre è in esecuzione. Per questo motivo è necessario chiudere prima il database e montarlo in modalità restritta, una misura di sicurezza che previene eliminazioni accidentali durante le operazioni normali.

Quando eseguito correttamente:

  • Tutti i file di dati elencati nei file di controllo vengono eliminati

  • I file di controllo vengono rimossi direttamente

  • I file del log di redo online scompaiono

  • Il file dei parametri del server (spfile) va anche

Tuttavia:

  • I file delle password rimangono spesso sul disco: è necessaria una pulizia manuale

  • I percorsi di audit memorizzati al di fuori delle directory standard non vengono modificati

  • I file di configurazione della rete, come listener.ora o tnsnames.ora, rimangono inalterati

Per i database che utilizzano ASM (Automatic Storage Management), i file di dati gestiti da ASM vengono eliminati automaticamente, ma le directory non specifiche del database potrebbero richiedere un intervento manuale successivo.

Ricorda: una volta eliminati con questo metodo, non è possibile annullare l’operazione! Solo i backup validi consentono il ripristino dopo la cancellazione.

Come eliminare un intero database Oracle?

L’eliminazione di un intero database Oracle richiede diversi passaggi accurati, concepiti sia per garantire la sicurezza che per rispettare le migliori pratiche a ogni livello di competenza:

Prima di tutto: assicurati sempre di avere copie di backup aggiornate archiviate in una sede remota o su supporti sicuri prima di procedere!

Passo 1: Impostare le variabili di ambiente

Sui sistemi Linux/UNIX, impostare ORACLE_SID in modo che i comandi puntino all'istanza corretta:

export ORACLE_SID=your_database_sid

Su Windows utilizzare:

SET ORACLE_SID=your_database_sid

Sostituisci your_database_sid con il valore effettivo del tuo SID, reperibile nelle configurazioni di tnsnames o del listener.

Passo 2: Connettersi come SYSDBA

Aprire una finestra del terminale, quindi connettersi utilizzando SQL*Plus:

sqlplus / as sysdba

Passo 3: Arrestare il database

Chiudi tutte le connessioni in modo controllato, in modo che nessuna transazione vada persa:

SHUTDOWN IMMEDIATE;

Attendi il completamento dell’arresto prima di procedere!

Passo 4: Montaggio esclusivo con accesso limitato

Riavviare il sistema, ma montare—senza aprirlo—il database, in modo che solo le sessioni con privilegi possano connettersi:

AVVIO MONTAGGIO LIMITATO;

Negli ambienti a istanza singola è implicita la modalità ESCLUSIVA; se si lavora con RAC, disattivare prima la modalità cluster (ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE;). Verificare sempre lo stato dopo il montaggio:

SELECT status FROM v$instance;
-- Dovrebbe restituire 'MOUNTED'

Passo 5: Eliminare il database

Ora esegui il comando irreversibile:

ELIMINA DATABASE;

Oracle rimuoverà tutti i file di dati/controllo/log/spfile associati a cui si fa riferimento nelle voci del file di controllo e visualizzerà una conferma in caso di esito positivo (“Database eliminato.”).

Tenere presente che i file delle password, che in genere si trovano nella directory $ORACLE_HOME/dbs/orapw${ORACLE_SID}, devono essere eliminati manualmente se richiesto; lo stesso vale per le directory amministrative residue non tracciate dai metadati del file di controllo.

Passo 6: Uscire da SQL*Plus

Digita ESCI al termine:

USCITA;

Dopo questi passaggi, l’istanza Oracle di destinazione è stata eliminata dal disco; rimangono solo le cartelle di configurazione, audit, password e amministrazione create manualmente, a meno che non vengano rimosse separatamente!

Attività di pulizia successive all’eliminazione

Anche dopo l’esecuzione del comando DROP DATABASE, alcuni residui potrebbero rimanere su disco—specialmente script personalizzati o artefatti a livello di sistema operativo non gestiti direttamente da Oracle:

1. Rimuovi i file dei parametri

  • Elimina il file spfile/init, se presente nella directory $ORACLE_HOME/dbs/.

     rm $ORACLE_HOME/dbs/spfile${ORACLE_SID}.ora 
     rm $ORACLE_HOME/dbs/init${ORACLE_SID}.ora

2. Pulizia dei registri di audit

  • Rimuovere i contenuti del dump di audit da $ORACLE_BASE/admin/$ORACLE_SID/adump/.

3. Elimina i file delle password

  • Rimuovere manualmente il/i file della password:

  •      rm $ORACLE_HOME/dbs/orapw${ORACLE_SID}

4. Aggiornare la configurazione del listener

  • Modificare le voci di listener.ora/tnsnames.ora che fanno riferimento ai SID eliminati, in modo che i futuri tentativi di connessione non falliscano inaspettatamente.

5. Ripristina spazio su disco

  • Se ASM è stato utilizzato, verificare lo stato del gruppo di dischi tramite gli strumenti ASM; in caso contrario, eliminare le vecchie cartelle admin/log/archive secondo necessità.

6. Aggiorna l’inventario

  • Se si dismette il software home, eseguire interamente l’installatore e utilizzare i comandi di scollegamento ove opportuno (runInstaller -detachHome ORACLE_HOME=$ORACLE_HOME).

Questi passaggi aggiuntivi aiutano a mantenere i server ordinati ed evitare confusione in futuro!

Come eliminare un database Oracle, inclusi i file di dati?

A volte eliminare semplicemente le principali strutture del database non è sufficiente: potresti voler eliminare anche i log archiviati e i backup (ad esempio quando si dismette dell’hardware). È qui che Recovery Manager (RMAN) risplende:

RMAN consente di eliminare sia i database che i relativi backup registrati, inclusi i log archiviati tracciati nel proprio repository:

Passo 1: Connettersi a RMAN come utente target

Apri il terminale, quindi inserisci:

rman TARGET /

Passaggio 2: Arresto e montaggio

All’interno del prompt di RMAN digitare:

ARRESTO IMMEDIATO;
AVVIO IN MOUNT;

Passaggio 3: Elimina tutto

Per eliminare il database e tutti i backup/log catalogati:

ELIMINA DATABASE INCLUSI I BACKUP;

Questa operazione rimuove tutti i dati noti nel repository di RMAN—including set di backup/copy immagine/log degli archivi memorizzati localmente/nella FRA—purché siano registrati! Verranno visualizzati messaggi di richiesta di conferma, a meno che non venga utilizzata l’opzione NOPROMPT (utile esclusivamente nell’automazione tramite script):

ELIMINA DATABASE INCLUSE LE COPIE DI SICUREZZA SENZA RICHIESTA DI CONFERMA;

Nota sulle copie di sicurezza manuali

I backup copiati al di fuori del monitoraggio di RMAN o archiviati esternamente senza essere catalogati devono essere eliminati manualmente in seguito! Ricordare inoltre che i file speciali per dispositivi grezzi non vengono toccati né da SQL*Plus né da RMAN; gestirli a livello di sistema operativo, se necessario.

Disiscrivi dal catalogo di recupero

Se si utilizzano cataloghi di ripristino centralizzati, annullare esplicitamente la registrazione dei metadati dopo il completamento dell’operazione di eliminazione:

ANNULLA REGISTRAZIONE DATABASE;

Passo 4: Esci da RMAN

Digita ESCI al termine!

Dopo questo processo, sia le strutture logiche sia gli artefatti fisici/basati sulle copie scompaiono dai dischi locali/FRA, purché siano stati registrati in precedenza in RMAN.

Qual è la differenza tra DROP e DELETE nel database Oracle?

Molte persone confondono “drop” con “delete”, ma questi due termini indicano concetti molto diversi negli ambienti Oracle!

CommandScopeReversibilityExample
DROP DATABASEEntire DBNoDROP DATABASE;
DROP TABLESingle TableNoDROP TABLE employees;
DELETERows In TableYesDELETE FROM orders WHERE order_id=12345;
TRUNCATEAll Rows/TableNoTRUNCATE TABLE logs;

Usa DROP DATABASE solo per eliminare definitivamente intere istanze: questa operazione cancella tutto, compresi struttura, dati e puntatori alla configurazione! Usa DELETE per rimuovere righe specifiche mantenendo intatte le definizioni delle tabelle oppure usa TRUNCATE per rimuovere rapidamente in blocco righe senza registrare singole operazioni di eliminazione.

Eseguire il backup del database Oracle prima dell’eliminazione

Prima di compiere qualsiasi azione irreversibile, come l’eliminazione completa di un database, è fondamentale disporre di una protezione affidabile tramite backup: ciò ci porta a una suite professionale di soluzioni per il backup e il ripristino, progettata appositamente per soddisfare le esigenze aziendali negli ambienti virtuali e fisici.

Vinchin Backup & Recovery offre funzionalità professionali di backup, compatibili con quasi tutti i principali database attualmente disponibili, tra cui Oracle, MySQL, SQL Server, MariaDB, PostgreSQL e PostgresPro.

Per proteggere il database, offre funzionalità complete che vanno oltre semplici procedure di backup:

  • Offre l’integrazione del backup nel cloud e l’archiviazione su nastro per le esigenze di conservazione a lungo termine;

  • Offre opzioni di backup completo e incrementale; le tecnologie integrate di compressione e deduplicazione aiutano a massimizzare l’efficienza riducendo al minimo i costi di archiviazione.

  • Offre protezione contro il ransomware per salvaguardare le risorse critiche dalle minacce informatiche, mentre le procedure di ripristino includono opzioni per il ripristino su nuovi server

  • Offre funzionalità uniche, come il rilevamento dei cambiamenti ai blocchi (BCT), e salta in modo intelligente i file accessibili o offline, migliorando in particolare l'affidabilità nelle distribuzioni complesse, ad esempio quelle che eseguono database Oracle.

Gestire le politiche di protezione tramite la console web intuitiva di Vinchin richiede soltanto quattro semplici passaggi: 

1. Seleziona i database di origine

Seleziona i database di origine

2. Scegli le destinazioni di archiviazione,

Seleziona le destinazioni di archiviazione

3. Configura le strategie di backup,

Configura le strategie di backup

4. Invia il lavoro.

Invia il lavoro

Unisciti a migliaia di clienti soddisfatti in tutto il mondo che ogni giorno affidano la propria fiducia alle soluzioni Vinchin, altamente valutate: clicca subito qui sotto per iniziare la tua prova priva di rischi (60 giorni di accesso completo alle funzionalità) e scarica oggi stesso il nostro programma di installazione facile da distribuire!

Domande frequenti sull’eliminazione di un database Oracle

D1: È possibile recuperare un database Oracle dopo aver eseguito il comando DROP DATABASE?

No: una volta eliminati, tutti i dispositivi fisici e le strutture logiche scompaiono per sempre, a meno che non esista un backup valido esterno pronto per le procedure di ripristino.

Q2: Devo arrestare tutte le app/gli utenti prima dell’eliminazione?

Sì: assicurarsi che ogni applicazione/sessione utente venga disconnessa prima, altrimenti errori o avvisi interromperanno l’operazione in corso.

Q3: Come posso eliminare in sicurezza i database basati su RAC?

Impostare il parametro CLUSTER_DATABASE su FALSE/montare in modo esclusivo/arrestare gli altri nodi/eseguire il comando DROP dall’ultimo nodo sopravvissuto.

Q4: I miei strumenti di monitoraggio mostreranno errori dopo l’interruzione?

Sì: è necessario rimuovere manualmente i riferimenti/le destinazioni obsolete all’interno delle dashboard OEM/cloud dopo l’evento di eliminazione.

Q5: La cancellazione rimuove anche le cartelle portafoglio/password/audit/log/script personalizzati?

No: è necessario eliminarli manualmente a livello di sistema operativo, poiché né SQL*Plus né RMAN li modificano automaticamente.

Conclusione

Eliminare un database Oracle è un’operazione potente che cancella tutti i dati, i file di configurazione e i log, lasciando alcuna traccia del database sul server.  Seguendo questa guida, avrai imparato come utilizzarla in sicurezza a qualsiasi livello di competenza e come proteggere i tuoi dati prima di procedere. 

Se sei alle prime armi o hai anni di esperienza come amministratore, per evitare errori costosi in una fase successiva, esegui prima un backup!  Vinchin rende semplice ma affidabile la protezione e il ripristino dei database critici: non esitare e prova subito la nostra versione di prova gratuita!

Condividi su:

Categories: Database Tips