校验脚本骨架
校验脚本骨架
#!/usr/bin/env bash
set -euo pipefail
BACKUP=/backup/appdb/latest.dump
pg_restore -d appdb_verify --clean --if-exists "$BACKUP"
# 1) 关键表行数
psql -d appdb_verify -Atc "SELECT count(*) FROM orders" > /tmp/orders.cnt
# 2) 抽样校验和(对稳定字段做聚合,避免全量开销)
psql -d appdb_verify -Atc "SELECT md5(string_agg(id::text, ',' ORDER BY id)) FROM orders WHERE id % 1000 = 0" > /tmp/orders.md5
# 3) 与昨日基线比对,不一致则告警
diff -q /tmp/orders.md5 /baseline/orders.md5 || echo "ALERT: 校验和不一致" | mail -s "backup verify failed" ops@example.com| 校验对象 | 行数、抽样校验和、关键对象存在性、应用冒烟查询 |
|---|---|
| 基线 | 保留上一周期的正常值用于比对,避免依赖硬编码数字 |
| 集成 | 失败结果推送到监控/告警系统,而不是只写日志 |
自动化把『人记得去验证』变成『系统持续验证』,是防静默失效的关键一环。