# 数据库备份恢复说明

## 备份目标

第一阶段所有数据库自建，必须具备每日备份、手工恢复和恢复校验流程。资金库、订单库、配置库优先级最高。

## PostgreSQL 备份

```bash
mkdir -p /data/backups/postgresql
pg_dump -h 127.0.0.1 -U game -d platform_db -Fc -f /data/backups/postgresql/platform_db_$(date +%F).dump
pg_dump -h 127.0.0.1 -U game -d wallet_db -Fc -f /data/backups/postgresql/wallet_db_$(date +%F).dump
pg_dump -h 127.0.0.1 -U game -d order_db -Fc -f /data/backups/postgresql/order_db_$(date +%F).dump
```

## PostgreSQL 恢复

```bash
createdb -h 127.0.0.1 -U game wallet_db_restore
pg_restore -h 127.0.0.1 -U game -d wallet_db_restore /data/backups/postgresql/wallet_db_2026-06-06.dump
```

## ClickHouse 备份

```bash
clickhouse-client --query "BACKUP DATABASE game_dw TO Disk('backups', 'game_dw_20260606.zip')"
```

## 恢复校验

```bash
psql -h 127.0.0.1 -U game -d wallet_db_restore -c "select count(*) from wallet_ledger;"
clickhouse-client --query "select count(*) from game_dw.dwd_bet_orders"
```

## 强制要求

- 恢复演练必须定期执行，不能只生成备份文件。
- 账本库恢复后必须校验流水条数、金额合计和最大流水 ID。
- 备份文件必须至少保留本机一份、异地一份。
