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 d'un datafile [10g]


Sujet :

Administration Oracle

  1. #1
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 180
    Points : 134
    Points
    134
    Par défaut Suppression d'un datafile
    Bonjour.

    J'ai une base ORACLE 10G 10.2.0.5.0 sous windows 2003 server sp2.
    J'ai un fichier ORA qui est défectueux sur le disque. (message "...inconsistent data ..." dans le journal des évènement systèmes).

    J'ai créé un tablespace pour récupérer les données de ce datafile. (je me suis basé sur dba_segments).
    J'ai ensuite passé la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter database datafile 'monfichier' offline drop;
    J'ai arrêté la base (shutdown immediate), renommé le fichier et rouvert la base.
    Lorsque j'interroge dba_data_files, mon fichier est toujours là mais ONLINE_STATUS = RECOVER .

    Comment dois-je procéder pour que le fichier "n'existe plus" pour ORACLE?

    Merci de votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Voici ce que j'ai trouvé comme restrictions sur le site d'Oracle : est-ce que ton datafile est dans une de ces situations?

    Restrictions for Dropping Datafiles

    The following are restrictions for dropping datafiles and tempfiles:
    The database must be open.

    If a datafile is not empty, it cannot be dropped.

    If you must remove a datafile that is not empty and that cannot be made empty by dropping schema objects, you must drop the tablespace that contains the datafile.

    You cannot drop the first or only datafile in a tablespace.

    This means that DROP DATAFILE cannot be used with a bigfile tablespace.

    You cannot drop datafiles in a read-only tablespace.

    You cannot drop datafiles in the SYSTEM tablespace.

    If a datafile in a locally managed tablespace is offline, it cannot be dropped.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 180
    Points : 134
    Points
    134
    Par défaut
    Merci de te pencher sur le sujet.

    J'avais trouvé ces restrictions.
    Le tablespace du fichier est en "locally managed" mais OnLine.
    j'ai fait la manip base ouverte (en mode restrict, mais ouverte)
    Normalement, le datafile est vide puisque j'ai déplacé les objets présents dans ce datafile en me basant sur dba_objects.
    Et ce n'est ni le tablespace SYSTEM ni un bigfile.

  4. #4
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Si le tablespace est vide, alors c'est le tablespace qu'il faut supprimer.
    La syntaxe "alter database datafile 'monfichier' offline drop;" veut en réalité dire "mettre le datafile offline dans le but de dropper le tablespace"Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  5. #5
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 180
    Points : 134
    Points
    134
    Par défaut
    Merci Pachot.

    Fort de ta réponse, j'ai voulu supprimer le tablespace et j'ai compris mon erreur.
    Comme je l'ai dit, pour déplacer les objets contenus dans mon datafile, je me suis basé sur dba_segments.
    Or, quand j'ai voulu déplacer tous les fichiers de mon tablespace vers un autre tablespace, il s'est avéré que des objets étaient partiellement contenu dans le datafile que je voulais supprimer.

    Pour être exhaustif dans le contenu du datafile, il fallait me baser sur dba_extents.
    Là, on a la liste des objets présents, entièrement ou partiellement, dans le datafile (pour info, il faut faire le lien entre DBA_EXTENTS.RELATIVE_FNO et DBA_DATAFILES.FILE_ID).

    J'ai donc restauré mon datafile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Recover datafile 'monfichier';
    fini de déplacer le contenu de mon tablespace, et là j'ai pu simplement exécuter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     alter tablespace MonTablespace drop datafile 'monfichier';
    merci de votre aide à tous les deux.

  6. #6
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par olivier] Voir le message
    Pour être exhaustif dans le contenu du datafile, il fallait me baser sur dba_extents.
    Oui, effectivement. DBA_SEGMENTS ne va montrer que le header du segment.

    Citation Envoyé par olivier] Voir le message
    Là, on a la liste des objets présents, entièrement ou partiellement, dans le datafile (pour info, il faut faire le lien entre DBA_EXTENTS.RELATIVE_FNO et DBA_DATAFILES.FILE_ID).
    La jointure doit se faire sur FILE_ID et non sur RELATIVE_FNO. Ils ont souvent la même valeur sauf quand on transporte des tablespaces ou qu'on a beaucoup de datafiles.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  7. #7
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 180
    Points : 134
    Points
    134
    Par défaut
    Comme FILE_ID n'existait pas pas dans DBA_SEGMENTS, j'ai cru qu'il en était de même pour DBA_EXTENTS.
    Merci pour ce complément.

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

Discussions similaires

  1. Suppression Datafile Recover
    Par petitfrere dans le forum Administration
    Réponses: 1
    Dernier message: 19/08/2009, 14h59
  2. Suppression de Datafiles
    Par Mothership dans le forum Administration
    Réponses: 5
    Dernier message: 14/08/2008, 14h36
  3. Suppression du table space avec datafile
    Par magboom dans le forum Oracle
    Réponses: 5
    Dernier message: 16/08/2007, 10h01
  4. Réponses: 3
    Dernier message: 23/09/2006, 13h05
  5. Suppression de datafile
    Par marcool18_fr dans le forum Oracle
    Réponses: 2
    Dernier message: 27/04/2006, 15h07

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