Bonjour,

Sur serveur LINUX RedHat Linux 4AS, et une base ORACLE 10R1, je m'amuse à faire quelques tests de crash de base ... en mode ARCHIVELOG

J'ai créé dans ma base une tablespace USERS qui contient 3 datafiles users01,users02,user03. Je précise que ce tablespace est vide (aucune table, vue etc ...)

Quand j'essaye de supprimer un datafile du tablespace par:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
alter database datafile 'users03.dbf' offline drop;
le status du datafile passe en RECOVER

Code : Sélectionner tout - Visualiser dans une fenêtre à part
select name, status from v$datafile;
Le fichier est toujours présent physiquement sur le disque, et logiquement dans la base. Même si le fichier n'est pas effacé du disque, je pensais au moins qu'il était supprimé de la base ?

Quand j'essaye de repasser le datafile en mode online:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
alter database datafile 'users03.dbf'  online;
oracle me renvoie cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ORA-01113: le fichier 6 nécessite une récupération aprés défaillance matérielle
ORA-01110: fichier de données 6 : 'users03.dbf'
Pourquoi puisque cette suppression de datafile est normal (je veux dire faite par une ligne de commande) ORACLE considére-t-il qu'il s'agit d'une perte de fichier (style fichier effacer physiquement) ?

J'ajoute que je test la suppression d'un datafile, parce que j'ai été confronté à un probléme quasi similaire sur une base de prod.

Le datafile avait été effacé physiquement, j'ai réussi (je ne sais pas comment ) à le mettre offline dans la base, puis en voulant le supprimer de la base je me suis retrouver avec un status RECOVER dont je n'arrivais plus à me débarrasser.

Comment dire à ORACLE que ce datafile n'existe plus, et qu'il faut qu'il le supprime de son doctionnaire ?

Je parcours depuis 2 jours les tuto d'oracle sur le site ... mais là je sêche !!

D'avance merci pour vos explications

Fred