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

Firebird Discussion :

Compactage à chaud ?


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Par défaut Compactage à chaud ?
    Bonjour,

    Est-il possible de compacter une base "à chaud" ?
    Ou y a-t-il un moyen de regénérer les index sans arrêter la BDD ?

    Merci

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Par défaut Je complète ma question
    Le but est de faire baisser la taille de la base de données ou alors, trouver un moyen de ne pas la faire grossir en recalculant par-exemple la sélectivité des index de manière régulière ?

    Pour info, Il y a des insertions et suppressions en masse et de manière continue dans cette base.

    Merci

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Par défaut
    1. tu peux compacter une base à chaud avec l'utilitaire gbak. Voici un bon lien qui explique l'utilité de cet exécutable
    Explications sur gbak en anglais

    Explications sur le site IBPhoenix en français

    2. Oui il y a moyen mais assure toi de n'avoir qu'une seule connexion et transaction sur la base de données car cela risque de poser problème au niveau des contraintes référentielles lors que tu rerecréera les index.

    Néanmoins pour recalculer les index je te conseille de créer la procédure stockée suivante qui est déjà présente dans un des messages de ce forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE PROCEDURE RECALCULINDEX
    AS
    DECLARE VARIABLE MONINDEX VARCHAR(500);
    BEGIN 
      FOR SELECT RDB$INDEX_NAME FROM RDB$INDICES INTO :MONINDEX DO 
      BEGIN 
     
        EXECUTE STATEMENT ('SET statistics INDEX ' || :MONINDEX || ';'); 
      END
    END
    puis de la lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE PROCEDURE RECALCULINDEX;
    Cela recalculera la sélectivité de tous tes index.

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Par défaut restore ?
    Merci.

    Mais le restore peut-il ausi être fait à chaud sur la même base ?

    Style :
    Restore to an already existing database (Firebird 2.0)
    gbak -r o -v -user SYSDBA -password masterkey c:\backups\warehouse.fbk dbserver:/db/warehouse.fdb

    Pour la regénération d'index :
    Oui merci j'avais trouvé le code sur le forum, mais je ne savais pas si cela allait jouer sur le volume de la base.

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 17
    Par défaut Encore une question
    Pour une grosse application en client/serveur qui tourne en permanence, comment peut-on se dépétrer du problème de grossissement de base à ce moment là ?
    Je ne peux jamais garantir qu'il n'y ait qu'une seule connexion ou transaction...

    Je ne dois pas être la seule dans ce cas...

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    il n'y pas de probleme de grossissement si les transactions sont correctes et si tu fais un backup (sans restore) avec gbak régulièrement.
    Le serveur réutilisera la place disponible, les nouveaux insert utiliseront la place disponible après les suppressions

  7. #7
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    salut , j'ai un petit question stu...
    normalement si en fait un restore les données modifier après le backup seront perdus, non?

Discussions similaires

  1. Compactage de la base en cours
    Par Maxence HUBICHE dans le forum Access
    Réponses: 26
    Dernier message: 16/12/2004, 15h22
  2. Compactage automatique d'une Base protégée
    Par matgel dans le forum Contribuez
    Réponses: 44
    Dernier message: 07/06/2004, 16h25
  3. Compactage d'une BD Access !
    Par bNoureddine dans le forum Bases de données
    Réponses: 7
    Dernier message: 19/03/2004, 16h42
  4. Usb à chaud sous RedHat
    Par Ultra-FX dans le forum Administration système
    Réponses: 7
    Dernier message: 03/02/2004, 10h34
  5. [debutante]"compactage" de tables
    Par norkius dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 03/12/2003, 13h31

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