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:
le status du datafile passe en RECOVER
Code : Sélectionner tout - Visualiser dans une fenêtre à part alter database datafile 'users03.dbf' offline drop;
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part select name, status from v$datafile;
Quand j'essaye de repasser le datafile en mode online:
oracle me renvoie cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part alter database datafile 'users03.dbf' online;
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) ?
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'
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
Partager