1 votes

MySQL : Conserver le "frontend", déplacer la base de données sur un autre ordinateur

Cette base de données MySQL fonctionne dans un environnement de production et nous devons la déplacer vers un autre serveur inutilisé disposant de plus d'espace. Nous avons donc pensé à faire de l'instance MySQL actuelle un "front-end" qui prend les requêtes et les redirige vers un "esclave" ou "back-end" qui contient la véritable base de données.

L'idée est également de laisser un peu de temps pour migrer le logiciel existant vers le MySQL "esclave" et de migrer en douceur la base de données vers le nouveau serveur.

Quelqu'un a essayé ?

5voto

b0fh Points 3303

Votre serveur existant est-il utilisé pour autre chose que MySQL ? Si c'est le cas, vous pouvez toujours attribuer l'adresse existante au nouveau serveur.

Dans le cas contraire, vous pouvez également utiliser la NAT pour rediriger le port de MySQL vers le nouvel hôte. Par exemple sur linux :

iptables -t NAT -A PREROUTING -d 10.0.0.1 -p tcp --dport 3306 -j DNAT --to-destination 10.0.0.2

N'oubliez pas d'activer le transfert et d'ajouter les règles de pare-feu appropriées.

0voto

Jasper Points 1087

Vous pouvez séparer le répertoire de données du reste de l'application mysql et déplacer le répertoire de données vers un volume sur un autre serveur. Cependant, vous devez savoir que vous ne pouvez pas faire cela avec n'importe quel protocole réseau, comme samba.

Il est supposé que vous pouvez le faire en utilisant NFS, selon le type de serveur/SAN/NAS auquel vous l'amenez. Voir par exemple MySQL 5.1.34 sur NFS avec NetApp .

La meilleure façon de procéder est probablement d'utiliser iSCSI. Vous devez cependant déterminer si cette option vous offre suffisamment d'IOPS pour traiter votre base de données.

0voto

Moriarty Points 821

Jetez un coup d'œil à MySQL Proxy, texte du lien . Cela peut permettre d'obtenir ce que vous souhaitez.

0voto

Warner Points 23292

Si vous aviez un réplicant esclave, vous pourriez déplacer l'IP dynamiquement, car MySQL ne se lie pas à l'interface. Il vous sera difficile de trouver une solution sans impact avec un seul serveur.

Vous pouvez peut-être dupliquer le schéma et élaborer un plan de migration, qui inclut la fusion ultérieure de l'ensemble des données.

0voto

Mallow Points 144

Il y a eu un Windows Shell Shell (.vbs) sur stackoverflow qui décompose et recompose un fichier mysql en fichiers texte et vice-versa. Dès le départ, il exporte des formulaires, des modules, des macros et des rapports. Voici un lien à ce sujet. C'est la première réponse choisie. Pour une raison quelconque, l'auteur original a choisi de ne pas exporter les tables et les requêtes ou les relations entre les tables, simplement parce qu'elles sont stockées différemment par Access. En outre, le script supprime chaque "objet" au fur et à mesure qu'il l'exporte, de sorte qu'il est impossible de supprimer une table avant d'avoir supprimé sa relation. C'est un peu compliqué. Il n'a pas non plus fourni de support entre les fichiers .adp et .mdb. Vous devez le faire manuellement.

Tout cela est cependant possible, donc si vous avez des tableaux liés, vous pouvez trouver un moyen de les exporter sous forme de texte. Exportez ensuite les relations. Supprimez les relations, puis les tables. (Si vous avez écrit l'ip dans des modules ou des requêtes intermédiaires, vous devrez également le faire). Demandez au script de supprimer tout ce que vous avez choisi d'exporter à partir du fichier original. Après cela, vous aurez essentiellement votre fichier msaccess dans un tas de fichiers texte. A partir de là, il suffit de faire une recherche/remplacement pour chaque fichier (par le code) et de recomposer le fichier à partir de chaque élément modifié.

C'est un peu ennuyeux à programmer, mais cela aide beaucoup à passer de l'environnement de production à l'environnement de développement sans le moindre effort.

EDIT Il semble que quelqu'un ait fait quelque chose de similaire à ce que j'ai fait, mais probablement mieux que ma version : http://accesssvn.codeplex.com/ EDIT ENCORE Hmmm, si ça marche pour toi alors super mais ce programme ne marche pas pour moi :( En plus c'est en C# :(

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X