p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 163
    Points : 61
    Points
    61

    Par défaut Réduire la taille de plusieurs datafiles

    Bonjour,
    J'ai une base oracle de plusieurs Gégats avec plusieurs schéma.
    chaque schéma a ses propres fichiers dbf.
    Je voulais récupérer de l'espace alloué d'un schéma pour les mettre sur un schéma .
    donc j'ai supprimé quelques tables du premier schéma mais les fichiers dbf occupe toujours de l'espace sur le disque.
    Est ce que cette commande me suffira pour réduire l'espace des fichiers dbf sachant que j'en ai plusieurs (fichier1.dbf ,fichier2.dbf, fichier3.dbf )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter database datafile '/mon_chemin/foo.dbf' resize XG
    si vous avez des idées pour régler mon problème je suis prenant.
    j'espère que j'étais claire dans mes explications.
    merci par avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 120
    Points : 148
    Points
    148

    Par défaut

    il y a peu de chance que un simple alter resize puise te permettre de récupérer tout l'espace. Tente ca ne coute rien. Car la Hight water mark est surement plus haute.

    si tu est en 10 il faut faire des srink ou import export ou autre
    cet article semble pas mal
    http://www.oracle-base.com/articles/...ace.php#shrink

  3. #3
    Rédacteur/Modérateur
    Avatar de fadace
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    3 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2002
    Messages : 3 961
    Points : 16 130
    Points
    16 130

    Par défaut

    Oui, c'est effectivement votre high watermark qui déterminera le minimum de votre datafile.

    Il y a plusieurs options, dépendant de la fenêtre de maintenance que vous avez. Par exemple :

    • Renommer votre TBS : alter tablespace TT rename to TT2
    • Recréer un TBS TT minimum avec un autoextend à ON : create tablespace TT
    • Déplacer les tables, les lobs, les indexes de TT2 à TT
    • Via le Grid Control, vous assurer qu'il n'y a plus de dépendance à TT2, et le supprimer (attention aux quotas, à l'invalidation des indexes,...)
    Sr DBA Oracle / Sybase / MS-SQL / MySQL / DB2 / Postgresql / Informix
    Administrateur SAP
    Mes articles

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    septembre 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : septembre 2010
    Messages : 73
    Points : 69
    Points
    69

    Par défaut

    Salut,

    Comme c'est noel, on est généreux. je complète la solution proposée par un script que j'utilise pour ce genre d'opérations :

    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
    24
    25
    26
    27
    28
    29
    set pages 8000
    set feedback off
    set heading off
    set echo off
     
    spool move_table.sql
     
     
    select 'alter table '||owner||'.'||table_name||' move tablespace  TT parallel 5 ; ' as reorg_table from dba_tables
    union
    select 'alter index '||owner||'.'||index_name||' rebuild tablespace  TT parallel 5 ; ' from dba_indexes ;
     
    select 'alter index '||owner||'.'||index_name||' noparallel  ; ' from dba_indexes 
    UNION
    select 'alter table '||owner||'.'||table_name||' noparallel  ; ' from dba_tables ;
     
    spool off
     
    @move_table.sql
     
    spool check_depends.sql
     
    select index_name from dba_indexes where tablespace_name = 'TT2' 
    union
    select index_name from dba_ind_partitions where tablespace_name = 'TT2'
    union
    select table_name from dba_tables where tablespace_name = 'TT2' 
    union
    select table_name from dba_tab_partitions where tablespace_name = 'TT2' ;
    Petites explications :
    1) Générer un script move_table.sql qui contiendra les ordres SQL qui permettront de bouger les tables et les index vers le nouveau tablespace. Ces ordres utilisent un // 5 pour aller plus vite.

    2) Après l'opération de move, on remet les tables et index en noparallel (car peut dégrader les perfs)

    3) Un dernier script qui check s'il existe des objets dans l'ancien tablespace TT2. On doit avoir 0, sinon refaire les étape 1et 2.

    Remplacer dba_tables et dba_indexes par all_tables et all_indexes si pas le droit de lire les vues DBA_.

    En esperant que cela aidera.

  5. #5
    Membre confirmé
    Inscrit en
    avril 2006
    Messages
    699
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 699
    Points : 244
    Points
    244

    Par défaut

    Salut
    j'ai reperé cet article, regarde le c'est interessant:

    http://avdeo.com/2008/02/21/reducing...-database-10g/

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    mai 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 163
    Points : 61
    Points
    61

    Par défaut

    Merci pour vos réponses.
    je regarde toutes les pistes que vous m'avez indiqué et je reviens vers vous.
    Merci encore une fois.

Discussions similaires

  1. [Oracle 8i] réduire la taille d'une base de test
    Par delphim dans le forum Oracle
    Réponses: 2
    Dernier message: 04/07/2005, 11h59
  2. Réduire la taille d'un vecteur de très grande dimension
    Par camboui dans le forum Général Algorithmique
    Réponses: 12
    Dernier message: 16/06/2005, 13h26
  3. Réduire la taille des fichier .LDF ?
    Par webtheque dans le forum MS SQL-Server
    Réponses: 12
    Dernier message: 31/03/2005, 11h48
  4. [GCC] Réduire la taille d'un programme statique
    Par Geronimo dans le forum Outils pour C & C++
    Réponses: 3
    Dernier message: 05/03/2004, 16h34
  5. réduire la taille d'un datafile
    Par delphim dans le forum Administration
    Réponses: 30
    Dernier message: 20/02/2004, 16h25

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