Mirajv1.0
FR

31. 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-cli sans serveur).

31.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-----
ChampSens
idNuméro de la licence, à rappeler dans toute demande à Cirtasoft
customerTitulaire : le nom affiché par le serveur
editionEntreprise ou Cluster (une licence Cluster couvre aussi l'édition Entreprise)
nodesNombre de nœuds permis dans le cluster (édition Cluster)
issuedDate d'émission
expiresDernier jour de validité ; absent : licence sans échéance
maintenance_untilLicence sans échéance : elle couvre les versions de MIRAJ sorties jusqu'à cette date
machineEmpreinte de la seule machine autorisée ; absent : toute machine (voir 31.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 (31.2).

31.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 :

  1. le fichier désigné par l'option --license-file <fichier> ou par license_file dans miraj_config.xml ;
  2. la variable d'environnement MIRAJ_LICENSE : le chemin d'un fichier, ou la licence compacte elle-même (pratique dans un conteneur) ;
  3. miraj\miraj.lic dans le dossier de données — l'endroit où l'écrit --install-license ;
  4. miraj.lic à côté de miraj-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.

31.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 :

VariableContenu
miraj_license_ownerTitulaire de la licence
miraj_license_idNuméro de la licence
miraj_license_editionÉdition couverte : Entreprise ou Cluster
miraj_license_statusÉtat (tableau ci-dessous)
miraj_license_expiresDernier jour de validité, vide pour une licence sans échéance
miraj_license_nodesNœuds permis dans le cluster
miraj_license_sourceFichier 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.

31.4 Sans licence, ou licence expirée#

État (miraj_license_status)SituationCe que fait le serveur
VALIDLicence en règleToutes les fonctions de l'édition
GRACELicence expirée depuis 30 jours au plusToutes les fonctions, avec un avertissement au démarrage : renouvelez la licence
EXPIREDLicence expirée depuis plus de 30 joursFonctions de l'édition Express, requêtes sur un seul fil ; les données restent modifiables, sans plafond
UNSUPPORTED_VERSIONVersion de MIRAJ sortie après la fin de maintenance de la licenceComme EXPIRED ; réinstallez une version couverte ou renouvelez la maintenance
MISSINGAucune licence trouvéeFonctions et limites de l'édition Express
INVALIDFichier illisible, modifié, ou qui n'est pas une licence MIRAJComme MISSING ; le motif est dans SHOW LICENSE
OTHER_MACHINELicence liée à une autre machineComme 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.

31.5 Renouveler ou remplacer une licence#

Installez la nouvelle licence comme la première (31.2), puis FLUSH LICENSE, ou redémarrez le serveur. L'ancien fichier est remplacé ; rien n'est à désinstaller.

31.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 : 3f9a1c2e

La 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.

31.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 members dans cluster.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.

31.8 Codes d'erreur#

CodeMessageCauseQue faire
9059%s demande une licence Miraj valide (état de la licence : %s)Fonction de l'édition Entreprise demandée sans licence en règleSHOW 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 pasInstaller une licence Cluster
9061Plafond de données de %s atteint : ce serveur n'a pas de licence Miraj valideServeur sans licence dont les données atteignent 20 GoInstaller la licence, ou supprimer des données
9062Licence refusée : %sFLUSH LICENSE sur un fichier illisible, modifié ou d'une autre machineRéinstaller le fichier reçu ; la licence en place continue de servir
9063Nœud %s refusé : la licence %s permet %s nœud(s) dans le clusterCluster plus grand que sa licenceLicence pour davantage de nœuds, ou retirer un nœud de members
9064Nœud %s refusé : sa licence (%s) n'est pas celle du cluster (%s)Fichier de licence différent sur ce nœudInstaller sur ce nœud la licence du cluster