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 :

[DBA][8i] Supprimer un tablespace temporaire en ligne


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 7
    Points
    7
    Par défaut [DBA][8i] Supprimer un tablespace temporaire en ligne
    Bonjour à tous,
    Tout d'abord, bravo pour ce site qui est une véritable mine d'or pour qui veut approfondir ses connaissances.
    La bdd que j'administre (Oracle 8.1.7, win2K/SP4, production 24/7) possède un tablespace temporaire de type temporary ("temp") géré par le dictionnaire, que j'aimerais remplacer par un tempfile.
    Je compte procéder comme suit :
    - Créer le tempfile (allocation d'extents uniformes de 128 Ko, autoextend, maxsize unlimited).
    - Affecter ce tempfile comme tablespace temporaire par défaut pour tous les utilisateurs de la base (commande "Alter user [nom_utilisateur] temporary tablespace...").
    - Vérifier si l'ancien tablespace temporaire ("temp") est tjs utilisé en interrogeant la vue v$sort_usage.
    - Supprimer l'ancien tablespace temporaire ("DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES), base ouverte et en activité.

    Avant de lancer cette opération, voici les questions que je me pose :

    - Il s'agit d'une base de prod 24/7, puis-je supprimer le tablespace temporaire en ligne (et sans le mettre en offline au préalable) ?
    - La base est sauvegardée en hotbackup. Faut-il inclure le tempfile dans la liste des fichiers à sauvegarder ? Si non, comment récupérer ce tempfile en cas de restauration de la base ?
    Merci à tous pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Bonjour et bienvenue

    1/ aucun problème

    2/ pas la peine, la base redémarre même sans tempfile mais il faudra recréer les controlfiles pour exclure le tempfile perdu :
    http://orafrance.developpez.com/dbahelp/#L2.1

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Quelle réactivité !!! Youpi !!!
    Je reposte dès que j'aurais fait la manip (je dois attendre qu'un gros traitement se termine) pour dire si tout s'est bien passé et clore le post.
    MERCI

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Bonjour,

    Si tu fais du backup à chaud je te conseille de supprimer le temp de tes scripts; si tu utilises RMAN je crois que par défaut il ne le sauvegarde pas.

    En plus avec un tempfile si tu lances un backup controlfile to trace, tu verras que le fichier n'est pas sauvegardé, pourquoi?

    Regarde l'horodatage de ton fichier après arrêt de la base, il n'est pas horodaté ce qui signifie que lors du shutdown le checkpoint ne passe pas sur ce fichier donc aucune trace dans le fichier de contrôle si tu redémarres après un crash.

    Le tempfile, tu le recréé simplement,

    voilà, voilà
    Bonne manip
    Alain

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    J'ai bien effectué la procédure décrite ci-dessus. Après avoir créé le tempfile et affecté celui-ci commme tablespace temporaire par défaut pour tous les utilisateurs de la base, j'ai mis l'ancien tablespace temporaire en offline et laissé le processus SMON le vider de ses extents.
    J'ai ensuite fait un drop tablespace including contents sur l'ancien tablespace temporaire.
    Ce qui peut intéresser les lecteurs de ce forum : la suppression de ce tablespace ne s'est pas faite immédiatement, contre toute attente. Le processus de suppression m'a pris une bonne heure. D'après Metalink, ce temps est dû à la suppression dans la table sys.fet$ des extents liés à ce tablespace temporaire et conservés à des fins d'optimisation.
    Pour voir où en est ce processus, il suffit de faire les 2 requetes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ts# from v$tablespace where name = [nom_tablespace];
    pour retrouver le no du tablespace

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from sys.fet$ where ts# = [la valeur ts$ trouvée précedemment];
    Donc 1h pour un tablespace temporaire de 7,8 Go (environ 60000 lignes correspondantes dans sys.fet$).

    Avant de clore ce post, une dernière question.
    J'ai intentionnellement conservé le datafile associé au tablespace temporaire que j'ai supprimé dans Oracle. Cependant, la date de dernière modification de ce fichier au niveau OS (W2K) est largement postérieure à la date de suppression dans Oracle du tablespace associé. En interrogeant la vue dba_data_files et en examinant le fichier de controle issu par un "alter database controlfile to trace", je ne trouve pourtant plus aucune trace du tablespace supprimé. Aussi, quel processus peut donc bien écrire dans le datafile associé à un tablespace supprimé ? (à ma connaissance, le checkpoint ne s'effectue pas sur un datafile dont le tablespace n'est plus référencé dans le dictionnaire).
    Merci à tous pour votre aide.

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

Discussions similaires

  1. [ORA-1630] Tablespace Temporaire
    Par Débéa dans le forum Oracle
    Réponses: 4
    Dernier message: 09/01/2006, 14h47
  2. Réponses: 1
    Dernier message: 09/12/2005, 19h12
  3. "Explosion" du Tablespace Temporaire
    Par Yorglaa dans le forum Oracle
    Réponses: 3
    Dernier message: 04/03/2005, 09h55
  4. [DBA] Erreur drop datafile..tablespace
    Par chand_bing dans le forum Oracle
    Réponses: 4
    Dernier message: 17/11/2004, 09h41
  5. Supprimer les tab & retour à la ligne d'un Memo
    Par TheDarkLewis dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/10/2004, 10h44

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