Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  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 : 56
    Points
    56

    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 :
    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
    113
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 113
    Points : 126
    Points
    126

    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 Fabien Celaia
    Administrateur de base de données
    Inscrit en
    octobre 2002
    Messages
    3 930
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Celaia
    Âge : 44
    Localisation : Suisse

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

    Informations forums :
    Inscription : octobre 2002
    Messages : 3 930
    Points : 14 381
    Points
    14 381

    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 Alexis ONGAGNA
    Administrateur de base de données
    Inscrit en
    septembre 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexis ONGAGNA
    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 : 66
    Points
    66

    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 :
    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é
    Profil pro Luis
    Inscrit en
    avril 2006
    Messages
    677
    Détails du profil
    Informations personnelles :
    Nom : Luis

    Informations forums :
    Inscription : avril 2006
    Messages : 677
    Points : 219
    Points
    219

    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 : 56
    Points
    56

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •