資料庫上線首要任務不是跑業務,而是制定災難恢復預案——確保損壞時能以最小代價恢復到最近正常狀態。本文採用 mysqlhotcopy + Shell 腳本實現全自動備份與恢復。
#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
BACKDIR=/backup/mysql
ROOTPASS=你的root密碼
rm -rf $BACKDIR
mkdir -p $BACKDIR
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
for dbname in $DBLIST; do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done
chmod 700 mysql-backup.sh
./mysql-backup.sh
ls -l /backup/mysql/ # 確認備份成功
crontab -e
# 每天凌晨 3 點執行
00 03 * * * /root/mysql-backup.sh
DROP TABLE test; DROP DATABASE test;cp -Rf /backup/mysql/test/ /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/test/
chmod 700 /var/lib/mysql/test/
chmod 660 /var/lib/mysql/test/*
⚠️ 本文為上篇,下篇將介紹 mysqldump、二進制日誌增量恢復等進階方案。