30. Licence des éditions Entreprise et Cluster
Les éditions Entreprise et Cluster de miraj-server demandent une licence. C'est un petit fichier, miraj.lic, remis par Cirtasoft avec l'édition. Ce chapitre explique comment l'installer, comment savoir à qui elle appartient, et ce que fait le serveur quand elle manque ou expire.
Ce qu'il faut retenir :
- la licence est vérifiée sur la machine, sans aucune connexion : un serveur coupé d'Internet se met en règle comme un autre ;
- le serveur démarre toujours, licence ou non, et ne bloque jamais l'accès aux données ;
- les éditions Express et Developer ne demandent pas de licence, pas plus que le moteur embarqué dans une application (
miraj.dll, bibliothèque Python,miraj-clisans serveur).
30.1 Le fichier de licence#
-----BEGIN MIRAJ LICENSE-----
format = 1
id = MRJ-2026-000123
customer = Société Exemple SA
edition = Entreprise
nodes = 1
issued = 2026-10-11
expires = 2027-10-11
key = 3f9a1c2e
signature = k3v…
-----END MIRAJ LICENSE-----| Champ | Sens |
|---|---|
id | Numéro de la licence, à rappeler dans toute demande à Cirtasoft |
customer | Titulaire : le nom affiché par le serveur |
edition | Entreprise ou Cluster (une licence Cluster couvre aussi l'édition Entreprise) |
nodes | Nombre de nœuds permis dans le cluster (édition Cluster) |
issued | Date d'émission |
expires | Dernier jour de validité ; absent : licence sans échéance |
maintenance_until | Licence sans échéance : elle couvre les versions de MIRAJ sorties jusqu'à cette date |
machine | Empreinte de la seule machine autorisée ; absent : toute machine (voir 30.6) |
Le fichier est signé : la moindre modification de son contenu le rend invalide. Il n'est pas secret, mais il porte votre nom : ne le communiquez pas.
La même licence existe sous une forme compacte, sur une seule ligne qui commence par MLIC1-. Elle sert à l'installer en la collant dans un terminal (30.2).
30.2 Installer la licence#
Trois façons, au choix. Dans les trois cas le serveur n'a pas besoin d'Internet.
Par une commande, à partir du fichier. Elle vérifie la licence, affiche son titulaire et la range dans le dossier de données :
miraj-server --root data --install-license miraj.lic
Licence MRJ-2026-000123 installée dans data\miraj\miraj.lic
Titulaire : Société Exemple SA
Édition : Entreprise
État : licence valide jusqu'au 2027-10-11
Prise en compte au prochain démarrage du serveur, ou tout de suite par l'instruction FLUSH LICENSE.Une licence Cluster affiche en plus la ligne Nœuds. Une licence refusée n'est pas installée et la commande se termine en erreur, avec le motif :
miraj-server --root data --install-license abimee.lic
Licence non installée : licence illisible (clé incomplète)Par une commande, en collant la licence (session SSH, console distante, machine où l'on ne peut pas copier de fichier). - fait lire la licence sur l'entrée standard :
miraj-server --root data --install-license -
MLIC1-Zm9ybWF0PTEKaWQ9TVJKLTIwMjYtMDAwMTIzCmN1c3RvbWVy…Collez la licence compacte, validez, puis terminez la saisie (Ctrl+D sous Linux et macOS, Ctrl+Z puis Entrée sous Windows). Une ligne repliée par le terminal ou des espaces en trop ne gênent pas. La licence compacte peut aussi être donnée directement : --install-license MLIC1-….
En déposant le fichier. Le serveur cherche sa licence, dans cet ordre, et retient la première source trouvée :
- le fichier désigné par l'option
--license-file <fichier>ou parlicense_filedansmiraj_config.xml; - la variable d'environnement
MIRAJ_LICENSE: le chemin d'un fichier, ou la licence compacte elle-même (pratique dans un conteneur) ; miraj\miraj.licdans le dossier de données — l'endroit où l'écrit--install-license;miraj.licà côté demiraj-server.
--install-license ne démarre pas le serveur et peut être lancée pendant qu'il tourne. Une licence refusée (fichier abîmé, autre machine) n'est pas installée : celle qui est en place reste. Sur les éditions Express et Developer, qui ne demandent pas de licence, la commande le signale et n'installe rien.
Prise en compte sans redémarrage#
FLUSH LICENSE;Le serveur relit sa licence aussitôt (privilège RELOAD). Si le nouveau fichier est refusé, l'instruction échoue (erreur 9062) et la licence qui servait continue de servir.
30.3 Savoir à qui est la licence#
SELECT @@miraj_license_owner; -- 'Société Exemple SA'
SHOW LICENSE;SHOW LICENSE rend une ligne : Owner, Id, Edition, Status, Issued, Expires, Maintenance_until, Nodes, Machine, Source (d'où la licence a été lue) et Message (son état expliqué en clair). Les mêmes informations existent en variables, en lecture seule :
| Variable | Contenu |
|---|---|
miraj_license_owner | Titulaire de la licence |
miraj_license_id | Numéro de la licence |
miraj_license_edition | Édition couverte : Entreprise ou Cluster |
miraj_license_status | État (tableau ci-dessous) |
miraj_license_expires | Dernier jour de validité, vide pour une licence sans échéance |
miraj_license_nodes | Nœuds permis dans le cluster |
miraj_license_source | Fichier ou variable d'où la licence a été lue |
Le titulaire figure aussi dans la ligne que le serveur écrit à son démarrage :
MIRAJ 1.0.0 Entreprise - serveur console sur 127.0.0.1:7007, dossier "data", 12 fils, licence MRJ-2026-000123 (Société Exemple SA), valide jusqu'au 2027-10-11.@@miraj_edition reste l'édition installée (Entreprise, Cluster), licence ou non : c'est @@miraj_license_status qui dit si elle est en règle.
30.4 Sans licence, ou licence expirée#
État (miraj_license_status) | Situation | Ce que fait le serveur |
|---|---|---|
VALID | Licence en règle | Toutes les fonctions de l'édition |
GRACE | Licence expirée depuis 30 jours au plus | Toutes les fonctions, avec un avertissement au démarrage : renouvelez la licence |
EXPIRED | Licence expirée depuis plus de 30 jours | Fonctions de l'édition Express, requêtes sur un seul fil ; les données restent modifiables, sans plafond |
UNSUPPORTED_VERSION | Version de MIRAJ sortie après la fin de maintenance de la licence | Comme EXPIRED ; réinstallez une version couverte ou renouvelez la maintenance |
MISSING | Aucune licence trouvée | Fonctions et limites de l'édition Express |
INVALID | Fichier illisible, modifié, ou qui n'est pas une licence MIRAJ | Comme MISSING ; le motif est dans SHOW LICENSE |
OTHER_MACHINE | Licence liée à une autre machine | Comme MISSING |
NOT_REQUIRED | Édition Express ou Developer, moteur embarqué | Sans objet |
« Fonctions de l'édition Express » signifie : requêtes sur un seul fil, et refus (erreur 9059) des événements de changement (LISTEN, NOTIFY, WAIT FOR CHANGES), des jetons et du point d'accès MCP, du journal binaire et de sa réplication, de l'archivage continu du journal. « Limites de l'édition Express » ajoute le plafond de 20 Go de données : au-delà, les écritures qui font grossir les données sont refusées (erreur 9061), les lectures et les suppressions restent permises.
Une licence qui a existé ne plafonne donc jamais vos données : un serveur dont la licence a expiré continue d'enregistrer, plus lentement et sans les fonctions de son édition.
Quand l'échéance arrive pendant que le serveur tourne, il l'applique dans l'heure et le consigne dans son journal. Les requêtes passent sur un seul fil et les nouvelles demandes sont refusées ; ce qui fonctionnait déjà (réplication, archivage du journal, point d'accès MCP) continue jusqu'au prochain démarrage du serveur.
Si l'horloge de la machine est reculée, le serveur retient la date la plus récente qu'il a connue.
30.5 Renouveler ou remplacer une licence#
Installez la nouvelle licence comme la première (30.2), puis FLUSH LICENSE, ou redémarrez le serveur. L'ancien fichier est remplacé ; rien n'est à désinstaller.
30.6 Licence liée à une machine#
Une licence peut être émise pour un seul serveur. Elle porte alors son empreinte, que cette commande affiche :
miraj-server --machine-id
Empreinte de cette machine : A1B2-C3D4-E5F6-0718-293A
Clé de vérification des licences : 3f9a1c2eLa seconde ligne identifie la clé avec laquelle ce programme vérifie les licences. Communiquez l'empreinte à Cirtasoft avec votre commande. Sur une autre machine, la licence est dans l'état OTHER_MACHINE. L'empreinte ne change pas quand on remplace un disque ou qu'on ajoute de la mémoire ; elle change quand le système d'exploitation est réinstallé : demandez alors une nouvelle licence. Une machine virtuelle clonée garde l'empreinte de son modèle. Dans un conteneur, et sur les systèmes où elle ne peut pas être lue, l'empreinte est indisponible (Empreinte de cette machine : indisponible sur ce système (demandez une licence sans empreinte)) : demandez une licence sans empreinte.
30.7 Édition Cluster : une licence par cluster#
Un cluster n'a qu'une licence : le même fichier miraj.lic, installé sur chaque nœud. Son champ nodes donne le nombre de nœuds permis.
- Un nœud qui porte une autre licence que celle du primaire est refusé (erreur 9064, consignée par le primaire).
- Si le cluster compte plus de nœuds que la licence n'en permet, le primaire refuse ses secondaires (erreur 9063). Le décompte porte sur les nœuds déclarés par
membersdanscluster.toml; sans cette liste, sur les nœuds connectés. - Sans licence Cluster valide (absente, expirée, ou licence Entreprise), le serveur démarre mais la réplication ne démarre pas ; le journal le signale. Un nœud qui était secondaire garde ses bases en lecture seule. Les tables partitionnées restent lisibles et modifiables ; seul le placement d'une partition sur un nœud (
PARTITION … NODE) et le changement de rôle (SET GLOBAL cluster_role) sont refusés (erreur 9060).
Pour agrandir un cluster, demandez une licence pour le nouveau nombre de nœuds, installez-la sur tous les nœuds, puis FLUSH LICENSE sur chacun.
30.8 Codes d'erreur#
| Code | Message | Cause | Que faire |
|---|---|---|---|
| 9059 | %s demande une licence Miraj valide (état de la licence : %s) | Fonction de l'édition Entreprise demandée sans licence en règle | SHOW LICENSE, puis installer ou renouveler la licence |
| 9060 | %s demande une licence Miraj Cluster valide (état de la licence : %s) | Fonction de l'édition Cluster demandée avec une licence qui ne la couvre pas | Installer une licence Cluster |
| 9061 | Plafond de données de %s atteint : ce serveur n'a pas de licence Miraj valide | Serveur sans licence dont les données atteignent 20 Go | Installer la licence, ou supprimer des données |
| 9062 | Licence refusée : %s | FLUSH LICENSE sur un fichier illisible, modifié ou d'une autre machine | Réinstaller le fichier reçu ; la licence en place continue de servir |
| 9063 | Nœud %s refusé : la licence %s permet %s nœud(s) dans le cluster | Cluster plus grand que sa licence | Licence pour davantage de nœuds, ou retirer un nœud de members |
| 9064 | Nœud %s refusé : sa licence (%s) n'est pas celle du cluster (%s) | Fichier de licence différent sur ce nœud | Installer sur ce nœud la licence du cluster |