yugabyte/yugabyte-db

Transactional, distributed backups

mbautin opened this issue · 0 comments

Jira Link: DB-2323
This is a master issue tracking transactional, distributed, point-in-time backups. This feature should enable the following:

  • Take a transactional backup of an entire database, or multiple tables
  • It should include all transactions as of some timestamp
  • A transaction should either be fully included or excluded (depending on the timestamp)
  • Each node would keep a backup of the subset of the total data
  • A snapshot from one cluster can be restored to another cluster possibly with a different number of nodes

NOTE: A backup refers to an in-cluster snapshot which can subsequently get copied out to an external location.

Prerequisites

✅ Design Doc: distributed backups and restore

Phase 1 - non-transactional YCQL tables

✅ Enable instantaneous checkpointing of DocDB data files on each tablet
✅ Ability to initiate backup of one table from YB-Master
✅ Ability to restore one table from a backup (into the same or remote cluster)
✅ Include schemas for YCQL backups

Yugabyte Platform enhancements

✅ [Platform] Backup an entire keyspace in YCQL
✅ [Platform] Nightly backups in a schedule

Phase 2 - Transactional backups - YSQL and YCQL

✅ Checkpoint an entire table at a consistent point in time #1032
✅ Consistent backup of YSQL database (target v2.2) #1139
⬜️ Use backup / restore roles for doing backup / restore #4798
✅ Backup individual tables along with indexes for YCQL
✅ Backup entire database/schema for YSQL

Phase 3 - PITR, incremental backups, cluster backup

⬜️ Ability to perform point in time restores #1820
⬜️ Incremental backups
⬜️ Backup entire YugabyteDB cluster: This will backup all databases as well as roles, permissions and other cluster metadata

Usability improvements

⬜️ Document backups and restore for DB and platform #2349 #2757 #2926 #3241
⬜️ Enable YSQL backups through ysqlsh shell
⬜️ Ability to perform a cluster-wide YCQL backup using ybadmin or ycqlsh #2350

Yugabyte Platform enhancements

⬜️ [Platform] Purge older backups automatically from backup targets

Analytics