mdcms/neuraldb-docs/pages/ops-backup.md

70 lines
1.6 KiB
Markdown

---
title: Backup & Restore
sort: 110
section-id: operations
keywords: backup, restore, snapshot, WAL archiving, PITR, point-in-time recovery
description: Backup and restore strategies for NeuralDB — snapshots, WAL archiving, and point-in-time recovery
language: en
---
# Backup & Restore
## Physical Snapshot
```bash
pg_basebackup \
--host=localhost --port=5432 --username=backup_user \
--pgdata=/backups/neuraldb/$(date +%Y%m%d) \
--wal-method=stream --checkpoint=fast --compress=lz4 --progress
```
## WAL Archiving
```ini
wal_level = replica
archive_mode = on
archive_command = 'aws s3 cp %p s3://my-backups/neuraldb/wal/%f'
archive_timeout = 60
```
Verify:
```sql
SELECT last_archived_wal, last_archived_time, archived_count, failed_count
FROM pg_stat_archiver;
```
## pgBackRest
```bash
sudo apt install pgbackrest
# Full backup
sudo -u postgres pgbackrest --stanza=neuraldb backup --type=full
# Differential
sudo -u postgres pgbackrest --stanza=neuraldb backup --type=diff
```
Cron schedule:
```cron
0 1 * * 0 postgres pgbackrest --stanza=neuraldb backup --type=full
0 1 * * 1-6 postgres pgbackrest --stanza=neuraldb backup --type=diff
```
## Point-in-Time Recovery
```bash
systemctl stop neuraldb
pgbackrest --stanza=neuraldb restore \
--target="2026-05-15 14:30:00+00" \
--target-action=promote --delta
systemctl start neuraldb
```
## Logical Backup
```bash
pg_dump -h localhost -U neuraldb mydb | lz4 | \
aws s3 cp - s3://my-backups/neuraldb/logical-$(date +%Y%m%d).sql.lz4
pg_dump -Fc -h localhost -U neuraldb mydb > mydb-$(date +%Y%m%d).dump
```