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

Administration Oracle Discussion :

Suppression de fichier dbf par mégarde [10gR2]


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Par défaut Suppression de fichier dbf par mégarde
    Bonjour,

    j'ai supprimé des fichiers dbf par mégarde et Oracle n'aime pas ça

    Petite explication : j'ai une base de données Oracle 10gR2 avec un user : INT1. Il a 2 tablespaces : 1 pour les datas et 1 pour les indexes (+1 temporaires bien sûr) :
    • user INT1 :
      1. tablespace INT1_DATA /oracle/oradata/MADB/INT1_DATA.dbf
      2. tablespace INT1_INDEXES /oracle/oradata/MADB/INT1_INDEXES.dbf


    J'ai voulu créer un 2ème user sur le même principe
    • user INT2 :
      1. tablespace INT2_DATA /oracle/oradata/MADB/INT2_DATA.dbf
      2. tablespace INT2_INDEXES /oracle/oradata/MADB/INT2_INDEXES.dbf


    J'ai donc crée le 2ème user puis j'ai fait une connerie : j'ai supprimé le fichier /oracle/oradata/MADB/INT2_INDEXES.dbf


    Sur les "conseils" d'un collègue j'ai executé les commandes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE;
    RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
    Mais ça n'a rien changé

    maintenant lorsque je démarre ma bdd, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     startup
    ORACLE instance started.
     
    Total System Global Area 2147483648 bytes
    Fixed Size                  2022144 bytes
    Variable Size             301991168 bytes
    Database Buffers         1828716544 bytes
    Redo Buffers               14753792 bytes
    Database mounted.
    ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
    Si je veux me connecter il me dit que la base n'est pas "open" et si je veux ouvir la bdd j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL>  alter database open resetlogs;
     alter database open resetlogs
    *
    ERROR at line 1:
    ORA-01194: file 1 needs more recovery to be consistent
    ORA-01110: data file 1: '/oracle/oradata/MADB/system01.dbf'

    J'ai également tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
    ORA-00283: recovery session canceled due to errors
    ORA-01110: data file 29: '/oracle/oradata/MADB/INT2_INDEXES.dbf'
    ORA-01157: cannot identify/lock data file 29 - see DBWR trace file
    ORA-01110: data file 29: '/oracle/oradata/MADB/INT2_INDEXES.dbf'
    ce fichier n'existe plus c'est celui que j'ai supprimé

    Est-ce que quelqu'un voudrait bien m'aider ? J'ai plusieurs jours de boulot sur le user INT1

    merci

    Poichou

  2. #2
    Membre éclairé Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Par défaut
    Petite précision, je n'ai pas réussi à restaurer les fichiers avec des outils UNIX.
    Il me faut donc vraiment une solution oracle.

    Est-ce possible

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    Bonjour,
    avez-vous un backup Oracle ? ou non ?

  4. #4
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    La solution que j'appliquerais à votre place :

    1. créer un fichier de paramétrage si vous utilisez un spfile create pfile from spfile.
    2. Arrêter la base de données touch fichier_manquant
    3. Sauvegarder la base de données à froid par copie des fichiers
    4. Recréer le fichier manquant
    5. Editer le fichier de paramètre pour y ajouter la ligne suivante
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      *._allow_resetlogs_corruption=true
    6. redémarrer en mode mount et effectuer une recovery fictive (comme votre collègue vous l'a indiqué)
    7. ouvrir la base alter database open resetlogs;
    8. sauvegarder vos données par export datapump
    9. détruire votre base de données
    10. recréer votre base de données
    11. importer les données par import datapump
    12. recompiler les éventuels packages qui en ont besoin @?/rdbms/admin/utlrp
    13. recréer vos index
    14. supprimer le paramètre *._allow_resetlogs_corruption du fichier d'init

    Ca devrait fonctionner si votre fichier perdu ne contenait que des index.

  5. #5
    Membre éclairé Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Par défaut
    Citation Envoyé par Marc Musette Voir le message
    Bonjour,
    avez-vous un backup Oracle ? ou non ?
    Malheureusement non, du coup je suis dans l'obligation de refaire fonctionner mon oracle

    Citation Envoyé par ojo77 Voir le message
    La solution que j'appliquerais à votre place :

    1. créer un fichier de paramétrage si vous utilisez un spfile create pfile from spfile.
    2. Arrêter la base de données
    3. Sauvegarder la base de données à froid par copie des fichiers
    4. Editer le fichier de paramètre pour y ajouter la ligne suivante
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      *._allow_resetlogs_corruption=true
    5. redémarrer en mode mount et effectuer une recovery fictive (comme votre collègue vous l'a indiqué)
    6. ouvrir la base alter database open resetlogs;
    7. sauvegarder vos données par export datapump
    8. détruire votre base de données
    9. recréer votre base de données
    10. importer les données par import datapump
    11. recompiler les éventuels packages qui en ont besoin @?/rdbms/admin/utlrp
    12. recréer vos index
    13. supprimer le paramètre *._allow_resetlogs_corruption du fichier d'init

    Ca devrait fonctionner
    J'ai fait create pfile from spfile et un shutdown immediate. Pour la sauvegarde des fichiers c'est ok également.
    Par contre peux-tu me dire où je peux trouver le fichier de param à éditer ?


    Merci à vous 2 de m'aider je suis vraiment en stress de ne pas récupérer mes infos

    PoichOU

  6. #6
    Membre éclairé Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Par défaut
    dans le répertoire /oracle/home/product/10.2.0/db_1/dbs
    j'ai trouvé :
    • initMADB.ora
    • init.ora
    • spfileMADB.ora


    j'ai testé de rajouter *._allow_resetlogs_corruption=true dans le 1er fichier mais ça n'a rien changé

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Par défaut
    Bonjour,

    Ci-dessous un très bon article (en anglais) sur comment s'en sortir après un rm de datafiles sur une machine linux. Le tout avec une indispo très limité.

    http://www.pythian.com/blog/how-to-r...h-no-downtime/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression d'un tablespace APRÈS avoir supprimer le fichier dbf
    Par Tanebisse dans le forum Administration
    Réponses: 2
    Dernier message: 06/09/2012, 15h44
  2. création de fichier dbf par interface window form
    Par AntaresJon dans le forum VB.NET
    Réponses: 3
    Dernier message: 30/04/2010, 09h12
  3. Réactualiser la taille d'un Fichier DBF après suppression de lignes
    Par oiapoque dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/07/2006, 13h52
  4. Réponses: 4
    Dernier message: 18/09/2003, 10h06
  5. Réponses: 6
    Dernier message: 02/09/2003, 15h12

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