Documentation · Guides

Récupération à un instant précis.

Annulez une mauvaise migration ou une suppression accidentelle en récupérant une base telle qu’elle était à n’importe quel moment de votre fenêtre. La récupération aboutit toujours dans une nouvelle base : vous pouvez regarder avant de remplacer.

Ce qu’il vous faut

La récupération à un instant précis (PITR) fait partie de l’instance dédiée, 9 $ CA par mois par projet avec tout forfait payant : le processus serveur Postgres propre au projet. Les autres fonctions Postgres de cette instance sont décrites dans Bases de données Postgres. Les sauvegardes offertes avec tous les forfaits sont une fonction distincte et plus simple; la PITR sert quand le moment voulu tombe entre deux sauvegardes.

L’activer

Choisissez la PITR à la création de l’instance (canner db instance create --pg 18 --pitr) ou activez-la plus tard depuis le panneau de récupération à un instant précis de la base. Dès lors, Canner archive chaque changement et prend une sauvegarde de base selon un horaire. La plage récupérable commence quand l’archivage commence : on ne peut pas récupérer un moment antérieur à l’activation. Le panneau affiche la plage récupérable et l’état de l’archive, et vous recevez une alerte si l’archivage échoue.

Choisir la fenêtre

La fenêtre indique jusqu’où vous pouvez remonter : de 1 à 35 jours, 7 par défaut. Une fenêtre plus longue conserve plus d’archive, et l’archive compte dans le stockage groupé de votre organisation (voir forfaits et limites). Ce qui dépasse la fenêtre est supprimé, définitivement. Choisissez la plus courte fenêtre qui couvre le temps qu’il vous faut pour remarquer une erreur, avec de la marge.

Choisir un moment et restaurer

Choisissez un moment dans la fenêtre, ou « le plus récent », et Canner recrée la base telle qu’elle était alors. Les heures sont en UTC. Rien d’existant n’est touché : le résultat est une toute nouvelle base. La restauration à un instant précis sur place n’est pas offerte, comme chez la plupart des fournisseurs de Postgres géré.

# 1. Récupérer la base telle qu'elle était à un moment (UTC), dans une NOUVELLE base
canner db pitr-restore commandes --to 2026-09-23T14:00:00Z

# ...ou le dernier moment archivé
canner db pitr-restore commandes --to latest

Examiner avant de remplacer

Quand vous récupérez depuis le tableau de bord, vous pouvez choisir Examiner d’abord. Canner restaure dans une base temporaire à examiner, avec sa propre chaîne de connexion, qui n’est jamais injectée dans votre application et se supprime d’elle-même après 24 heures, sauf si vous la conservez ou la prolongez. Explorez-la avec n’importe quel client, ou utilisez Comparer avec la base actuelle pour voir les tables nouvelles, absentes ou différentes, avec le nombre de lignes. Avec la CLI, canner db diff <base à examiner> la compare et canner db inspect <base à examiner> --keep la conserve comme base. Se tromper de moment ne coûte rien : récupérez de nouveau à une autre heure.

La mettre en place

Pour avoir les données récupérées à la place de l’originale, copiez-les par-dessus. Canner prend d’abord un instantané du contenu actuel : cette étape peut donc être annulée à partir de l’instantané. La chaîne de connexion de votre application ne change pas.

# 2. Une fois satisfait de la copie restaurée, mettez-la à la place de l'originale.
# --replace prend d'abord un instantané de l'existant.
canner db copy commandes_restaurees commandes --replace

La base écrasée doit pouvoir être remplacée, d’où l’indicateur explicite. Si vous préférez garder les deux, ne remplacez pas : pointez une seconde application ou un script ponctuel vers la copie restaurée et récupérez seulement les lignes voulues avec une requête.

Garder une copie hors du serveur

L’archive est compressée et chiffrée en AES-256 avant d’être écrite, avec une clé propre à votre instance. Par défaut, elle se trouve sur le même serveur que l’instance : elle vous protège des erreurs (une mauvaise migration, une suppression accidentelle), pas de la perte du serveur. Pour survivre aussi à cela, ajoutez une destination hors site, un compartiment qui vous appartient chez n’importe quel service compatible S3 (canner db offsite add …), puis envoyez-y l’archive :

canner db pitr --offsite <destination>

Le nouveau WAL et les sauvegardes de base sont téléversés en quelques minutes, déjà chiffrés, et la copie suit votre fenêtre : ce que la fenêtre supprime localement est aussi supprimé du compartiment. Si des fichiers manquent un jour sur le serveur, une restauration les récupère d’abord depuis le compartiment. Canner garde la clé de chiffrement : le compartiment seul est illisible. Les fichiers expédiés comptent dans votre propre compartiment, pas dans le stockage groupé de Canner.

Coûts

  • L’instance dédiée : 9 $ CA par mois par projet (tout forfait payant), 0,5 Go de RAM garantie inclus.
  • Stockage : les sauvegardes de base et le WAL comptent dans la limite de stockage groupé de votre organisation. Le stockage supplémentaire coûte 5 $ CA par mois par bloc de 50 Go.
  • La copie hors site : ce que facture votre propre fournisseur de compartiment.

Limites et points à savoir

  • La récupération se fait toujours dans une nouvelle base. Il n’y a pas de restauration à un instant précis sur place.
  • La fenêtre va de 1 à 35 jours. On ne peut pas récupérer un moment plus ancien que la fenêtre ni antérieur à l’activation de la PITR.
  • Désactiver la PITR supprime définitivement l’archive.
  • Si l’option d’instance dédiée n’est plus active, l’instance est arrêtée et ses données sont conservées; rien n’est supprimé automatiquement.
  • Canner fonctionne dans une seule région (Montréal), sans basculement automatique. Les copies hors site sont votre protection contre la perte du serveur.