mirror of
https://github.com/kbenestad/mdcms.git
synced 2026-06-18 15:24:32 +00:00
70 lines
1.6 KiB
Markdown
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
|
|
```
|