首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 自動備份與災難恢復實戰(上):mysqlhotcopy + Shell 腳本

     編輯:MySQL 資料庫相關知識

前言

資料庫上線首要任務不是跑業務,而是制定災難恢復預案——確保損壞時能以最小代價恢復到最近正常狀態。本文採用 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

三、實戰演練:誤刪資料庫後恢復

  1. 建立測試庫 test、表 test、插入數據 "Hello,CentOS"
  2. 執行備份腳本
  3. 模擬災難:DROP TABLE test; DROP DATABASE test;
  4. 恢復操作:
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/*
  1. 驗證:登入 MySQL 查看 test 庫、表、數據均已恢復

⚠️ 本文為上篇,下篇將介紹 mysqldump、二進制日誌增量恢復等進階方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved