Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Débuter
Débuter Forum d'entraide pour débuter avec Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2011, 17h59   #1
Invité de passage
 
Inscription : février 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 14
Points : 0
Points : 0
Par défaut Restaurer un .dbf supprimé ? Possible ?

Bonjour à tous,

je me mets au bdd Oracle malgré moi de part mon job. Un de mes collègues à supprimer un .dbf important pensant économiser de l'espace disque .

Malheureusement, ce serveur, bien qu'il soit en prod, ne fait pas de backup du .dbf en question (pas de bol !)

Savez vous s'il existe une autre méthode pour récupérer ce fichier ? Peux-être en utilisant les fichiers de type redo-log ?
Pour info, le serveur est sous HP-UX.

Si jamais je ne peux pas le récupérer (Les données n'étant pas non plus hyper importantes), savez vous comment dois-je procéder pour m'en passer ?

La société de support que nous employons fait trainer les choses en longueur nous soutiens qu'il faut réinstaller ORACLE (1 semaine de travail) et j'aimerais beaucoup ne pas avoir à attendre qu'elle se réveille...

Merci d'avance pour vos nombreuses idées
bobinouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 09h26   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Je suppose que la base de donnée n'a pas été arrêtée dans l'interval.

Donc, si vous êtes en mode archivelog, vous devez pouvoir faire une sauvegarde RMan du tablespace et le restaurer (et donc retrouver votre fichier bdf).

En effet, le fichier peut être effacé mais encore présent sur disque parcequ'il est ouvert par la base de données.

Si vous n'êtes pas en mode archivelog, un export full est à envisager puis recréation de la base et import du dump.

Enfin il est possible de transférer l'ensemble des données du tablespace dans lequel il manque un fichier (appelons le T1) vers un autre tablespace de faire un alter database datafile offline drop de l'ensemble des fichiers constituant T1, puis de dropper T1 puis d'effacer l'ensemble des fichiers le constituant au niveau OS

Si le fichier est effectivement manquant (donc plus ouvert par Oracle), il faut voir les donnéesréupérable dans le tablespace, les sauvagarder et dropper le tablespace avec la méthode décrite au § du dessus.

En aucun cas, une réintallation d'Oracle n'est à envisager
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/09/2011, 11h49   #3
Invité de passage
 
Inscription : février 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 14
Points : 0
Points : 0
Merci de votre réponse.

A priori, le mode archivelog n'est pas activé :
Citation:
SQL> ARCHIVE LOG LIST
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1830
Current log sequence 1832
Le fichier .dbf n'existe plus sur le disque à cause du rm.

Si je fais un SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files ORDER BY FILE_ID; le fichier dbf n'apparait pas dans la liste. Qu'es ce que cela indique ?

merci à tous !
bobinouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h11   #4
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Le fichier est donc à priori perdu et non ouvert par Oracle.

Il faut donc sauvegarder les données du tablespace et effectuer les opérations de récupération du tablespace.
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 13h34   #5
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
as tu des sauvegardes de la base?
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h39   #6
Invité de passage
 
Inscription : février 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 14
Points : 0
Points : 0
Bon, en réalité, je crois que cela va être plus compliqué que cela.

Le fichier dbf supprimé se nomme sysaux01_new.dbf.

Mon collègue l'a supprimé car ce fichier n'était pas récent et un similaire se nommant sysaux01.dbf est bien présent et mis à jour :
Citation:
total 25635616
-rw-r----- 1 oracle dba 7553024 Sep 28 15:13 control01.ctl
-rw-r----- 1 oracle dba 7553024 Sep 28 15:13 control02.ctl
-rw-r----- 1 oracle dba 7553024 Sep 28 15:13 control03.ctl
-rw-r----- 1 oracle dba 52429824 Sep 28 04:52 redo01.log
-rw-r----- 1 oracle dba 52429824 Sep 28 15:12 redo02.log
-rw-r----- 1 oracle dba 52429824 Sep 27 22:58 redo03.log
-rw-r----- 1 oracle dba 9742327808 Sep 28 04:57 sysaux01.dbf
-rw-r----- 1 oracle dba 1992302592 Sep 28 15:12 system01.dbf
-rw-r----- 1 oracle dba 45096960 Nov 29 2010 temp01.dbf
-rw-r----- 1 oracle dba 94380032 Sep 27 00:48 temp02.dbf
-rw-r----- 1 oracle dba 1073750016 Sep 28 15:12 undotbs01.dbf
-rw-r----- 1 oracle dba 1056768 Sep 28 04:57 users01.dbf
Apparemment, ce fichier est très important mais je ne comprends pas pourquoi j'en ai 2 et ne vois pas trop comment est configuré oracle. Par contre j'ai bien un message d'erreur suite à l'éxécution de script utilisant la base oracle :
Citation:
ORA-00376: file 10 cannot be read at this time
ORA-01110: data file 10: '/usr/ORACLE/[...]/sysaux01_new.dbf'
ORA-06512: at line 18]"
Je vais voir si je n'arrive pas à trouver une sauvegarde même si je n'y crois pas ...
bobinouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 09h44   #7
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
puisque sysaux01.dbf existe dans la liste des fichiers de données , je pense que le deuxieme (sysaux01_new)est un plus. il n'est celle de Oracle.
pour cela, pour eliminer le message d'erreur,tu procede comme suite:
si le fichier de données est dans un tablespace à part, tu peux dropper ce dernier.
Code :
ALTER TABLESPACE sysaux01_new DROP DATAFILE '/usr/ORACLE/[...]/sysaux01_new.dbf';
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h37   #8
Membre confirmé
 
Inscription : novembre 2007
Messages : 426
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 426
Points : 218
Points : 218
Citation:
Envoyé par boussafi Voir le message
puisque sysaux01.dbf existe dans la liste des fichiers de données , je pense que le deuxieme (sysaux01_new)est un plus. il n'est celle de Oracle.
pour cela, pour eliminer le message d'erreur,tu procede comme suite:
si le fichier de données est dans un tablespace à part, tu peux dropper ce dernier.
Bonjour,

Je pense que le tablespace SYSAUX a été agrandi à un moment en y rajoutant un datafile ... et donc SYSAUX est composé de ces 2 fichiers.

A+
__________________
SDR.
"ceux qui vivent, ce sont ceux qui luttent."
agdid04 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h26   #9
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
oui, c'est un autre scenario.
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h04   #10
Invité de passage
 
Inscription : février 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 14
Points : 0
Points : 0
Citation:
Envoyé par agdid04 Voir le message
Bonjour,

Je pense que le tablespace SYSAUX a été agrandi à un moment en y rajoutant un datafile ... et donc SYSAUX est composé de ces 2 fichiers.

A+
Il est possible que ce deuxième sysaux soit rajouté puis non utilisé ?

Le plus récent étant le 1er. Le deuxième ne semblait pas avoir été modifié depuis plus d'un an...
bobinouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h18   #11
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
si c'est le cas tu peut eliminer le message d'erreur et mettre le tablespace en ligne

Code :
1
2
3
4
5
6
DELETE  FROM sys.file$ t
WHERE t.FILE# =(select  v.FILE# 
FROM  sys.v$dbfile v
WHERE name = '/usr/ORACLE/[...]/sysaux01_new.dbf';
commit;
ALTER tablespace SYSAUX online;
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h00.


 
 
 
 
Partenaires

Hébergement Web