Base de données en réseau - SQL/NoSQL - Programmation
Marsh Posté le 18-11-2011 à 13:45:00
Mysql est un serveur de BD. Donc suffit de créer dans ton appli une connexion sur le serveur avec le bon n° de port et c'est tout je sais pas ce que tu vas chercher de si compliquer avec ton réplication de BD dans Access
Pour info, sous Windows, tu peux passer par ODBC. Si ton appli labview a bien été codée et passe par ODBC pour se connecter à Access, ça sera presque transparent de faire une connexion ODBC sur du mysql
Pour les formulaires, il te reste toujours la solution de développer une appli web. Là, c'est un Wampserver qu'il te faut...
Marsh Posté le 18-11-2011 à 18:18:31
Merci pour ta réponse !
Il faut donc que j'installe MySQL server (ou workbench ?) sur le pc serveur ET sur les PC clients je dois installer quoi ? On veut que les PC clients puissent accéder à la même base de données .
ps:la base de données est déjà créée (MySQL).
MERCI!
Marsh Posté le 19-11-2011 à 21:51:24
En fait, en gros je veux la chose suivante :
- Serveur sur lequel j'ai la base de données MySQL(je peux utiliser workbench ?, mais je dois mettre quels sont les PCs autorisés à modifier la base de données ?)
- PCs clients qui pourront se connecter sur la base de données (le réseau fonctionne) et la modifier, -> (je dois aussi installer workbench sur ces PCs ? et configurer une connexion vers le serveur MySQL ?)
Merci beaucoup!
Marsh Posté le 19-11-2011 à 22:45:00
T'installes Mysql sur le pc serveur : http://www.mysql.fr/downloads/mysql/
Pour les PC clients, ben, faut un programme qui arrive à se connecter à la BD : soit une appli déjà codée qui sait, via ODBC ou en natif, se connecter à une BD Mysql, soit tu codes cette appli (en php/html, par ex).
Marsh Posté le 20-11-2011 à 14:36:42
Pour les PC clients, je peux installer MySQL workbench et configurer une connexion vers le serveur ?
Marsh Posté le 21-11-2011 à 10:04:50
Pas besoin de mysql workbench sur les clients, faut juste configurer la connexion au serveur, c'est tout.
Marsh Posté le 21-11-2011 à 11:40:12
J'installer MySQL Administrator sur tous les PC clients (pour se connecter sur le serveur avec l'IP et le port) ?
Merci.
Marsh Posté le 21-11-2011 à 11:42:57
J'installer MySQL Administrator sur tous les PC clients (pour se connecter sur le serveur avec l'IP et le port) ?
Ou sinon je peux configurer une connexion ODBC (pas besoin de logiciel sur les PC clients ?) pour se connecter au serveur ?
Merci.
Marsh Posté le 21-11-2011 à 11:57:55
juste odbc ou connexion en natif sur mysql (ça dépend des possibilités des aplis sur les pc clients).
Marsh Posté le 21-11-2011 à 20:50:42
OK, apparemment pour l'instant les données sont récupérés via Labview , si je met la base de données actuel en réseau ça n'aura aucune incidence sur le fonctionnement entre labview et mysql ? Je devrai juste utiliser l'IP du serveur ?
Merci.
Marsh Posté le 22-11-2011 à 10:11:13
Ca serait peut-être bien que tu te mettes à apprendre les bases. Là, tu buttes sur des pbs très simples, résolus en lisant de simples tutos sur l'utilisation de BD par des applis.
Pour ton pb spécifique, tu regardes si labview gère en natif une connexion à mysql, sinon, s'il gère une connexion à mysql via ODBC.
Je t'ai donné la marche à suivre pour t'en sortir, à toi de faire le reste du chemin comme un grand
Marsh Posté le 22-11-2011 à 10:38:24
Le tout fonctionne déjà avec labview , le seul problème est que on a une base identique sur chaque PC et qu'on veut partager cette BDD afin qu'elle soit accessible sur le réseau.
Marsh Posté le 22-11-2011 à 13:47:06
Comme dit précédemment, pas besoin de dupliquer la BD, une seule sur un serveur et les PC client avec l'appli labview se connectent à cette BD distante ou lieu de celle locale...
Marsh Posté le 22-11-2011 à 14:38:33
Oui c'est bon apparament, sur testand il suffit juste de creer une connexion en mettant l'adresse IP du serveur (à la place de la locale 127...),
Marsh Posté le 22-11-2011 à 14:39:22
Maintenant, je dois creer un formulaire à compléter et à le transmettre sur la base de donnée, on me propose de le faire avec Labview mais je m'y connais pas trop
Marsh Posté le 22-11-2011 à 14:46:51
Ben faut apprendre un langage de programmation. Une appli web aurait l'avantage qu'en cas d'évolution du formulaire, pas besoin de le déployer sur tous les PC. Une appli web, le code est à un seul endroit, tout le monde y accède de la même manière
Donc, une appli en php,/xhtml/css/js serait une bonne solution => du coup, t'auras besoin de wampserver.
Marsh Posté le 22-11-2011 à 19:33:35
Je veux que le formulaire soit accessible dans le réseau local, j'installe donc wampserver puis je crée un site ? Ensuite je tape le formulaire en HTML puis le code en PHP pour transférer les valeurs à la BDD ? Tu pense que c'est la meilleure solution (parce que on m'a parler de la possibilité de le faire sous labview ...) ?
Merci;
Marsh Posté le 23-11-2011 à 08:32:53
Essaye les deux et fait toi ta propre idée, ce sera a toi de le maintenir, pas a nous...
rufo t'as déja expliqué les avantages d'un formulaire web, a toi de voir si ca te conviens ou pas.
Marsh Posté le 24-11-2011 à 15:45:22
La solution en réseau à été abandonnée car si le serveur tombait en panne les techniciens ne pourrait pas effectuer de mesures ...
On veut donc installer la même base sur tous les PC (fonctionneront donc en local) et en installer une sur un serveur POUR que l'on transferts les résultats (back up) régulièrement vers la base du serveur . C'est possible ?
Merci.
Marsh Posté le 24-11-2011 à 20:27:52
Il faudrait en fait la même base sur chaque PC client (chaque base aura donc des enregistrements différentes) et ensuite dupliquer tous les résultats des champs vers une base (la même aussi!) mysql installé sur un serveur pour tout rassembler ET AINSI en cas de panne du réseau, on pourrait continuer nos mesures .... ?
Marsh Posté le 25-11-2011 à 09:25:17
Sérieusement ...
tu réinventes la roue la.
Un server qui tombe en panne ca arrive et il y a des centaines voir meme des milliers de solutions pour pallier a ce probleme.
Synchroniser des DB est un ordre de grandeur plus difficil que de faire en sorte qu'un server ai un backup ou qu'il puisse repartir avec un SLA assez court.
Ce que tu veux faire est quelque chose de relativement simple mais il semble que tu n'ai pas la moindre idée de ce que tu fais, donc tu vas finir avec une usine a gaz difficile a maintenir, difficil a mettre a jour et qui aura des mauvaise perfs alors que la solution est si simple et evidente.
Je te conseille fortement de te renseigner/prendre des cours sur les application client/server, sur les DBs et les procédures de haute disponibilité avant de continuer avec ton projet. La tu vas droit dans le mur.
Marsh Posté le 25-11-2011 à 09:30:22
Le problème est que si la BDD en réseau tombe en panne, les utilisateurs ne peuvent plus faire les tests (bancs de test), c'est pour ca que l'on veut la même base sur chaque bancs et envoyer les resultats vers la même BDD en réseau ...
Marsh Posté le 25-11-2011 à 10:10:12
En gros un server ca ne tombe pas "en panne".
Il est possible qu'il y ai un probleme hardware (hors disque), dans ce cas la on remplace la piece et on est repartis (ca arrive une fois tout les 5 ans ca) -> Downtime: minutes/heures.
Tu peux avoir un probleme avec les disques, dans ce cas la tu remplaces le disque mort de ton raid par un autre et tu reconstruis la pile (ca arrive une fois par an en fonctione de l'utilisation). -> Downtime: aucun.
Tu peux avoir le feu et perdre tout ton server. Tu repars d'une autre machine avec un backup de ta DB (ca n'arrive qu'une fois dans ta vie vu que la boite ne survivra probablement pas a l'incendie). ->Downtime: Si tu as une machine de remplacement: quelques minutes.
Tout ca sans aucune solution de haut disponibilité.
Avec de la haute disponibilité tu n'as plus de downtime a cause d'un probleme hardware, la seule facon d'avoir une "panne" est d'avoir une corruption logique (bug de l'application, connerie d'un utilisateur, etc ...) et pour résoudre ca sur un server il suffit de repartir d'un backup précédent.
Pour une DB par PC tu as tout les problemes d'un server x nombre de pc, plus bien plus de problemes hardware/software vu qu'un PC n'est pas aussi robuste qu'un server et qu'il n'est pas dédié.
Sans compter qu'il te faut une solution de synchro qui dans ton cas releve du cauchemard.
Pour résumer:
Server:
Complexité: Simple
Maintenance: Simple
Risque de panne: Tres bas
Temps pour récuperer d'un crash sans haute dispo: Bas
Temps pour récuperer d'un crash avec haute dispo: Aucun
1 DB par DB:
Complexité: Tres compliqué
Maintenance: Horrible
Risque de panne: Haut (Plus il y a de PC, plus il y a de pannes)
Temps pour récuperer d'un crash sans haute dispo: Haut
Temps pour récuperer d'un crash avec haute dispo: Pas de Haute dispo sur des workstation.
Marsh Posté le 25-11-2011 à 10:40:04
Merci pour tes réponses ...
Je parlais d'une panne réseau (si les clients ne peuvent plus communiquer avec la BDD en réseau alors ils ne peuvent plus effectuer les tests des appareils ), je sais que les pannes réseaux de ce type sont rares mais c'est une exigence de mon tuteur !
Marsh Posté le 25-11-2011 à 13:28:25
Si il y a une panne reseau les PC ne fonctionneront probablement pas non plus (si ils sont dans un domaine). Et effectivement ca n'arrive pas souvent (voir jamais).
Et c'est relativement facil a éviter (avec plusieurs switches par exemple).
Si c'est vraiment une grande entreprise ils n'auront aucun probleme a garantir un reseau et des servers robuste, ton tuteur devrai savoir ca, si il ne le sait pas et bien ne l'ecoute pas.
Ne pas avoir de tuteur c'est limite mieux que d'en avoir un mauvais.
Marsh Posté le 25-11-2011 à 13:33:52
Au pire des cas, je peux dupliquer la BDD en reseau sur un autre PC.
Marsh Posté le 25-11-2011 à 14:31:21
Ben ponctuellement, tu vas demander aux utilisateurs d'aller directement faire leurs manips sur le serveur. Sinon, ben tu copie la BD sur une clé USB que tu installe sur un pc client temporairement : les utilisateurs vont sur ce PC faire leurs manips puis une fois le réseau revenu, tu recopie la BD sur le serveur.
Mais je connais peu d'entreprises qui exigent en interne d'avoir des applis réseau disponibles H24. Et si c'est le cas, ça serait plus logique d'avoir un réseau de secours plutôt que ça soit chaque appli qui pallie un pb réseau Ton appli, c'est pour une grosse boîte? Parce que si il faut, c'est ton tuteur qui exprime un souhait (surdimensionné) et non une exigence.
Marsh Posté le 25-11-2011 à 14:45:05
Oui c'est une grosse boite mais la BDD est destiné à notre service, actuellement elle est sur chaque PC, on me demande de la mettre en reseau MAIS après on me dit que si on a une panne réseau on peut plus bosser (BDD nécessaire pour les tests) . Le tuteur voulait donc rester sur la configuration actuelle, installer la BDD sur un serveur , on exportera ensuite les données de chaque PC clients vers la BDD en réseau ... Mais je sais pas si c'est possible ... ?
Marsh Posté le 25-11-2011 à 14:45:56
Et sinon , il ma aussi demander si on a plusieurs clients qui se connecte en même temps à la BDD comment ca se passe ?
Marsh Posté le 25-11-2011 à 17:35:33
Franchement, comme l'a dit Oliiii, apprends ce qu'est une appli client/serveur. Tes questions trouveront leur réponse naturellement...
Marsh Posté le 27-11-2011 à 14:20:58
Je reformule ma question ,
On a déjà la même BDD sur chaque PC (environ 20), on voudrait mettre la même sur un serveur ET exporter les données (uniquement) vers la BDD de ce serveur , Est ce possible ? C'est une exigence donnée par mon tuteur .
MERCI;
Marsh Posté le 28-11-2011 à 08:41:13
La DB server sert a quoi alors?
Dans ton cas elle ne sera jamais utilisée puisque les clients utilisent la version sur leur PC...
Est-ce possible? Oui tout est possible.
Est-ce une bonne idée? non.
Comment faire? Ca depend tres fort de l'appli elle meme, de ce qui doit etre synchro ou pas, de la quantité de données maximum que le business est pret a perdre en cas de probleme, des performances attendues et des périodes de maintenance dont tu disposes.
On ne peut donc pas te donner une solution toute faite, il y a trop de variables et pour etre honnete c'est pas le genre de chose que je ferai gratuitement.
En cherchant un peu sur google tu devrais pouvoir trouver plusieurs solutions, a toi de voir celle qui te convient.
La seule chose que je peux te garantir c'est que ce sera un echec a court/moyen terme et que si c'est une appli un peu importante vous en viendrez a une bete solution client/server.
Marsh Posté le 28-11-2011 à 14:36:59
+1 pour ce que dit Oliiii.
Mettre en place une architecture pour une appli à très haute disponibilité nécessite de bonnes connaissances et de l'expérience + bien connaître tous les paramètres de la situation (entre autre, le coût d'un arrêt de production d'une certaine durée, un jour, une heure...). Dans l'un de tes posts, tu parles de ton tuteur, ce qui laisserait penser que tu es stagiaire. Si l'étude peut éventuellement être faite par un stagiaire (encore faut-il qu'il ait une certaine connaissance de l'état de l'art, ce qui ne semble pas être ton cas sans vouloir être condescendant, on ne peut en effet pas tout connaître, surotut quand on débute) , le choix final doit être fait par qq'un de compétent.
Sinon, vous allez droit dans le mur
Edit : une synchro de BD relationnelle, tu vas voir que c'est compliqué pour gérer la non duplication des clés primaires, par ex
Marsh Posté le 28-11-2011 à 15:05:57
Oui je suis stagiaire ... J'aurai préférer mettre la BDD en réseau et créer des liens ODBC vers ce serveur sur chaque client.
J'ai une solution :
je laisse les BDD sur les PC clients, je configure deux connexions sur chaque PC client : une vers la BDD en réseau (prioritaire) et l'autre vers la BDD local (à utiliser si on a une panne reseau , ce qui est d'ailleurs très rare ici !)
Ainsi, en cas de panne, les techniciens pourront continuer leurs mesures via la BDD local, mais il faudra quand même exporter les résultats acquis durant la panne ??? Comment faire ... ?
Merci
Marsh Posté le 28-11-2011 à 15:41:54
Ca depend de ce qui a exactement été modifié et de l'etat de la DB sur le PC client (a jour ou pas). Ca va aussi dependre des conflits enventuel entre les primay keys voir meme les foreign key.
Il est meme possible qu'il soit simplement impossible d'importer les données automatiquement.
En gros c'est bien plus compliqué que de "simplement" s'assurer qu'on aura pas de panne reseau.
Le reseau est probablement une des chose la plus facile a rendre robuste.
Tu peux commencer par avoir 2 cartes reseau dans le server, les switches et routeur en double (si vous n'en avez qu'un seul) et si c'est un PC qui a un soucil, prévoir que le technicien puisse travailelr d'un autre PC.
Les pannes reseau sont tellement rares (et relativement facile a éviter) que ca ne vaut pas vraiment la peine d'en tenir compte si on a pas d'infrastructure de haute dispo.
Et puis, si jamais il y a vraiment une panne reseau et bien tantpis le technicien ne prendra plus de mesures, ca arrivera bien moins souvent qu'un probleme avec sa DB locale.
Marsh Posté le 28-11-2011 à 15:57:53
En plus, la gestion du réseau est sous traité ! On y a donc pas accès .
Marsh Posté le 29-11-2011 à 09:36:42
Mon prof ma parlé de la possibilité de faire un script en PHP qui ouvre les tables côtés serveurs et clients ET qui exporte les données
Marsh Posté le 17-11-2011 à 20:48:12
Bonsoir,
je suis actuellement stagiaire dans une grande entreprise. Dans mon service, on veut créer un réseau spécifique.
Pour l'instant, il y a une base de données sur tous les PC (4) et ce sont les mêmes. J'ai donc pour objectif de mettre en réseau la base de donnée. Elle est déjà créée avec MySQL. Les données sont recueillis directement par MySQL Workbench et par acquisition direct auprès de LABVIEW (résultats issus des tests réalisés).
Je devrais aussi créer des formulaires pour entrez les données.
Pour mettre la base de donnée en réseau, je n'ai pas d'idée pour l'instant (à part importer la base sql sur Access et la partager) et pour le formulaire je pensais aussi à Access mais je ne sais pas si Labview continuera à communiquer avec Access (les programmes labview ont été fait pour SQL) ?
Merci à vous