Control File
Il Control File è un file binario di piccole dimensioni mantenuto costantemente aggiornato da Oracle. Contiene i metadati strutturali del database: path dei datafile, path dei redo log group, SCN corrente e informazioni di checkpoint. Senza di esso, l’istanza non può superare la fase di MOUNT.
Cosa registra #
Ogni volta che Oracle esegue un CHECKPOINT o aggiunge un file alla struttura del database, il Control File viene aggiornato in modo sincrono. I campi principali includono:
- Database name e DBID
- Path e stato di ogni datafile (online, offline, read-only)
- Configurazione dei redo log group
- SCN di checkpoint — usato durante il recovery per determinare il punto di coerenza
- RMAN backup metadata (se si usa Recovery Manager)
Multiplexing e rischio di perdita #
Oracle consente — e raccomanda — di mantenere copie identiche del Control File su path fisicamente separati. La configurazione avviene nel parametro CONTROL_FILES:
ALTER SYSTEM SET CONTROL_FILES =
'/u01/oradata/orcl/control01.ctl',
'/u02/fast_recovery_area/orcl/control02.ctl'
SCOPE=SPFILE;
Tutte le copie vengono scritte in parallelo a ogni aggiornamento. Se una copia è corrotta o mancante, il database si avvia comunque usando le copie valide. La perdita di tutte le copie senza un backup recente richiede un recovery manuale complesso.
Contesto operativo #
Durante lo startup, Oracle legge il Control File nella fase MOUNT per localizzare i datafile prima di aprirli (fase OPEN). In un ambiente Data Guard, il Control File dello standby contiene anche i metadati di sincronizzazione con il primary. Nei backup RMAN, il Control File (o un Catalog separato) è il registro centrale di tutti i backup set e image copy.