Migration entre deux environnements

Transfert d’environnement

Lors de l’installation de MultiGest il est souvent nécessaire de migrer les données d’un environnement à un autre, comme par exemple d’un serveur de production vers un serveur de test. Il peut également s’agir tout simplement de migrer l’application d’un ancien serveur à un nouveau serveur.

Certaines précautions doivent être prises pour récupérer l’ensemble de ces données. Cette section décrit la procédure à suivre pour réaliser ces migrations dans les meilleures conditions.

Migration d’un serveur MySQL vers un serveur MariaDB

Pour réaliser la migration entre les deux serveurs de base de données il est nécessaire de suivre les pas suivants :

Vérifier que vos bases sur le serveur MySQL sont en InnoDB, si ce n’est pas le cas il est nécessaire de suivre la procédure décrite dans la section : Conversion des bases MyISAM en InnoDB.

Conseil

A partir de la version 9.5 Multigest utilise uniquement le moteur InnoDB. Il est nécessaire de vérifier le moteur utilisé notamment dans les tables correspondantes aux armoires car avec certaines versions elles ont été créées avec le moteur MyISAM.

Aller sur l’environnement MySQL (selon votre installation) et réaliser une sauvegarde de deux bases de données, en principe « mtgweb » et « mgworkflow » comme expliqué dans la section Sauvegarde des bases de données.

Les fichiers de la sauvegarde sont dans le répertoire cible.

Aller sur l’environnement MariaDB et se connecter en utilisant l’invite de commandes MariaDB en saisissant le mot de passe root.

Saisir les lignes de commandes suivantes en modifiant le nom du fichier selon le cas.

[Lecteur]:\sources\DUMP_ancien_serveur\mtgweb_AAAAMMJJ.sql
[Lecteur]:\sources\DUMP_ancien_serveur \mgworkflow_AAAAMMJJ.sql

Réinstallation sur un autre serveur

Cette procédure permet de récupérer une copie parfaite de MultiGest avec toutes ses données. Pour procéder à la réinstallation de MultiGest sur un autre serveur, il faut réaliser les étapes suivantes :

Installation de MultiGest sur le nouvel environnement

Cette installation se fait à partir du setup de MultiGest sans tenir compte des patchs qui ont pu avoir été mis en place depuis. La procédure est la même sue un serveur de base de données MySQL ou MariDB.

Voici les différentes étapes :

Sur l’ancien serveur

  • Arrêter les services automate MultiGest dans le gestionnaire des services Windows ainsi qu’Apache.
  • Copier le répertoire MultiGest de l’ancien serveur vers le nouveau serveur dans un dossier différent de la nouvelle installation.
  • Suivre la procédure de « sauvegarde de la base sur l’ancien serveur ».
  • Renommer le serveur avec un nom différent.
  • Redémarrer le serveur.
  • Arrêter tous les services (automates, Apache, MySQL) après le redémarrage.

Sur le nouveau serveur

  • Renommer le nouveau serveur avec le nom de l’ancien serveur.
  • Installer MultiGest à partir du Setup (choisir le même répertoire d’installation que sur l’ancien serveur) avec Apache, PHP et MySQL (si même serveur).
  • A la fin de l’installation, les services de MultiGest ont démarré. Il faut les arrêter.
  • Renommer le dossier MultiGest créé par l’installation (avec la date du jour par exemple).
  • Mettre le répertoire MultiGest copié de l’ancien serveur à la place de l’autre (le renommer en MultiGest si vous avez changé son nom lors du transfert entre les 2 serveurs)
  • Suivre la procédure de « restauration sur le nouveau serveur »
  • Suivre la procédure de « Récupération des données »
  • Exécuter le configurator pour lancer une intégrité des tables et des index.
  • Redémarrer tous les services.

Sauvegarde et réinstallation de la base de données sur le nouveau serveur

La base de données est sauvegardée et restaurée de la manière suivante (Uniquement moteur InnoDB):

Le répertoire d’installation de MySQL est défini par INSTALLDIR _MYSQL AAAAMMJJ= année, mois, jour

Sauvegarde de la base sur l’ancien serveur

En InnoDB seul un dump permet de sauvegarder la base de données.

  • Ouvrir une invite de commande et saisir les commandes suivantes .
cd /D « INSTALLDIR _MYSQL\bin »
Ou 
cd /D « INSTALLDIR _MARIA_DB\bin »

Saisir les commandes suivante en l’adaptant à l’installation existante:

mysqldump.exe -p -c -e --create-options --opt --set-variable=max_allowed_packet=104857600 -u root -B mtgweb > chemin_fichier_sauvegarde\mtgweb_AAAAMMJJ.sql
mysqldump.exe -p -c -e --create-options --opt --set-variable=max_allowed_packet=104857600 -u root -B mgworkflow > chemin_fichier_sauvegarde\mgworkflow_AAAAMMJJ.sql

Conseil

Attention : ne pas copier-coller ces fonctions. Merci de les saisir manuellement en adaptant au contexte.

Restauration sur le nouveau serveur

  • Récupérer les fichiers « mtgweb_AAAAMMJJ.sql»  et « mgworkflow_AAAAMMJJ.sql » sur l’ancien serveur en les copiant dans un dossier sur le nouveau serveur (chemin_fichier_sauvegarde)
  • Démarrer MySQL (si arrêté)
  • Ouvrir une invite de commande et taper ce qui suit.

cd /D « INSTALLDIR _MYSQL\bin »

  • Se connecter à la base de données

