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 :

Index désactivés impossible à réactiver


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut Index désactivés impossible à réactiver
    Bonjour,

    En ajoutant un champ dans une de mes tables et en déclarant ce champ comme étant une clef étrangère, j'ai obtenu le message suivant :

    Unsuccessful execution caused by an unavailable resource.
    Cannot create foreign key constraint FK_REL_OPE_RADIO_MODEM_3. Partner index does not exist or is inactive.
    Ce message m'a intrigué et j'ai donc vérifié mes index.
    En fait, tous les index de ma base de données sont désactivés, y compris les clefs primaires et étrangères !

    Comment cela se peut-il ?
    J'ai essayé de les réactiver, mais sans succès. A chaque fois, j'obtiens le message suivant :

    Unsuccessfull execution caused by an unavailable resource. Cannot create foreign key constraint FK_REL_OPE_RADIO_MODEM_3. Partner index does not exist or is inactive. Changes will be rolled back...
    J'ai essayé de faire un gbak/restore mais rien de changé quant au statut des index.

    Quelle est la solution, s'il y en a une ?

    Merci de votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    Bonjour,

    Personne n'a d'idée ?
    Je viens de tomber sur un client qui utilise ma base et qui a le problème.
    Un backup/restore ne change rien à son problème non plus.

    La seule solution que j'ai trouvée à ce jour, c'est, en utilisant IBExpert, d'extraire les metadata, de supprimer le fichier fdb et de le reconstituer à partir d'un script basé sur les metadata extraites précédemment !

    Un peu brutal, non ?

  3. #3
    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
    pour activer tous les index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SET TERM !! ;
    EXECUTE BLOCK AS 
    DECLARE VARIABLE stmt VARCHAR(1000); 
    BEGIN for select 'ALTER INDEX '||rdb$index_name ||' ACTIVE;' from rdb$indices into :stmt 
    do EXECUTE STATEMENT :stmt; 
    END!!
    SET TERM ; !! 
    COMMIT;

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    Je teste ça tout de suite et je te tiens au courant...

    Utilisé dans IBExpert, le script déclenche une erreur.
    Ceci étant dit, cela m'a donné l'occasion de constater que les index systèmes (table [System indices]) sont bien tous actifs.
    Ceux qui sont désactivés, ce sont ceux correspondant aux clefs primaires et autres clefs étrangères de mes tables.
    Comment ces index peuvent-ils se désactiver ?
    Est-ce un signe de 'mauvaise santé' de ma base ?

  5. #5
    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
    Citation Envoyé par engi Voir le message
    Utilisé dans IBExpert, le script déclenche une erreur.
    c'est un firebird 2.1?
    mais bon IBE, c'est pas toujours terrible
    passe le script avec isql
    Citation Envoyé par engi Voir le message
    Est-ce un signe de 'mauvaise santé' de ma base ?
    oui
    ce n'est pas normal
    sauf si qq a désactivé les index

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    Script testé sous ISQL.
    Même erreur

    Pour ce qui est de la désactivation des index, je me rends compte que c'est peut-être moi sans le vouloir après avoir utilisé le paramètre -I dans la ligne de commande d'une restauration avec GBAK.

    Cependant, ça n'explique pas qu'il soit maintenant impossible de les réactiver, ces index...

Discussions similaires

  1. Désactiver puis réactiver le filtre automatique
    Par PierrotMfff dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/03/2015, 13h46
  2. Désactiver puis réactiver le filtre automatique
    Par ievtohs dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2011, 19h12
  3. désactiver et réactiver l'aide de visual studio
    Par TSniper dans le forum Visual Studio
    Réponses: 0
    Dernier message: 22/04/2010, 22h45
  4. Réponses: 4
    Dernier message: 23/01/2009, 01h54
  5. Désactiver, réactiver Index
    Par Glutinus dans le forum Oracle
    Réponses: 7
    Dernier message: 26/12/2007, 23h28

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