Supprimons un control file (ca soulage) :
$> cd /oracle/oradata/DD1
$> rm control01.ctl
Tout se passe bien pendant un certain temps (si, si) mais au bout d’un moment tout de même on a :
ERROR at line 1:
ORA-00210: cannot open the specified control file
ORA-00202: control file: ‘/oracle/oradata/DD1/control01.ctl’
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Pour restaurer le fichier il suffit d’arreter la base, de prendre une copie multiplexée du fichier et de le copier en lieu et place du fichier perdu, pusi de redémarrer la base
– vérifions l’emplacement du fichier :
SQL> select name from v$controlfile;
NAME
——————————————————————————–
/oracle/oradata/DD1/control01.ctl
/oracle/oradata2/DD1/control02.ctl
ou bien :
SQL> show parameter control_files
NAME TYPE VALUE
control_files string /oracle/oradata/DD1/control01. ctl, /oracle/oradata2/DD1/cont rol02.ctlS
SQL> SHUTDOWN ABORT
SQL> !cp ../../oradata2/DD1/control02.ctl control01.ctl
SQL> startup
You’re done![]()
Il se peut cependant que les fichier de controle ne soient pas en phase, dans ce cas on aura une erreur au reedémarrage du style :
SQL> startup
ORACLE instance started.Total System Global Area 263049216 bytes
Fixed Size 2143496 bytes
Variable Size 234883832 bytes
Database Buffers 20971520 bytes
Redo Buffers 5050368 bytes
ORA-00214: control file ‘/oracle/oradata2/DD1/control02.ctl’ version 3801
inconsistent with file ‘/oracle/oradata/DD1/control01.ctl’ version 3785
Dans ce cas :
- arreter la base
- editer le init.ora pour ne laisser le control file OK (avec la dernière version : control02 ici)
- redemarrer avec ce init.ora ( startup pfile= )
- arreter la base
- copier le control 2 vers le control 1
- modifier le init.ora pour remettre le 2eme fichier de controle
- redémarrer la base