mysql.exe -h HOST -u USER –p

  • Valider par entrée
  • Saisir le mot de passe de la base
  • Supprimer les bases actuelles (si existantes)
DROP DATABASE mtgweb;
DROP DATABASE mgworkflow;
  • Importer la sauvegarde
CREATE DATABASE mtgweb;
CREATE DATABASE mgworkflow;
SOURCE "chemin_fichier_sauvegarde\mtgweb_AAAAMMJJ.sql";
SOURCE "chemin_fichier_sauvegarde\mgworkflow_AAAAMMJJ.sql";

Attention

Ne pas copier-coller ces fonctions. Les saisir manuellement en adaptant au contexte. Ne pas oublier les ; (point-virgule) à la fin des lignes

Récupération des documents

Les documents de MultiGest sont stockés sur le serveur de la GED ou sur un autre serveur avec un lien symbolique.

Il y a deux répertoires importants à récupérer :

Le répertoire des armoires avec à l’intérieur un dossier pour chaque armoires contenant lui-même les répertoires suivants :

  • IMAGES
  • INDEX
  • OCR
  • CORBEILLE

Le répertoire des bannettes avec à l’intérieur un dossier pour chaque bannette.

Pour récupérer ces documents, il faut suivre la procédure suivante :

  • Aller dans le répertoire de stockage des documents de MultiGest (Exemple : C:\GED\DONNEES\).
  • Copier le répertoire contenant le dossier des armoires de MultiGest de l’ancien serveur vers le nouveau en gardant le même répertoire (et même chemin d’accès).
  • Suivre la même procédure pour le répertoire des bannettes.

Dump de la base de production

Pour générer un dump complet de la base de données il faut procéder en ligne de commande afin de pallier tout problème de timeout lié à une base de données conséquente.

Export de la base « mtgweb »

La procédure pour générer un export au format sql est la suivante :

  • En invite de commande aller dans le répertoire « INSTALLDIR _MYSQL\bin » ou « INSTALLDIR _MARIADB\bin »
cd /D « INSTALLDIR _MYSQL\bin »
Ou 
cd /D « INSTALLDIR _MARIA_DB\bin »
mysqldump.exe -p -c -e –create-options –quick –add-drop-table –extended-insert –lock-tables –single-transaction –max_allowed_packet=104857600 –default-character-set=latin1 -u root -B mtgweb > ‘chemin_fichier_sauvegarde\mtgweb_AAAAMMJJ.sql’

Export de la base « mgworkflow »

La procédure pour générer un export au format sql est la suivante :

En invite de commande aller dans le répertoire « INSTALLDIR _MYSQL\bin » ou « INSTALLDIR _MARIADB\bin »

cd /D « INSTALLDIR _MYSQL\bin »
Ou 
cd /D « INSTALLDIR _MARIA_DB\bin »
mysqldump.exe -p -c -e --create-options --quick --add-drop-table --extended-insert --lock-tables --single-transaction --max_allowed_packet=104857600 --default-character-set=latin1 -u root -B mgworkflow 'chemin_fichier_sauvegarde\mgworkflow_AAAAMMJJ.sql'

Import de la base de données

La procédure pour réaliser un import au format sql est la suivante :

  • En invite de commande aller dans le répertoire « INSTALLDIR _MYSQL\bin » ou « INSTALLDIR _MARIADB\bin »
cd /D « INSTALLDIR _MYSQL\bin »
Ou 
cd /D « INSTALLDIR _MARIA_DB\bin »
  • Se connecter à la base de données.
  • Valider par entrée
mysql.exe -h HOST -u USER –p
  • Saisir le mot de passe de la base
  • Importer la sauvegarde.
CREATE DATABASE mtgweb;
CREATE DATABASE mgworkflow;
SOURCE chemin_fichier_sauvegarde/mtgweb_AAAAMMJJ.sql;
SOURCE chemin_fichier_sauvegarde/mgworkflow_AAAAMMJJ.sql;

Configuration du moteur InnoDB

Dans le fichier my.ini (trouvable dans le dossier d’installation de MySQL ou de MariaDB défini précédemment lors de l’installation) configurer certaines variables (si ces valeurs n’existent pas alors les ajouter dans la rubrique [mysqld]) :

innodb_flush_log_at_trx_commit=2

Permet aux requêtes SELECT de ne pas être impactés par les UPDATE ou INSERT

innodb_thread_concurrency=0

Ne pas brider le moteur InnoDB sur x threads

innodb_buffer_size=2G

Cette variable doit représenter environ 60-70% de la RAM disponible sur le serveur

innodb_file_per_table

Permet de dissocier les tables sur plusieurs fichiers de données

skip_innodb

Ajouter un # en début de la ligne afin d’activer le moteur InnoDB

Import de la base de données

La procédure pour réaliser un import au format sql est la suivante :

  • En invite de commande aller dans le répertoire « INSTALLDIR _MYSQL\bin »
cd /D « INSTALLDIR _MYSQL\bin »
Ou 
cd /D « INSTALLDIR _MARIA_DB\bin »
  • Se connecter à la base de données
mysql.exe -h HOST -u USER –p
  • Valider par entrée
  • Saisir le mot de passe de la base

Importer la sauvegarde

CREATE DATABASE mtgweb;
CREATE DATABASE mgworkflow;
SOURCE chemin_fichier_sauvegarde/mtgweb_AAAAMMJJ.sql;
SOURCE chemin_fichier_sauvegarde/mgworkflow_AAAAMMJJ.sql;