+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité de passage
    Inscrit en
    décembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Erreurs sur transferts de données

    Bonjour,

    Tout d'abord je tien a féliciter ce forum très bien construit et suivie
    J'espère être dans le bon endroit pour ma question
    J'ai installer une base informix en local sur 6 pc portable (pc pour des médecins), le transfert d'information ce fait a partir d'une clef USB, quand j'importe une petite entreprise sa marche très bien, mais quand je veux importer une entreprise de 300 employer ou plus un message d'erreur apparaît Table mtp_dosmed ERROR:
    -458. LONG TRANSACTION ABORTED)
    JE CLIQUE OK et un 2 éme message apparaît:
    ( Tble mtp-histo-evt ERROR: -691. MISSING KEY IN REFERENCED TABLE FOR REFERENTIAL CONSTRAINT (informix.cf_k_02_a7189). ISAM CODE= -111.
    Merci d'avance pour votre aide, je pense qu'il existe une mise a jour pour cela

  2. #2
    Futur Membre du Club
    Consultant Informix
    Inscrit en
    juillet 2009
    Messages
    12
    Détails du profil
    Informations professionnelles :
    Activité : Consultant Informix

    Informations forums :
    Inscription : juillet 2009
    Messages : 12
    Points : 15
    Points
    15

    Par défaut ca sent à plein nez le probleme de logical logs !!!

    tu n'as pas assez de journaux logiques pour la première erreur. Fais un onstat -d pour voir le nombre de journaux. je pense que tu dois etre à 13 (par défaut). Il faut en rajouter.

    Code :
    1
    2
     
    onparams -a [ -d <dbspace> ]
    Si tu ne spécifie pas l'option -d, les journaux se mettront par défaut dans le dbspace rootdbs.

    Pour la deuxième erreur, elle parle d'elle-même je pense. ll te manque la clé dans la clé de reférence dans la table sur laquelle il y a la contrainte référentielle. Maintenant ca peut venir de ton soft qui chronologiquement :
    - Execute l'import
    - Fais des actions juste après que la base soit importé mais malheureusement ne vérifie pas qu'elle l'est vraiment.

    Je m'explique : quand tu lance l'import de la base, tu déroule en faite le script sql du schéma de la base. Donc au début il y a bien la création de la base avec les tables au fur et à mesure. Je pense que tu as une table qui contient beaucoup de lignes (beaucoup d'employés ??) et que celle-ci consomme tous les journaux lors de son écriture et plante. Lorsqu'il plante, il supprime pas forcément la base. D'où ta deuxième erreur.

    Ce que je te conseille d'une manière générale :

    Dans le sql qui est dans le répertoire <base>.exp, change la commande create database en retirant "with log". Une fois que la base est terminée, tu executera les commandes :

    Code :
    1
    2
    3
     
    ondblog unbuf <base>
    onbar -b -F
    Tiens moi au courant !!!

  3. #3
    Invité de passage
    Inscrit en
    décembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Solution pour agrandir les logs et dbspace

    Ta vue juste, je te transmet les commandes a faire pour agrandir les logs et dbspace:
    Se connecter avec informix en local et utiliser la console DOS mapp_dep_tr (env variables) dans Prog -> Informix 9.21

    onstat –d affiche les dbspaces (volume logique) et les chunks (fichier physique dans C:\INFXDATA)

    onstat –l affiche les fichiers logs

    Ajouter de la place à un DBSPACE (tempdbs ou logsdbs) :

    (l'agrandissement se fait en dynamique)

    onspaces –a logsdbs –p C:\IFMXDATA\MAPP_DEP_TR\CH_APP_DEP_TR_L
    -s 65536 –o 65536
    Offset du chunk (16384 X 4) (Attention : peut être différent)

    Taille du chunk ajouté (16384 X4)

    Création des Logs :

    -Passer en mode Quescient (administrateur – mono utilisateur)
    onmode –s

    -Créer les logs :
    onparams -a -d logsdbs –s 5120 (taille du log logique (1280X4))
    (à faire plusieurs fois jusqu'au message informix)

    -Repasser en mode normal (Online) :
    onmode –m

    -Rendre les logs utilisables (les mettre en statut free (F)) :
    ontape -s

    -Vérification :
    onstat –d
    onstat –l

  4. #4
    Futur Membre du Club
    Consultant Informix
    Inscrit en
    juillet 2009
    Messages
    12
    Détails du profil
    Informations professionnelles :
    Activité : Consultant Informix

    Informations forums :
    Inscription : juillet 2009
    Messages : 12
    Points : 15
    Points
    15

    Par défaut

    Je suppose que ton probleme est donc résolu ?

    Content que ça refonctionne !!!

  5. #5
    Invité de passage
    Inscrit en
    décembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : décembre 2009
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Solution trouver

    Oui effectivement mon probléme est résolue. Comme quoi sa sert de ce prendre la tete Peut etre que les infos vont te servire pour un éventuelle probléme, merci encore d'avoir prit la peine de réppondre, a bientot pour une autre question loll

  6. #6
    Futur Membre du Club
    Consultant Informix
    Inscrit en
    juillet 2009
    Messages
    12
    Détails du profil
    Informations professionnelles :
    Activité : Consultant Informix

    Informations forums :
    Inscription : juillet 2009
    Messages : 12
    Points : 15
    Points
    15

    Par défaut

    OK.

    Mais en faite toutes les commandes que tu m'as indiqué je les ai mis plus haut. Sauf que je ne passe pas en Single-User, il n'y en a pas besoin, et je fais une sauvegarde fictive au lieu de faire une vraie sauvegarde comme tu l'as indiqué. Après ce qui sert beaucoup lors des chargements de données en masse, c'est que l'on créé la nouvelle base sans journalisation, on la charge (dbimport ou autre), puis on réactive la journalisation (ondblog <unbuf|buf> <database>). Ca permet de ne pas consommer des journaux inutilement.

    A bientot

  7. #7
    Membre actif
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    octobre 2010
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 102
    Points : 157
    Points
    157

    Par défaut

    Autre méthode à partir de la 9.5, si jamais tu n'as que quelques tables à charger:
    avant de charger:
    Code :
    ALTER TABLE matable TYPE (RAW);
    et après chargement:
    Code :
    ALTER TABLE matable TYPE (STANDARD);
    TYPE RAW => passe ta table en mode non journalisé
    TYPE STANDARD: passe ta table en mode journalisé.

    Il faut bien sûr avoir une base journalisée au départ.
    Les 2 commandes sont immédiates.
    Eric

+ Répondre à la discussion
Cette discussion est résolue.

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
  •