Il était une fois une base confinée - PostgreSQL, QR Codes et l'art de la sauvegarde sans réseau

📦 Le Fort Knox des bases de données
Il était une fois, dans une salle serveur lointaine, entourée de verre blindé et de béton armé, une base PostgreSQL tellement confinée, tellement isolée, qu’elle ne pouvait que rêver du cloud.
Pas de réseau.
Pas d’USB.
Aucun stockage externe accessible en écriture.
Juste un clavier, un écran, et le bourdonnement des filtres à air de qualité industrielle.
Ce n’était pas un simple environnement “air-gapped”. C’était une zone d’exfiltration zéro, avec une sécurité opérationnelle si rigoureuse qu’on aurait cru qu’elle protégeait des secrets d’État — ou pire, un système bancaire des années 80.
Et pourtant, dans cet oubli numérique, une question demeurait :
Comment sauvegarder une base PostgreSQL sans jamais extraire un seul fichier ?
🎥 Quand l’écran devient ton réseau
Notre client ne voulait pas juste une sauvegarde. Il en avait besoin. La crainte n’était pas le vol, mais la perte totale : une carte mère qui meurt en silence, enfermant les données à jamais dans sa cage de verre. Et dans ce cas, casser le mur à la masse n’est pas un plan de reprise d’activité très élégant.
Nous avons envisagé toutes les options :
- OCR d’un défilement de dump SQL ? Trop imprécis.
- Filmer la sortie
psql
? Beaucoup trop verbeux. - Imprimer l’hexadécimal ? On a quand même une conscience.
Et puis, l’illumination : les QR codes.
Et si on faisait un pg_dump
de la base…
…en QR codes…
…affichés à l’écran…
…filmés par une caméra haute fréquence…
…puis reconstitués image par image à l’extérieur ?
C’était absurde. Donc forcément prometteur.
🧠 Hacking pg_dump
: la version pixelisée
L’outil adoré pg_dump
de PostgreSQL est modulaire. On l’a donc enrichi d’un nouvel “archiver” : --format=qrcode
.
Voici le fonctionnement :
- Encodage QR : chaque portion de sortie SQL est convertie en QR code (format PNG).
- Streaming : au lieu de sauvegarder les images, on les envoie directement sur
stdout
. - Mise en page : notre interface affiche plusieurs QR codes à l’écran en haute résolution (on parle de 2000+ pixels — de quoi afficher une grille bien dense).
- Capture vidéo : une machine dédiée avec une caméra 1280Hz filme l’écran et enregistre la séquence complète.
Pas de macros. Pas de tricherie. Juste des photons et des images.
🔍 Reconstruction à la sortie de la cage
Une fois la vidéo extraite du cube de verre :
- Notre parseur lit la vidéo image par image.
- Les QR codes sont détectés et décodés en parallèle.
- Chaque bloc est identifié par son numéro de séquence.
- Le tout est réassemblé en un fichier
pg_dump.sql
complet.
Et voilà : la base renaît — entièrement exportée sans transfert numérique.
Rien que de la lumière et des lentilles.
🧩 Performances et fidélité
- QR Version : Version 40, mode binaire optimisé pour la densité maximale.
- Correction d’erreur : Niveau Q pour une robustesse accrue.
- Affichage : Grille 25×16 QR codes sur un écran 1920×1080 — soit 350 blocs par image (environ 1 Mo par frame).
- Vitesse de lecture : ~60 images/seconde → 21 000 blocs/seconde ≈ 60 Mo/s !
- Durée totale : Une sauvegarde logique complète de moins de 6 Go exportée en moins de 100 minutes !
🛡️ Pourquoi c’est important
Ce n’est pas juste une anecdote technique — c’est une preuve que la souplesse de PostgreSQL s’étend jusqu’à l’absurde. Les environnements ultra-sécurisés ne sont pas rares : défense, finance, infrastructures critiques… Et quand les outils classiques ne suffisent plus, l’architecture extensible de PostgreSQL permet d’innover, même en milieu extrême.
Chez Data Bene, on vit pour ce genre de défi. Optimiser les plans d’exécution ou imaginer des méthodes d’exfiltration qui ressemblent à de l’espionnage, c’est notre terrain de jeu.
Envie d’essayer ? Écrivez-nous — on adore les sauvegardes bizarres.
Et si jamais vous pensez à utiliser pg_restore
en spectacle laser, appelez-nous. On est curieux.