资阳搞运维的哥们跟我说备份做好了但还是担心,我说一份备份放在同一台服务器上那跟没备份差不多。服务器坏了备份也一起没了,这种事情不是没发生过。真正的可靠备份需要遵循3-2-1原则:至少3份备份、2种不同的存储介质、1份异地保存。今天我把符合这个原则的具体实施方案分享出来。
第一层:服务器本地自动备份
第一层备份是在服务器自身上保留最近若干天的备份。用cron定时任务每天凌晨执行备份脚本,打包网站文件和导出数据库,压缩后存放在服务器的/backups目录下。这一层备份的作用是快速恢复,比如不小心删错了文件或者数据库执行了错误的UPDATE语句,可以从本地备份分钟级恢复。保留最近7天的备份就够用了,超过的自动清理释放空间。
本地备份的不足之处就在于和原始数据在同一台服务器上,如果服务器硬件故障或者被勒索病毒加密,本地备份也会一同损毁。所以本地备份只是第一道防线,必须有后面的两层来保障极端情况下的数据安全。资阳本地很多小企业只有这一层备份,这是不够的。
第二层:云端对象存储备份
第二层备份是将备份文件自动上传到云端对象存储服务(如阿里云OSS、腾讯云COS)。云端存储有多副本冗余和跨可用区容灾能力,数据可靠性达到99.99999999%。可以用ossutil或者coscmd命令行工具配合cron实现自动上传,也可以用rclone工具同时支持多种云存储后端。云端备份保留最近30天的数据。
第三层备份是异地备份,把备份文件同步到另一个地域的服务器或者本地办公电脑上。可以用rsync over SSH或者scp来实现定时同步。这一层防范的是整个云区域发生故障的极端情况(虽然概率极低但并非不可能)。对资阳本地中小企业来说,前两层备份(本地7天+云端30天)已经能覆盖99%的数据安全场景了,有条件的再加上第三层就更完美了。
总结
资阳备份三层架构:服务器本地保留7天(快速恢复)→ 云端OSS/COS保留30天(防灾)→ 异地/本地电脑(终极保险)。用cron+rclone/ossutil实现全自动运行。备份方案不怕过度就怕不足,多一层备份多一分安心。需要备份方案详细设计的可以来找我。