H2DB - Mettre en place une réplication sur un cluster - Antichesse (o ^ω^ o)
Je te pique ça ^^
Je te pique ça ^^
# Instance A
java org.h2.tools.Server
-tcp -tcpPort 9101
-baseDir instance-A
# Instance B
java org.h2.tools.Server
-tcp -tcpPort 9102
-baseDir instance-B
Puis on démarre une troisième instance qui sera le cluster des deux autres :
# Cluster
java org.h2.tools.CreateCluster
-urlSource jdbc:h2:tcp://localhost:9101/~/test
-urlTarget jdbc:h2:tcp://localhost:9102/~/test
-user sa
-serverList localhost:9101,localhost:9102
Notre application se contentera de se connecter au cluster qui fera la réplication lui-même.
Nota Bene
Simple, il suffit de :
Cette procédure de restauration peut prendre du temps sur les grosses bases mais je vois mal un SI de plusieurs tera-octets sur H2DB de toutes façons. Par contre, et au vu de la simplicité de configuration/installation de H2, ça peut être bien pour des BDD de moins de 32 Go
Pourquoi 32 Go et pas plus ?
Car avec une vitesse de réplication de 10 Mo / sec, ce qui est assez fréquent sur des petits VPS, la réplication des 32 Go prendra moins d'une heure, ce qui reste acceptable. Quant aux petites bases de moins de 1 Go, en 1 ou 2 minutes tout sera plié.
Pour peu qu'on ait mis en place un monitoring des instances et un rôle Ansible capable de restaurer les nœud déclenché par un hook, alors la procédure peut se faire automatiquement et sans effort, et j'aime le DevOps facile :D
— Liens directs