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 :

Réduire la taille de plusieurs datafiles


Sujet :

Administration Oracle

  1. #1
    Membre actif
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 246
    Points
    246
    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 actif

    Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 167
    Points : 265
    Points
    265
    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 Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    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 / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

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

  4. #4
    Membre régulier
    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 : 93
    Points
    93
    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 actif
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Points : 289
    Points
    289
    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 actif
    Homme Profil pro
    Chef de produit
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de produit

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 246
    Points
    246
    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. Réduire la taille d'un vecteur de très grande dimension
    Par camboui dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 07/06/2017, 13h23
  2. [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
  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 Autres éditeurs
    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