21. Miraj Server Manager
Miraj Server Manager (miraj-manager.exe) est l'outil graphique d'administration d'un serveur MIRAJ installé sur un poste ou un serveur Windows. Il vit dans la zone de notification de Windows et rassemble les gestes courants :
- démarrer, arrêter et redémarrer le serveur ;
- suivre son état et les ressources qu'il consomme (processeur, mémoire, disque) ;
- suivre les requêtes : nombre total, requêtes par seconde, requêtes en cours, requêtes lentes ;
- faire une sauvegarde complète de toutes les bases vers un dossier choisi, immédiatement ou selon une planification (heure, jours, nombre de sauvegardes gardées).
Il administre le serveur de la machine où il tourne : il agit sur le processus miraj-server.exe et sur les tâches planifiées de Windows, ce qui ne se fait pas à distance.
21.1 Installation et lancement#
L'assistant d'installation de Miraj Express dépose miraj-manager.exe dans le dossier du programme, à côté de miraj-server.exe (voir 2.2). Il ajoute un raccourci dans le menu Démarrer et propose deux options, cochées par défaut : démarrer le gestionnaire avec Windows (à l'ouverture de session des administrateurs, icône seule) et le lancer à la fin de l'installation.
Sans l'assistant, il suffit de copier miraj-manager.exe dans le dossier de miraj-server.exe (voir 21.2).
21.1.1 Ligne de commande#
| Commande | Effet |
|---|---|
miraj-manager | Icône dans la zone de notification et fenêtre ouverte. |
miraj-manager --tray | Icône seule, fenêtre cachée : c'est ainsi qu'il est lancé à l'ouverture de session. |
miraj-manager --scheduled-backup | Sauvegarde planifiée, sans fenêtre : lancée par la tâche Windows de la planification (voir 21.10), jamais à la main. |
miraj-manager --no-elevation | Ne demande pas les droits d'administrateur (voir ci-dessous). |
21.1.2 Droits d'administrateur#
Le gestionnaire demande les droits d'administrateur à son lancement (invite du contrôle de compte d'utilisateur). Ils sont nécessaires pour :
- démarrer et arrêter le serveur installé, qui tourne sous le compte SYSTEM ;
- créer ou supprimer les tâches planifiées (sauvegardes, lancement à l'ouverture de session) ;
- lire la mémoire et les entrées-sorties d'un processus d'un autre compte ;
- protéger le secret du compte de sauvegarde (voir 21.10).
Si l'élévation est refusée, le gestionnaire s'ouvre quand même et affiche en tête de fenêtre : « Sans droits d'administrateur : le démarrage et l'arrêt du serveur installé, la planification et les mesures mémoire peuvent échouer ». La consultation (état, requêtes) et la sauvegarde immédiate restent possibles.
21.1.3 Une seule instance#
Un seul gestionnaire tourne par session Windows. Le relancer (raccourci, double clic sur l'exécutable) affiche la fenêtre de celui qui tourne déjà, puis s'arrête.
21.2 Le serveur géré#
Le gestionnaire retrouve seul le serveur à administrer, dans cet ordre :
- l'exécutable et le dossier de données enregistrés dans ses réglages (
manager.json, voir 21.11), s'ils y sont renseignés ; - ceux de la tâche planifiée « Miraj Express » créée par l'assistant d'installation : la commande de la tâche et la valeur de son argument
--root; - à défaut,
miraj-server.exeplacé à côté demiraj-manager.exe, avec le dossier de données par défaut de l'installation,%ProgramData%\Miraj Express\data.
Il lit ensuite le fichier de configuration du serveur, au même endroit que le serveur lui-même (voir 11.2) : miraj_config.xml à côté de miraj-server.exe s'il y existe, sinon dans le dossier de données. Il en retient :
| Variable | Usage dans le gestionnaire | Défaut |
|---|---|---|
port | Port d'écoute surveillé et port de connexion. | 7007 |
bind | Adresse de connexion ; 0.0.0.0 (toutes les interfaces) donne la boucle locale 127.0.0.1. | 0.0.0.0 |
language | Langue des textes du gestionnaire (voir 21.4). | en |
backup_dir | Dossier de travail des sauvegardes (voir 21.10.1). | aucun |
Le fichier est relu toutes les deux secondes : une modification est prise en compte sans relancer le gestionnaire (le serveur, lui, ne la lit qu'à son redémarrage).
Le processus du serveur est reconnu au chemin complet de son exécutable. Un autre miraj-server.exe en cours, lancé depuis un autre dossier, n'est jamais arrêté ni mesuré : il est seulement signalé dans l'onglet État (« Autre serveur MIRAJ en cours : … »).
21.3 Zone de notification#
L'icône de Miraj Server Manager reste dans la zone de notification tant que le gestionnaire tourne. Son infobulle donne l'état du serveur (« Miraj Server Manager — En marche »).
- Clic sur l'icône : ouvre la fenêtre.
- Clic droit : menu.
| Entrée du menu | Effet |
|---|---|
| Miraj Server Manager — état | Rappel de l'état (entrée grisée). |
| Ouvrir | Ouvre la fenêtre. |
| Démarrer | Démarre le serveur (grisé s'il tourne déjà). |
| Arrêter | Ouvre la fenêtre et demande confirmation, puis arrête le serveur. |
| Redémarrer | Ouvre la fenêtre et demande confirmation, puis redémarre le serveur. |
| Lancer le gestionnaire dans la zone de notification à l'ouverture de session | Case à cocher : crée ou supprime la tâche planifiée « Miraj Express - gestionnaire », qui lance miraj-manager.exe --tray à l'ouverture de session, avec les droits d'administrateur sans invite. |
| Quitter | Ferme le gestionnaire. Refusé tant qu'une action (démarrage, sauvegarde…) est en cours. |
Démarrer, Arrêter et Redémarrer sont grisés pendant une action en cours.
Fermer la fenêtre (croix) ne quitte pas : la fenêtre est rangée dans la zone de notification, et une bulle le rappelle la première fois. Seul Quitter arrête le gestionnaire.
Arrêt inattendu. Si le serveur s'arrête sans que l'arrêt vienne du gestionnaire (arrêt par un autre outil, panne), une bulle de notification l'annonce : « Le serveur MIRAJ s'est arrêté. »
Lancement à l'ouverture de session. L'assistant d'installation crée la même tâche « Miraj Express - gestionnaire » pour tous les membres du groupe Administrateurs. La case du menu la reflète : la décocher la supprime pour tous ; la recocher la recrée pour le seul compte Windows courant.
21.4 Langue#
Les textes du gestionnaire suivent la langue du serveur : la variable language de miraj_config.xml, anglais par défaut. Les dix langues des messages d'erreur du serveur sont disponibles : anglais, français, chinois, hindi, espagnol, arabe (disposition de droite à gauche), portugais, russe, allemand, japonais. Une modification de language s'applique au gestionnaire dans les deux secondes, menus et bulles compris, sans attendre le redémarrage du serveur.
21.5 La fenêtre#
En tête de fenêtre :
- le nom Miraj Server Manager et la pastille d'état du serveur, avec sa durée de fonctionnement ;
- trois grands boutons : Démarrer (vert), Arrêter (rouge), Redémarrer (bleu). Un bouton sans objet est estompé : Démarrer quand le serveur tourne, Arrêter et Redémarrer quand il est arrêté, les trois pendant une action en cours ;
- à droite, la connexion au serveur (voir 21.6) ;
- dessous, le suivi de l'action en cours : titre et indicateur d'attente, puis chaque étape et le résultat final, précédé de ✔ (réussite) ou ✖ (échec, avec la cause) ;
- enfin les quatre onglets État, Ressources, Requêtes et Sauvegardes.
Chaque onglet commence par une rangée de tuiles (les chiffres principaux, en grand) suivie de cartes. Un chemin ou un texte trop long est tronqué ; le survol l'affiche en entier.
| Pastille | Signification |
|---|---|
| ● En marche | Le processus du serveur tourne et écoute sur son port. |
| ◐ Démarrage en cours, ou port fermé | Le processus tourne mais n'écoute pas (encore) sur le port. |
| ⚠ Port occupé par un autre programme | Le serveur est arrêté, mais un autre programme écoute sur son port : le serveur ne pourrait pas démarrer. |
| ■ Arrêté | Aucun processus du serveur. |
Le gestionnaire ne se connecte jamais au port pour le tester : il lit la liste des ports en écoute tenue par Windows. Le journal du serveur (server.log) n'est donc pas encombré par sa surveillance.
21.5.1 Démarrer, arrêter, redémarrer#
Démarrer. Si la tâche planifiée « Miraj Express » de l'installation existe, le gestionnaire la lance : le serveur tourne alors sous le compte SYSTEM, comme au démarrage de Windows. Sinon, il lance directement miraj-server.exe --root <dossier des données> --log. Il attend ensuite que le serveur écoute sur son port, 30 secondes au plus. Le démarrage est refusé d'emblée si le serveur tourne déjà ou si le port est pris par un autre programme ; il échoue si le processus s'arrête aussitôt lancé (le message renvoie alors à server.log).
Arrêter. Après confirmation (« Les connexions ouvertes seront coupées et leurs transactions en cours annulées »), le gestionnaire arrête la tâche « Miraj Express » si elle existe, met fin au processus du serveur, puis attend que le processus ait disparu et que le port soit libéré, 15 secondes au plus. Comme tout arrêt de miraj-server, c'est un arrêt sans séquence d'extinction : aucune transaction validée n'est perdue, le journal d'écriture étant rejoué au démarrage suivant (voir 11.1.2 et 11.4).
Redémarrer. Arrêt puis démarrage, après la même confirmation.
21.6 Connexion au serveur#
L'état du processus et les ressources sont mesurés sans connexion. Les informations SQL (version, connexions, bases, requêtes) et les sauvegardes demandent une connexion au serveur : saisir le compte et le mot de passe en haut à droite, puis Connecter (ou Entrée). Une fois connecté, le gestionnaire affiche « ● Connecté : root » et un bouton Déconnecter.
- Le compte saisi est retenu d'un lancement à l'autre ; le mot de passe n'est jamais enregistré : il est redemandé à chaque lancement du gestionnaire.
- Un mot de passe refusé n'est pas réessayé : le serveur bloque une adresse après une suite d'échecs d'authentification (voir 11.5.2). Le message du serveur s'affiche sous les boutons ; corrigez le mot de passe et reconnectez-vous.
- Après un redémarrage du serveur, la connexion est rétablie d'elle-même.
Utilisez un compte administrateur, root par exemple. Un compte aux droits réduits voit ce que ses privilèges lui permettent : SHOW FULL PROCESSLIST ne montre que ses propres connexions sans le privilège PROCESS (ou SUPER), la sauvegarde exige BACKUP_ADMIN, le réglage du journal des requêtes lentes exige SUPER ou SYSTEM_VARIABLES_ADMIN, la planification des sauvegardes exige de pouvoir créer un compte et lui accorder BACKUP_ADMIN (voir 21.10).
Toutes les deux secondes, connecté, le gestionnaire lit SHOW GLOBAL STATUS, quelques variables (slow_query_log, long_query_time, log_output), SHOW DATABASES, les 200 dernières lignes de mysql.slow_log et SHOW FULL PROCESSLIST.
21.7 Onglet État#
Tuiles : durée de fonctionnement, connexions ouvertes, nombre de bases, taille du dossier de données (avec l'espace libre du disque qui le porte). Les chiffres SQL affichent « — » sans connexion.
Carte Serveur :
| Ligne | Contenu |
|---|---|
| Processus | miraj-server.exe, PID …, ou « aucun ». |
| Démarré le | Date et heure de démarrage du processus. |
| Écoute | Adresse et port de miraj_config.xml, suivis de « (répond) » ou « (fermé) ». |
| Version | Version du serveur (connecté). |
| Connexions ouvertes | Threads_connected, et le maximum depuis le démarrage (Max_used_connections). |
| Bases | Liste des bases visibles du compte connecté. |
| Démarrage automatique | « oui, tâche planifiée « Miraj Express » (compte SYSTEM) », ou « non » si le serveur est lancé directement par le gestionnaire. |
| Exécutable, Dossier des données | Chemins du serveur géré (voir 21.2). |
Le bouton Modifier miraj_config.xml… ouvre le fichier de configuration du serveur dans l'éditeur de configuration (miraj-config-editor.exe, présent à côté du serveur dans une installation par l'assistant). Les modifications prennent effet au redémarrage du serveur.
Carte Journal du serveur : les 60 dernières lignes de <données>\miraj\server.log, la plus récente en haut, avec un bouton Actualiser. Ce fichier ne reçoit que les erreurs (voir 11.6.3) : vide, il indique qu'aucune erreur n'a été signalée.
21.8 Onglet Ressources#
Les mesures portent sur le seul processus du serveur, relevé toutes les deux secondes. Serveur arrêté, l'onglet affiche « Serveur arrêté : aucune mesure ».
Tuiles :
| Tuile | Mesure |
|---|---|
| Processeur | Part du processeur de la machine, tous cœurs confondus : 100 % signifie que tous les cœurs sont occupés par le serveur. Le nombre de cœurs est rappelé dessous. |
| Mémoire utilisée | Mémoire physique occupée par le processus (ensemble de travail), et sa part de la mémoire de la machine. |
| Lectures disque, Écritures disque | Débits de lecture et d'écriture du processus, par seconde, tels que Windows les compte : les échanges réseau avec les clients y sont inclus avec les accès aux fichiers. |
Courbes : processeur et mémoire sur les dix dernières minutes, un point toutes les deux secondes. Au survol, une ligne verticale donne la valeur du point et son âge (« il y a 12 s »). L'historique commence au lancement du gestionnaire.
Carte Détails : temps processeur cumulé depuis le démarrage, mémoire privée (mémoire propre au processus, qu'il ne partage avec aucun autre), pic de mémoire, mémoire libre de la machine, lectures et écritures (débit et total depuis le démarrage), fils d'exécution, handles, et, connecté, fils parallèles occupés sur le total du budget de parallélisme (Miraj_parallel_workers_busy / Miraj_parallel_workers).
21.9 Onglet Requêtes#
L'onglet demande une connexion (voir 21.6).
Tuiles :
| Tuile | Source |
|---|---|
| Nombre total de requêtes | Questions : instructions exécutées depuis le démarrage du serveur, toutes sessions confondues (voir 11.6.1). Dessous, la durée correspondante (Uptime). Les grands nombres sont abrégés (12,9 k, 4,2 M). |
| Requêtes par seconde | Débit mesuré sur les deux dernières secondes ; dessous, la moyenne depuis le démarrage. Les lectures du gestionnaire lui-même sont retirées du compte. |
| Requêtes lentes | Slow_queries : instructions plus longues que le seuil long_query_time, rappelé dessous. |
| En cours | Instructions en cours d'exécution. |
Courbe : requêtes par seconde sur les dix dernières minutes.
Carte Journal des requêtes lentes. Case Activé, Seuil (secondes) et bouton Appliquer : le gestionnaire exécute SET GLOBAL long_query_time = … et SET GLOBAL slow_query_log = ON|OFF. Ces réglages sont perdus au redémarrage du serveur, sauf si la case Garder au redémarrage (miraj_config.xml) est cochée (par défaut) : les variables slow_query_log et long_query_time sont alors écrites aussi dans miraj_config.xml, sans toucher au reste du fichier (commentaires compris). Journal désactivé, seul le compteur Slow_queries avance.
Le tableau des requêtes lentes lit la table mysql.slow_log. Quand le journal est actif, le gestionnaire ajoute donc la sortie TABLE à la sortie fichier (SET GLOBAL log_output = 'FILE,TABLE') : le fichier slow.log continue d'être écrit.
Carte Requêtes en cours (SHOW FULL PROCESSLIST, sans les connexions inactives) : identifiant, compte, base, durée, état et texte de la requête. Une durée d'au moins 10 secondes est marquée ⚠. Le texte est abrégé sur une ligne ; le survol l'affiche en entier et un clic le copie dans le presse-papiers.
Carte Requêtes lentes enregistrées : les 200 dernières lignes de mysql.slow_log (début, durée, lignes lues, lignes rendues, compte, base, requête), triées Plus récentes ou Plus longues, avec un Filtre sur le texte de la requête. Vider exécute TRUNCATE TABLE mysql.slow_log. Les durées de la table sont à la seconde près.
21.10 Onglet Sauvegardes#
Le gestionnaire fait des sauvegardes complètes : toutes les bases, par BACKUP ALL DATABASES (voir 18.1). Le serveur reste en service pendant la sauvegarde.
21.10.1 Dossier de travail du serveur (backup_dir)#
Le serveur n'écrit une sauvegarde que dans son dossier de sauvegardes, la variable backup_dir (voir 18.1.1). La carte Dossier de travail des sauvegardes du serveur l'affiche. S'il n'est pas défini, elle le signale et propose un dossier backups à côté du dossier de données (jamais dedans). Définir et redémarrer, après confirmation, crée le dossier, l'écrit dans miraj_config.xml et redémarre le serveur, qui ne lit ce réglage qu'au démarrage.
21.10.2 Sauvegarde immédiate#
Carte Sauvegarde complète : choisir la Destination des sauvegardes (saisie ou Parcourir… ; Ouvrir l'affiche dans l'explorateur), puis Sauvegarde complète maintenant. Le bouton demande une connexion et un backup_dir défini. La destination est retenue d'un lancement à l'autre ; par défaut, c'est le dossier proposé pour backup_dir.
Déroulement, affiché étape par étape :
BACKUP ALL DATABASESdans<backup_dir>\miraj-AAAA-MM-JJ_HHMMSS(date et heure locales) ;- vérification de chaque base sauvegardée : présence, taille et somme de contrôle de chaque fichier (« 3 base(s) sauvegardée(s) et vérifiée(s), 1,2 Gio ») ;
- déplacement du dossier dans la destination, si elle est ailleurs que
backup_dir(par un simple renommage sur le même disque, par une copie vers un autre disque) ; - ligne ajoutée au journal des sauvegardes.
La destination ne doit pas se trouver dans le dossier de données. Chaque base a son sous-dossier dans la sauvegarde :
D:\Sauvegardes\miraj-2026-09-25_020000\
gestion\ manifest.json, fichiers .mrj, journal…
compta\Une sauvegarde immédiate ne supprime jamais d'anciennes sauvegardes.
21.10.3 Sauvegarde planifiée#
Carte Sauvegarde planifiée : cocher Sauvegarde complète automatique, choisir l'heure, les jours (tous par défaut) et le nombre de sauvegardes gardées (7 par défaut ; 0 les garde toutes), puis Enregistrer la planification. Tant qu'elle n'est pas enregistrée, une modification est signalée « modifiée, non enregistrée ». L'enregistrement demande une connexion avec un compte administrateur, pour les raisons suivantes :
- le gestionnaire crée (ou met à jour) le compte
miraj_backup@localhost, qui n'a que le privilègeBACKUP_ADMIN: il peut sauvegarder, ni lire ni modifier les données. Son mot de passe, de 32 caractères tirés au sort, est renouvelé à chaque enregistrement ; - ce mot de passe est chiffré pour la machine (DPAPI de Windows) dans
%ProgramData%\Miraj Express\manager\backup.key, fichier accessible seulement à SYSTEM et aux administrateurs ; - la tâche planifiée « Miraj Express - sauvegarde » est créée : elle lance
miraj-manager.exe --scheduled-backupsous le compte SYSTEM aux jours et à l'heure choisis. Si la machine était éteinte à l'heure prévue, la sauvegarde est faite au plus tôt après son démarrage ; elle est abandonnée au bout de 12 heures.
À l'heure dite, le gestionnaire se connecte avec miraj_backup, fait la sauvegarde comme en 21.10.2, puis supprime les plus anciennes sauvegardes de la destination au-delà du nombre à garder. Seuls les dossiers nommés miraj-AAAA-MM-JJ_HHMMSS sont comptés et supprimés : les autres fichiers de la destination ne sont jamais touchés. La sauvegarde planifiée n'a besoin ni de la fenêtre ni d'une session ouverte.
Sous la carte, la ligne « Prochaine : … Dernière : … Résultat : … » reprend l'état de la tâche tel que Windows le donne (résultat 0 : réussite). Décocher la case puis enregistrer supprime la tâche ; le compte miraj_backup reste en place (DROP USER pour le supprimer).
21.10.4 Liste et journal#
La carte Sauvegardes dans la destination liste les sauvegardes présentes, de la plus récente à la plus ancienne, avec leur taille. La carte Journal des sauvegardes montre les dernières lignes de backup.log : sauvegardes manuelles réussies, sauvegardes planifiées réussies avec leurs étapes, et échecs de sauvegarde planifiée avec leur cause.
21.10.5 Restaurer une sauvegarde#
La restauration se fait en SQL, base par base, par RESTORE DATABASE (voir 18.1.4). Le serveur ne lit une sauvegarde que dans son backup_dir : si la destination est ailleurs, recopiez d'abord le dossier de la sauvegarde dans backup_dir, puis nommez le sous-dossier de la base :
-- D:\Sauvegardes\miraj-2026-09-25_020000 recopié dans backup_dir
RESTORE DATABASE gestion_hier FROM 'miraj-2026-09-25_020000\gestion';Choisir backup_dir lui-même comme destination évite cette copie, au prix de garder les sauvegardes sur le même disque que le dossier de travail du serveur. Une sauvegarde physique ne contient pas les comptes : gardez aussi de temps en temps un export miraj-dump --users (voir 18.4).
21.11 Fichiers et tâches planifiées#
Les fichiers du gestionnaire sont dans %ProgramData%\Miraj Express\manager :
| Fichier | Contenu |
|---|---|
manager.json | Réglages : exécutable du serveur (server_exe), dossier de données (data_dir), compte de connexion (user), destination des sauvegardes (backup_target), planification (schedule : enabled, hour, minute, days du lundi au dimanche, keep). |
backup.key | Mot de passe du compte miraj_backup, chiffré pour la machine. |
backup.log | Journal des sauvegardes, une ligne horodatée par événement. |
manager.json est écrit à la connexion (compte) et à chaque changement de destination ou de planification. Pour administrer un autre serveur que celui trouvé automatiquement (voir 21.2), renseignez-y server_exe et data_dir, gestionnaire fermé ; laissés vides, ils sont de nouveau cherchés à chaque lancement.
Tâches planifiées de Windows utilisées :
| Tâche | Créée par | Lance |
|---|---|---|
| Miraj Express | L'assistant d'installation | miraj-server.exe --root <données> --log au démarrage de Windows, compte SYSTEM. Le gestionnaire la lance et l'arrête. |
| Miraj Express - sauvegarde | Le gestionnaire (planification) | miraj-manager.exe --scheduled-backup, compte SYSTEM. |
| Miraj Express - gestionnaire | L'assistant ou le menu de l'icône | miraj-manager.exe --tray à l'ouverture de session, droits d'administrateur. |
21.12 Messages courants#
| Message | Cause et remède |
|---|---|
| le serveur est déjà démarré | Démarrer alors que le processus tourne. |
| le port N est déjà occupé par un autre programme | Un autre programme (souvent un autre serveur MIRAJ ou SQL) écoute sur le port de miraj_config.xml. Arrêtez-le ou changez port. |
| le serveur s'est arrêté au démarrage ; voir … | Le serveur a refusé de démarrer : la cause est dans le fichier server.log indiqué (configuration invalide, backup_dir mal placé…). |
| le serveur ne répond pas sur le port N après 30 s | Démarrage anormalement long ou serveur bloqué : voir server.log. |
| le processus N ne s'arrête pas | Arrêt impossible, souvent faute de droits d'administrateur (voir 21.1.2). |
| … introuvable | L'exécutable du serveur n'existe pas au chemin retenu (voir 21.2). |
| Connexion : … | Connexion refusée (mot de passe, compte verrouillé, adresse bloquée) : le message du serveur suit. |
| le serveur n'a pas de dossier de sauvegarde (backup_dir) | Définissez-le (voir 21.10.1). |
| le dossier de destination ne doit pas se trouver dans le dossier des données | Choisissez une destination hors du dossier de données. |
| base … : … | Une base sauvegardée n'a pas passé la vérification : la sauvegarde est laissée dans backup_dir pour examen et n'est pas déplacée. |
| connectez-vous au serveur (compte administrateur) pour créer le compte de sauvegarde | Enregistrer une planification demande une connexion (voir 21.10.3). |
| aucun jour choisi | Cochez au moins un jour. |
Échec de la sauvegarde planifiée : … (backup.log) | Serveur arrêté à l'heure prévue, compte miraj_backup supprimé ou modifié, backup_dir retiré… Enregistrer de nouveau la planification recrée le compte et son secret. |