萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 資料備份策略總結:mysqldump 邏輯備份、xcopy 物理冷備份、計劃任務自動化、壓縮與跨機遷移

策略一:邏輯備份(mysqldump)— 通用、跨版本、可編輯

核心命令速查

需求命令範例
單庫備份mysqldump -h localhost -u root -p db_name > backup.sql
單庫壓縮備份mysqldump -h localhost -u root -p db_name | gzip > backup.sql.gz
帶 DROP TABLE(可直接覆蓋還原)mysqldump --add-drop-table -u root -p db_name > backup.sql
指定表備份mysqldump -u root -p db_name tbl1 tbl2 > backup.sql
多庫備份mysqldump -u root -p --databases db1 db2 > multi.sql
僅結構mysqldump --no-data --databases db1 db2 > struct.sql
全例備份mysqldump --all-databases > all.sql

還原命令

# 一般還原
mysql -h localhost -u root -p db_name < backup.sql

# 壓縮檔直導
gunzip < backup.sql.gz | mysql -u root -p db_name

# 跨伺服器直接遷移
mysqldump -u user -p db_name | mysql -h target_host -u user -p -C db_name

策略二:物理冷備份(xcopy/rsync + 停庫)— 極速、適合超大庫

前提:同版本、同 OS、同架構、同儲存引擎、可接受停機時間。

Windows 批次腳本 (bak.bat) 搭配排程器

@echo off
echo === 開始備份 %date% %time% ===
net stop mysql
xcopy "D:\phpStudy\MySQL\data\db_name\*.*" "D:\db_backup\%date:~0,10%\" /E /Y /C
net start mysql
echo === 備份完成 %date% %time% ===
  • /E 包含子目錄、/Y 覆蓋不提示、/C 忽略錯誤繼續
  • Windows 任務計劃程式 → 建立基本任務 → 每日觸發 → 執行此 .bat

Linux rsync + crontab(增量、遠端)

# 每日 02:00 執行增量同步至備份伺服器
0 2 * * * rsync -avz --delete /var/lib/mysql/ backup_user@backup_server:/backup/mysql/

策略三:PHP 程式碼層面備份(應用整合)

<?php
mysql_connect('localhost', 'user', 'pass');
mysql_select_db('db_name');

function copy_table($from, $to) {
    if (table_exists($to)) return false;
    mysql_query("CREATE TABLE $to LIKE $from");
    mysql_query("INSERT INTO $to SELECT * FROM $from");
    return true;
}

function table_exists($table, $db = false) {
    if (!$db) { $db = mysql_result(mysql_query("SELECT DATABASE()"), 0); }
    $sql = "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='$db' AND table_name='$table'";
    return mysql_result(mysql_query($sql), 0) == 1;
}
?>

適用於應用內部定期備份核心表至備份表,配合定時任務執行。

備份策略選型決策樹

  1. 資料量 < 50GB、需跨版本/跨平台 → mysqldump 邏輯備份
  2. 資料量 > 50GB、同環境、可停機窗口 → 物理冷備份 (xcopy/rsync/xtrabackup)
  3. 7×24 無停機窗口、InnoDB 為主 → Percona XtraBackup 熱備份
  4. 需秒級 RPO → 主從複制 + 從庫備份

最佳實踐清單

  • 備份後必須驗證:校驗和、試恢復、行數抽樣
  • 異地多副本:本地 + 異地雲存儲(OSS/S3/NAS)
  • 保留策略:每日全備保留 7 天、每週全備保留 4 週、每月全備保留 12 月
  • 加密傳輸與靜態加密:gzip -c | openssl enc -aes-256-cbc
  • 文檔化恢復流程,定期演練
copyright © 萬盛學電腦網 all rights reserved