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 :

La procédure à suivre pour recréer un tablespace


Sujet :

Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut La procédure à suivre pour recréer un tablespace
    Bonjour,

    Je suis sous Oracle 9i
    J'ai un tablespace qui est composé d'un fichier de données qui est beaucoup trop volumineux par rapport aux données qu'il contient.
    Le coalesce ne fonctionne hélas pas

    J'aimerais donc recréer ce fichier de données tout en sachant qu'il est utilisé en permanence par la base ...

    Faut il obligatoirement faire la manip avec la base offline ?
    Quelle est la meilleure procédure à suivre afin de transférer ces données vers un nouveau datafile qui porterait le meme nom ?

    J'ai pensé à :
    1) export des données
    2) creation du datafile
    3) import des données dans le nouveau datafile
    4) ancien datafile offline + delete
    5) renommer le nouveau datafile pour avoir le nom de l'ancien

    Mais cette procédure fonctionne seulement avec la base offline ... en raison des données qui pourraient s'enregistrer dans l'ancien datafile durant la procédure ...

    Votre aide est la bienvenue afin de m'indiquer une bonne procédure fiable et éprouvée

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Bonjour ,

    1) Avez vous essayez de determiner le HWM ?


    Jaouad

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut
    Bonjour,

    Voici le résultat que j'obtiens pour le tablespace en question :

    FILE_SIZE_IN_BYTES
    4,1527E+10

    HWM_BYTES
    1,7310E+10

    SAVING
    2,4217E+10

    Avec un logiciel comme Tora,
    je vois que le TBS fait environ 40go dont 39Go d'utilisé alors que je ne pense pas que ce soit le cas ...

    EDIT : Je précise que sur le Tablespace, il y a eu une grande opération de suppression d'enregistrement ...

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    excusez moi mais je n'ai pas trés bien saisit ,
    Vous avez un TBS de 40 giga avec 39 Go d'utilisé et vous souhaitez donc pouvoir diminuer ce fichier .

    je ne comprends pas pourquoi vous voulez effectuer cette opération .

    Je vous donne quand même une solution On line .

    1) créer le TBS voulu
    2) si Table faire un move
    3) si Index faire un rebuild online
    4) dropper l'ancien TBS


    Ceci étant dit cela risque de ralentir votre base et de provoquer des attentes sur les objets en cours .... ( mais le reste des données est acessible normalement )

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut
    En fait, il y a environ 2 mois, pour une raison X, plusieurs millions d'enregistrements ont été inseré dans une des tables du tablespace ce qui a entrainé une augmentation de la taille du datafile de 4go à 40go
    Depuis, j'ai supprimé les enregistrements qui n'étaient plus nécessaires (les millions d'enregistrements créés précedemment)
    Or, le datafile a toujours la même taille
    et il y a seulement quelques milliers d'enregistrements sur la datafile, je ne vois pas pourquoi le datafile n'a pas repris sa taille précédente

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    c 'est tout à fait normal , le fichier ne reprend pas sa taille automatiquement et notamment à cause du HWM


    Tu peux donc utilisé la méthode décrite plus haut

    Ps : donc ton fichier ne contient pas 39 go de données comme tu l'a écrit plus haut

    Jaouad

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut
    Je suis donc obligé de supprimer/recréer le tablespace pour retrouver une taille correspondant aux enregistrements inscrits dans les tables du TBS ?



    C'est pas un peu nul de se recréer à la main des tablespaces pour retrouver un espace disque qui n'est normalement plus utilisé ? :

    Merci pour tes conseils avisés 8)

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    non , il n'est pas besoin de dropper un tbs , tu peux diminuer sa taille par la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter database  datafile datafile_name resize taile ;

    des que le HWM le permet


    Jaouad

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut
    J'essaie de resizer un datafile avec les informations suivantes concernant le HWM :

    - Taille totale du datafile : 4go
    - position HWM : 2go
    - espace gagné : 2go

    quand j'essaie de faire un resize à 2,4Go
    il me dit que le fichier contient des données utilisées au-delà de la valeur ...
    Je pensais que le HWM correspondait au dernier bloc qui contient des données ...

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    pour avoir le HWM

    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
    20
    21
    22
    23
     
    set linesize 250
    column file_name format a55;
    column tablespace_name format a20;
    column highwater format 999999999999999;
    set pagesize 9999
     
    select a.tablespace_name
           ,a.file_name
           ,(b.maximum+c.blocks-1)*d.db_block_size highwater
    from   dba_data_files a
           ,(select file_id,max(block_id) maximum
             from dba_extents
             group by file_id) b
           ,dba_extents c
           ,(select value db_block_size
             from v$parameter
             where name='db_block_size') d
    where a.file_id  = b.file_id	
    and   c.file_id  = b.file_id
    and   c.block_id = b.maximum
    order by a.tablespace_name,a.file_name
    /

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 21
    Par défaut
    Bonjour,

    j'aimerais savoir si un

    ALTER TABLE nom DEALLOCATE UNUSED sur les tables appartenant au Tablespace pourrait permettre de resizer automatiquement le datafile du tablespace en question ? :

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

Discussions similaires

  1. Delphi7-DOA : procédure dynamique pour ramener les données?
    Par delphim dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/12/2004, 18h26
  2. Réponses: 5
    Dernier message: 04/10/2004, 18h20

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