IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[ORA-00157] J'ai effacé tous les fichiers de données


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut [ORA-00157] J'ai effacé tous les fichiers de données
    Salutation à tous . Voila j'ai un méga problème donc j'ai besoin d'aide.

    Avec la base éteint , j'ai supprimé des fichiers *.dbf car j'en avais pas besoin.... seulement voilà quand je redémarre Oracle ....
    startup
    Instance ORACLE lancee.

    Total System Global Area 293601280 bytes
    Fixed Size 1978176 bytes
    Variable Size 134222016 bytes
    Database Buffers 155189248 bytes
    Redo Buffers 2211840 bytes
    Base de donnees montee.
    ORA-01157: impossible d'identifier ou de verrouiller le fichier de donnees 5 -
    voir le fichier de trace DBWR
    ORA-01110: fichier de donnees 5 : '/opt/oracle/databases/truc2.dbf'
    Donc la je me suis dit que jété un peu dans la M..... . Donc je recherche un peu sur le Web, je trouve quoi? (utiliser le recover)

    La, je me dit génial allez on y va.

    je tape :
    startup mount
    Instance ORACLE lancee.

    Total System Global Area 293601280 bytes
    Fixed Size 1978176 bytes
    Variable Size 134222016 bytes
    Database Buffers 155189248 bytes
    Redo Buffers 2211840 bytes
    Base de donnees montee.
    SQL> drop tablespace monspace;
    drop tablespace monspace
    *
    ERREUR a la ligne 1 :
    ORA-01109: base de donnees non ouverte



    SQL> recover tablespace monspace;
    ORA-00283: session de recuperation annulee pour cause d'erreurs
    ORA-01110: fichier de donnees 5 : '/opt/oracle/databases/truc2.dbf'
    ORA-01157: impossible d'identifier ou de verrouiller le fichier de donnees 5 -
    voir le fichier de trace DBWR
    ORA-01110: fichier de donnees 5 : '/opt/oracle/databases/truc2.dbf'


    SQL> alter database default temporary tablespace "TEMP";
    alter database default temporary tablespace "TEMP"
    *
    ERREUR a la ligne 1 :
    ORA-01109: base de donnees non ouverte
    Voila, donc là j'ai plus d'idée, impossible de retrouver ma base avant, ni d'utiliser le recover. Le problème c'est que je m'en fous un peu de ce tablespace, je veux juste recréer d'autres tablespaces etc etc... mais si jarrive pas a lancer ma base.

    Ps: je peux pas reinstaller Oracle.

    Je vous remercie si vous trouvez une solution!!!

  2. #2
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Pourquoi tu a supprimer les fichiers *.bdf ?

  3. #3
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut Re: Gros problème Oracle ( ORA-01157)
    Citation Envoyé par sniperseb
    Avec la base éteint , j'ai supprimé des fichiers *.dbf car j'en avais pas besoin....
    Perdu, il semblerait que vous en ayez besoin, ne serait-ce que pour la base....

    Citation Envoyé par sniperseb
    Ps: je peux pas reinstaller Oracle.
    Le noyau ne doit pas être en cause, par contre, il serait bon d'avoir des sauvegrades de la base et donc de ces fameux dbf....

    Citation Envoyé par sniperseb
    Je vous remercie si vous trouvez une solution!!!
    Je crains que ce ne soit pas gagné....

    [EDIT] Merci d'éditer votre message afin de donner un titre clair et concis à votre sujet [/EDIT]

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Pourquoi tu a supprimer les fichiers *.bdf ?
    Ben il prennait trop de place pour rien .. enfin je pensais que c'était pour rien.

    Le noyau ne doit pas être en cause, par contre, il serait bon d'avoir des sauvegrades de la base et donc de ces fameux dbf....
    Je dois avoir aucune sauvegarde de la base mais si il faut faire un "reset" c'est à dire effacage de tout mes tables,cluster,tablespace etc etc... il y a aucun problème. Si je recupere juste dans l"état initiale, ca me dérange pas. (Heureusement que je ne suis pas un adminstrateur Oracle sinon je serai déjà virer depuis longtemps). C'est juste un projet Oracle mais si je ne peux pas faire ma démo avec mon programme...... ca sentera la taule.

    EDIT] Merci d'éditer votre message afin de donner un titre clair et concis à votre sujet [/EDIT]
    ----> Okio pour modifier le sujet du topic mais bon je sais pas trop mettre comme sujet du topic

  5. #5
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Si vous n'aviez supprimé que quelques dbf, ça aurait été. Mais là, il manque tout...

    Le plus simple est de garder l'init.ora (si vous l'avez, sinon, il faudra le reconstruire) et ensuite, vous lancez le dbca pour recréer l'instance.

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Euh.. Certes j'ai effacé tout mes fichiers de données, mais j'avais enlevé tout mes tablespaces que j'ai crées (sauf un......) donc voila .

    Le plus simple est de garder l'init.ora (si vous l'avez, sinon, il faudra le reconstruire) et ensuite, vous lancez le dbca pour recréer l'instance.
    J'ai un niveau trés bas (si vous n'avez pas apercue) et donc quand j'ai lu ca, ca ma fait très mal, donc tu peut me dire comment recréer l'instance?? quel commande je dois taper?

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    si tu as effacé des fichiers avant d'effacer une tablespace, je te conseille la procédure suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SQL> startup quiet
    ORACLE instance started.
    Database mounted.
    ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
    ORA-01110: data file 9: '/dbms/oracle/LSC63/data/truc.dbf'
     
     
    SQL> alter database datafile 9 offline;
     
    Database altered.
     
    SQL> alter database open;
     
    Database altered.
     
    SQL> drop tablespace monspace including contents;
     
    Tablespace dropped.
    sans garantie que ça marche

  8. #8
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Citation Envoyé par laurentschneider
    si tu as effacé des fichiers avant d'effacer une tablespace, je te conseille la procédure suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    SQL> startup quiet
    ORACLE instance started.
    Database mounted.
    ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
    ORA-01110: data file 9: '/dbms/oracle/LSC63/data/truc.dbf'
     
     
    SQL> alter database datafile 9 offline;
     
    Database altered.
     
    SQL> alter database open;
     
    Database altered.
     
    SQL> drop tablespace monspace including contents;
     
    Tablespace dropped.
    sans garantie que ça marche
    J'avais bien pensé à ce genre de manip, mais vu que les données ne sont pas importantes (d'après ses dires) et qu'il est plus que probable que SYSTEM, UNDO et autres TEMP y soient également passés....

    Et quel est le but du quiet ? en quoi est-ce l'ouverture de la base est plus "calme" ?
    En 10g (voir avant) s'il manque un dbf, il est offline et la base est open de toute façon...

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Je ferai la manipulation demain matin car je suis chez moi.

    J'avais bien pensé à ce genre de manip, mais vu que les données ne sont pas importantes (d'après ses dires)
    Oui je m'en fou completement, on peut tout effacer (sauf le nom de ma base ) . Mais le reste peut etre effacer ca me dérange pas.

    Je vais essayer ce qu'à mis laurentschneider demain.

    Sinon LeoAnderson , j'ai toujours pas compris ce que tu voulais me dire :
    Le plus simple est de garder l'init.ora (si vous l'avez, sinon, il faudra le reconstruire) et ensuite, vous lancez le dbca pour recréer l'instance.
    En 10g (voir avant) s'il manque un dbf, il est offline et la base est open de toute façon...
    Si je fais un simplement "startup" ca marche pas mais si je fais un "startup mount" il marche. Mais je peux pas supprimer la tablespace car il dit qu'il n'est pas monté :s

  10. #10
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par LeoAnderson
    Et quel est le but du quiet ?
    un output moins verbeux, sans information sur la SGA (c'est tout...)

    Citation Envoyé par LeoAnderson
    En 10g (voir avant) s'il manque un dbf, il est offline et la base est open de toute façon...
    non, je ne crois pas... si un fichier est "online" et manquant, Oracle refuse d'ouvrir la base.

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Bon, ca marche toujours pas (je commence à etre degouté) pour un simple suppression d'un fichier sans supprimer le tablespace précédament.

    startup quiet
    Instance ORACLE lancee.
    Base de donnees montee.
    ORA-01157: impossible d'identifier ou de verrouiller le fichier de donnees 5 -
    voir le fichier de trace DBWR
    ORA-01110: fichier de donnees 5 : '/opt/oracle/databases/truc2.dbf'


    SQL> alter database datafile 5 offline
    2 ;
    alter database datafile 5 offline
    *
    ERREUR a la ligne 1 :
    ORA-01145: OFFLINE IMMEDIATE rejete sauf si recuperation apres defaillance
    materielle validee
    Donc voilà , toujours dans la M....., quelqu'un a une autre solution??? Même si je perd tout les tables, c'est pas important!!!
    Ps: il n'y a pas de commande de reset ou un truc du genre sur Oracle?? (car avec une calculatrice c'est facile alors pourquoi pas oracle?)

  12. #12
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Tu a deux solutions :
    Soit tu crée une nouvelle base et bien propre.
    Ou, si tu a tous les fichiers de sauvegarde bdf, alors on peut faire quelque chose.

    Autres chose essaye de refaire la manip de laurentschneider mais au lieu de lancer tu lance alors

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Points : 59
    Points
    59
    Par défaut
    Bon j'ai remplacé : Startup quiet par Startup mount.. mais ca fait la même chose..

    POur le remplacer du fichier manquant, je n'ai pas de sauvegarder. J'ai même regardé dans la corbeille du Linux, aucune trace de mon fichier pour le récupérer.. Pas juste la vie

  14. #14
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Bonjour,
    Essaye ceci :

    login sur SQLPlus en sys as sysdba :

    1. startup de la base (tu va avoir ton erreur)
    2. alter database backup controlfile to trace ;
    3. tu va dans le répertoire $ORACLE_ADMIN/taBase/udump pour récupérer la trace ainsi créée (regarde l'heure des fichiers si tu en as plusieurs)
    4. tu ouvre ce fichier
    5. shutdown de la base
    6. startup nomount
    7. dans le fichier ouvert précédemment, tu trouve le script de recréation du fichier de contrôle (depuis "CREATE CONTROLFILE REUSE...), ça ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE CONTROLFILE REUSE DATABASE "TESTDROP" NORESETLOGS  NOARCHIVELOG
    --  SET STANDBY TO MAXIMIZE PERFORMANCE
        MAXLOGFILES 5
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 1
        MAXLOGHISTORY 226
    LOGFILE
      GROUP 1 'C:\ORACLE\ORADATA\TESTDROP\REDO01.LOG'  SIZE 100M,
      GROUP 2 'C:\ORACLE\ORADATA\TESTDROP\REDO02.LOG'  SIZE 100M,
      GROUP 3 'C:\ORACLE\ORADATA\TESTDROP\REDO03.LOG'  SIZE 100M
    -- STANDBY LOGFILE
    DATAFILE
      'F:\TMP\TESTDROP\SYSTEM01.DBF',
      'F:\TMP\TESTDROP\UNDOTBS01.DBF',
      'F:\TMP\TESTDROP\EXAMPLE01.DBF',
      'F:\TMP\TESTDROP\INDX01.DBF',
      'F:\TMP\TESTDROP\USERS01.DBF'
    CHARACTER SET WE8MSWIN1252 ;
    où tu supprime de la liste des datafiles celui qui te manque.
    8. tu execute le script dans ta session SQLPlus
    9. alter database open ;
    10. drop tablespace monTBSFoutu including contents ;

    tiens-nous au courant
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  15. #15
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Est ce que tu a le fichier system.* ?
    Est ce que tu a les fichiers de contrôles ?

    Si c'est non, Alors tu est obligé de créer ta base.

Discussions similaires

  1. Effacer tous les fichiers d'un repertoire
    Par alcofribas dans le forum Général Python
    Réponses: 2
    Dernier message: 22/07/2009, 14h27
  2. Réponses: 0
    Dernier message: 03/06/2008, 11h44
  3. Réponses: 2
    Dernier message: 01/11/2007, 11h07
  4. [Vbs] effacer tous les fichier d'un repertoire
    Par darksnake dans le forum VBScript
    Réponses: 4
    Dernier message: 04/10/2006, 14h33
  5. Réponses: 2
    Dernier message: 15/08/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo