Repository
affandar/toygres
Backup Types
- Full: Base backup via pg_basebackup
- Incremental: WAL archiving since last backup
- Logical: pg_dump for specific databases
Backup API
// Manual backup
let backup = client.create_backup(CreateBackupRequest {
instance_id: "pg-prod-1".into(),
backup_type: BackupType::Full,
label: Some("pre-migration-backup".into()),
}).await?;
// Schedule automatic backups
client.configure_backup_schedule(BackupScheduleConfig {
instance_id: "pg-prod-1".into(),
full_backup_cron: "0 2 * * 0".into(), // Weekly
incremental_backup_cron: "0 2 * * *".into(), // Daily
}).await?;
Restore API
// Restore to new instance
client.restore_backup(RestoreRequest {
backup_id: "backup-123".into(),
target: RestoreTarget::NewInstance { instance_id: "pg-restored".into() },
point_in_time: Some(datetime), // PITR support
}).await?;
Storage Options
- Azure Blob Storage
- S3
- Local filesystem
Retention Policy
- Keep daily backups for N days
- Keep weekly backups for N weeks
- Keep monthly backups for N months
Point-in-Time Recovery (PITR)
- Continuous WAL archiving
- Restore base backup + replay WAL to target timestamp
See: proposals/toygres-improvements.md
Repository
affandar/toygres
Backup Types
Backup API
Restore API
Storage Options
Retention Policy
Point-in-Time Recovery (PITR)
See:
proposals/toygres-improvements.md