那版上的Postgres恢复已经有两篇文章了,这是第三篇,数据大于天啊

原因是看到了一篇文章:

https://medium.com/engineering-playbook/i-deleted-production-database-on-friday-5-pm-heres-how-i-didn-t-get-fired-e5e53a133f9b

我们来复盘整个过程,同事提醒自己也要同样清醒和多留备份

一、建立**Point-in-Time Recovery (PITR)**归档

# ps axjf的结果中,看到配置文件是 /etc/postgresql/13/main/postgresql.conf
# 那就修改这个配置文件

# 修改以下2行
# 启用归档
archive_mode = on
# WAL 日志归档路径
archive_command = 'cp %p /path_to_archive_directory/%f'

# 然后重启服务生效
systemctl restart postgresql

二、建立每6小时的full backup

# Cron job running every 6 hours
pg_dump production_db | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz

三、恢复full backup

# Create new database
createdb production_db

# Restore from backup
gunzip < backup_20240126_160000.sql.gz | psql production_db

四、恢复WAL log归档备份

# Restore WAL logs from 4 PM to 5 PM
recovery_target_time = '2024-01-26 17:00:00'