Précédent   Forum du club des développeurs et IT Pro > Bases de données > Autres SGBD > Informix
Informix Forum d'entraide Informix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2009, 10h39   #1
MSA alex
Invité de passage
 
Inscription : 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:
Citation:
-458. LONG TRANSACTION ABORTED)
JE CLIQUE OK et un 2 éme message apparaît:
Citation:
( 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
MSA alex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2009, 22h31   #2
abdellah234
Candidat au titre de Membre du Club
 
Consultant Informix
Inscription : juillet 2009
Messages : 12
Détails du profil
Informations professionnelles :
Activité : Consultant Informix

Informations forums :
Inscription : juillet 2009
Messages : 12
Points : 14
Points : 14
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 !!!
abdellah234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2009, 15h58   #3
MSA alex
Invité de passage
 
Inscription : 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
MSA alex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2009, 17h16   #4
abdellah234
Candidat au titre de Membre du Club
 
Consultant Informix
Inscription : juillet 2009
Messages : 12
Détails du profil
Informations professionnelles :
Activité : Consultant Informix

Informations forums :
Inscription : juillet 2009
Messages : 12
Points : 14
Points : 14
Je suppose que ton probleme est donc résolu ?

Content que ça refonctionne !!!
abdellah234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2009, 09h37   #5
MSA alex
Invité de passage
 
Inscription : 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
MSA alex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2009, 19h17   #6
abdellah234
Candidat au titre de Membre du Club
 
Consultant Informix
Inscription : juillet 2009
Messages : 12
Détails du profil
Informations professionnelles :
Activité : Consultant Informix

Informations forums :
Inscription : juillet 2009
Messages : 12
Points : 14
Points : 14
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
abdellah234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 09h03   #7
begooden-it
Membre habitué
 
Homme Eric Vercelletto
Achitecte Informix SGBD et applications
Inscription : octobre 2010
Messages : 84
Détails du profil
Informations personnelles :
Nom : Homme Eric Vercelletto
Âge : 53
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Achitecte Informix SGBD et applications
Secteur : Conseil

Informations forums :
Inscription : octobre 2010
Messages : 84
Points : 133
Points : 133
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
begooden-it est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h26.


 
 
 
 
Partenaires

Hébergement Web