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

Windows Server 2003 下 MySQL 每日自動備份腳本:PHP + WinRAR 打包、自動清理舊檔

     編輯:MySQL 資料庫相關知識

環境與前置準備

  • OS:Windows Server 2003
  • PHP 安裝目錄:D:/PHP
  • MySQL 安裝目錄:D:/MySQL
  • 在 `D:/PHP` 下建立 `WinRAR` 目錄,放入 `WinRAR.exe` 與 `RARReg.KEY`

核心備份腳本 MySQL_backup.php

<?php
$store_folder = 'D:\\database_backup';  // 需手動建立
$db_username = "root";
$db_password = "";

$time = time();
$nowdir = $store_folder . "\\" . date("Ymd", $time);
if (file_exists("$nowdir.rar")) die("File exists.\n");
@mkdir($nowdir);

mysql_connect("localhost", $db_username, $db_password);
$query = mysql_list_dbs();

while ($result = mysql_fetch_array($query)) {
    $db = $result['Database'];
    $cmd = dirname(__FILE__) . "\\..\\mysql\\bin\\mysqldump --opt $db -u$db_username " .
           ($db_password ? "-p$db_password" : "") . " > $nowdir\\$db.sql";
    system($cmd);
    echo "dumping database `$db`...\n";
}
echo "\nWinrar loading...\n";
system(dirname(__FILE__) . "\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \"$nowdir.rar\" \"$nowdir\" ");
// 刪除 5 天前備份
@unlink($store_folder . "\\" . date("Ymd", $time - 86400*5) . ".rar");
echo "\nOK!\n";
?>

批次檔與任務排程

  1. 建立 `MySQL_backup.bat`:php.exe MySQL_backup.php
  2. 雙擊測試,成功後加入「任務排程器」,設定每日晨間 8 點執行(避開 5-7 點資料庫維護窗口)。

關鍵參數說明

  • `mysqldump --opt`:啟用快速導出優化組合
  • `WinRAR a -ep1 -r -o+ -m5 -df`:遞歸壓縮、最高壓縮比、壓縮後刪除源檔
  • 備份目錄採用日期命名,便於時間序管理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved