Restaurer les données et time travel
Lakebase Provisioned est l'offre originale de Lakebase qui utilise un compute provisionné que vous mettez à l'échelle manuellement. Pour les régions prises en charge, consultez la disponibilité des régions. Pour la dernière version de Lakebase, avec compute à dimensionnement automatique, mise à l'échelle jusqu'à zéro, création de branches et restauration instantanée, consultez Lakebase Autoscaling.
Depuis le 12 mars 2026, les nouvelles instances Lakebase sont créées en tant que projets de dimensionnement automatique. Les instances provisionnées existantes sont mises à niveau automatiquement vers la mise à l'échelle automatique, à compter de juin 2026. Pour plus de détails, consultez Mise à niveau vers le dimensionnement automatique Lakebase.
Cette page explique comment utiliser les instances enfants pour restaurer des données et effectuer du time travel sur votre instance de base de données Lakebase.
Quand devez-vous créer une instance enfant ?
La création d'une instance enfant est utile dans les scénarios suivants :
- **Récupération après perte de données accidentelle :** Si une table critique a été supprimée hier à 10 h 23, vous pourriez générer une instance enfant configurée à 10 h 22 pour extraire uniquement les données manquantes et les Merge.
- Environnements de test et d'assurance qualité : Clonez un environnement similaire à la production à partir de n'importe quel point des X derniers jours (tel que défini par votre fenêtre de restauration) pour valider les modifications de schéma ou exécuter des tests d'intégration.
- Conformité et audit : provisionnez une instance enfant reflétant l’état de la base de données à une date passée pour les audits internes, les rapprochements financiers ou l’analyse forensique.
Qu'est-ce qu'une instance enfant ?
Une instance enfant est un clone « copy-on-write » de l'instance de base de données originale. Il peut être créé à partir du moment actuel ou d'un moment antérieur dans la fenêtre de restauration . Une fenêtre de restauration spécifie la plage de temps (de 2 à 35 jours) à partir de laquelle vous pouvez effectuer une récupération à un point dans le temps. La fenêtre de restauration est définie lors de la création d'une instance de base de données. Vous pouvez créer une instance enfant à tout moment au sein de cette fenêtre de restauration, sans attendre les instantanés manuels ou les exportations complètes de base de données.
Après avoir créé une instance enfant, elle est disponible pour query jusqu'à sa suppression. Il n'y a pas d'expiration automatique liée à la fenêtre de restauration du parent. Cela garantit que vous avez toujours accès aux données à l'instant T où l'instance enfant a été créée, même si la fenêtre de restauration du parent a expiré.
Les instances enfants sont isolées du parent. Toute lecture ou écriture effectuée sur une instance enfant n'a aucun effet sur l'instance source. Les modifications apportées à une instance enfant utilisent la copie sur écriture, de sorte que les modifications sont stockées en tant que « delta ». Cela permet de partager les données non modifiées et de minimiser le stockage supplémentaire.
Créer une instance enfant pour time travel et restaurer des données
La création d'une instance enfant est utile dans les scénarios suivants :
- **Récupération après perte de données accidentelle :** Si une table critique a été supprimée hier à 10 h 23, vous pourriez générer une instance enfant configurée à 10 h 22 pour extraire uniquement les données manquantes et les Merge.
- Environnements de test et d'assurance qualité : Clonez un environnement similaire à la production à partir de n'importe quel point des X derniers jours (tel que défini par votre fenêtre de restauration) pour valider les modifications de schéma ou exécuter des tests d'intégration.
- Conformité et audit : provisionnez une instance enfant reflétant l’état de la base de données à une date passée pour les audits internes, les rapprochements financiers ou l’analyse forensique.
Instructions étape par étape
Étape 1 : (Facultatif) Configurez la fenêtre de restauration sur une instance de base de données parent.
Les valeurs valides pour la fenêtre de restauration sont comprises entre 2 et 35 jours, inclus. La fenêtre default est de 7 jours. Vous pouvez spécifier la fenêtre de restauration sur une instance de base de données lorsque vous créez l'instance. Voir Créer une instance de base de données.
Utilisez l'interface utilisateur ou l'API pour modifier la fenêtre de restauration d'une instance de base de données :
- UI
- curl
- Cliquez sur
Applications dans le coin supérieur droit et sélectionnez Lakebase Postgres .
- Cliquez sur **Provisionné** pour ouvrir la page **Instances provisionnées**.
- Sélectionnez l'instance de base de données que vous souhaitez mettre à jour.
- Cliquer sur Modifier dans le coin supérieur droit.
- Sous Paramètres avancés , définissez le nombre de jours pour la fenêtre de restauration.
- Cliquez sur Enregistrer .
curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{"retention_window_in_days": 14}'
Étape 2 : Créer une instance enfant
Les rôles et les autorisations d'une instance enfant sont les mêmes que ceux de l'instance parente au point de restauration choisi. Cela peut amener à ce que les utilisateurs aient des privilèges qui ne correspondent pas aux privilèges actuellement accordés sur l'instance parente. Consultez les rôles d'identité Databricks et révoquez tout privilège obsolète sur l'instance enfant.
Créez une instance enfant en activant **Créer à partir du parent** lors de la création régulière d'instances de base de données. Voir Créer et gérer une instance de base de données.
- UI
- curl
- Python SDK
- CLI
-
Cliquez sur
Applications dans le coin supérieur droit et sélectionnez Lakebase Postgres .
-
Cliquez sur **Provisionné** pour ouvrir la page **Instances provisionnées**.
-
Cliquez sur Créer une instance de base de données .
-
Configurez votre instance :
- Nom : saisissez un nom d'instance de base de données (1 à 63 caractères, lettres et tirets uniquement).
- Capacité : Sélectionnez la taille du compute (default : 2 CU). Voir taille de l'instance.
- **Politique d’utilisation serverless** : Sélectionnez une politique d'utilisation pour attribuer l'utilisation serverless et la facturation (facultatif). Voir les politiques d’utilisation Serverless.
-
Développer les Paramètres avancés .
-
Activer Créer à partir du parent .
-
Configurez les paramètres de l'instance enfant :
- Nom de l'instance parente : Saisissez le nom de l'instance parente à partir de laquelle vous souhaitez créer une base de données enfant.
- Inclure les données du parent jusqu’à : sélectionnez le point temporel historique spécifique à partir duquel vous souhaitez obtenir les données.
- Point dans le temps actuel : Crée une instance enfant avec les données les plus récentes à partir d'une instance de base de données.
- Date et heure spécifiques : crée une instance enfant à un moment précis dans la fenêtre de restauration d'une instance de base de données. L'instance enfant contient toutes les données à ce moment précis.
- **Numéro de séquence du log spécifique** : Crée une instance enfant à partir d'un numéro de séquence de log (LSN) particulier de log de préécriture (WAL) dans la fenêtre de restauration. PostgreSQL utilise WAL pour prendre en charge la récupération et attribue un LSN à chaque enregistrement WAL. L'instance enfant contient toutes les données à ce WAL LSN. Pour en savoir plus sur les WAL, voir les internes du WAL. Pour obtenir la valeur LSN actuelle, voir les fonctions de contrôle de sauvegarde.
-
Cliquez sur Créer .
Créez une instance enfant en utilisant les données les plus récentes d'une instance de base de données.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child"}}'
Créez une instance enfant avec des données d'une date et d'une heure spécifiques, spécifiées en UTC.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "branch_time":"2025-05-23T17:21:00Z"}}'
Créez une instance enfant avec les données d’un LSN WAL spécifique d’une instance de base de données.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "lsn":"0/2A156E"}}'
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
parent_instance_name = "test-child"
instance_name = "test"
# Create a child instance using the most recent data from a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name="my-database-instance",
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name
}
)
)
# Create a child instance with data from a specific date and time, specified in UTC.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"branch_time": "2025-05-23T17:21:00Z"
}
)
)
# Create a child instance with data from a specific WAL LSN of a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"lsn": "0/2A156E"
}
)
)
# Create a database instance from the most recent data of a parent instance
databricks database create-database-instance my-database-instance \
--capacity CU_1 \
--parent-instance-ref '{"name": "my-parent-instance"}'
# Create a database instance from a specific date and time, specified in UTC
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"branch_time": "2025-05-23T17:21:00Z"
}
}'
# Create a database instance from a specific WAL LSN of a parent instance
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"lsn": "0/2A156E"
}
}'
Étape 3 (Facultatif) : Restaurer les données
Après avoir créé une instance enfant à un moment précis, vous pouvez restaurer les données de l’instance enfant vers votre instance de production. Ceci est utile pour récupérer après une perte ou une corruption accidentelle de données.
Pour restaurer des données :
-
Connectez-vous à l'instance enfant à l'aide de votre client PostgreSQL préféré ou de votre méthode de connexion. Voir Connecter et query une instance de base de données.
-
Écrivez un script pour copier les données requises de l'instance enfant vers votre instance de production. Le script doit faire ce qui suit :
- Interrogez les tables ou données spécifiques dont vous avez besoin à partir de l'instance enfant.
- Insérez ou mettez à jour les données dans votre instance de production
- Gérez les conflits ou les Transformations de données selon les besoins
-
Testez l'opération de restauration sur un petit sous-ensemble de données d'abord pour garantir l'exactitude.
-
Exécutez le script de restauration complet pour copier toutes les données requises vers la production.
-
Supprimez l'instance enfant après avoir restauré les données avec succès et vérifié que l'instance de production est correcte. Pour supprimer votre instance, consultez Supprimer une instance.
Limitations
- Une seule instance enfant peut être créée à la fois pour une instance de base de données.
- Les instances parentes ne peuvent pas être supprimées à moins que l'instance enfant ne soit supprimée.
- Les instances enfants sont conçues pour des tests à court terme ou la récupération. De lourdes modifications sur l’enfant ou le parent peuvent entraîner la réduction du Data Sharing par le système et le maintien d’une copie complète pour l’enfant. L'utilisation et le coût du stockage peuvent augmenter pour correspondre à ceux d'une instance de base de données autonome.