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

Windows Server 2003 下 MySQL 每日自動備份腳本實作

     編輯:MySQL 資料庫相關知識

環境

  • OS:Windows Server 2003
  • MySQL:4.0.26(安裝於 D:/MySQL)
  • PHP:5.x(安裝於 D:/PHP)
  • WinRAR:複製 WinRAR.exe 與 RARReg.key 至 D:/PHP/WinRAR

備份 PHP 腳本(D:/PHP/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 ($row = mysql_fetch_array($query)) {
    $db = $row['Database'];
    $cmd = dirname(__FILE__) . '\\..\\mysql\\bin\\mysqldump --opt '
         . escapeshellarg($db) . ' -u' . $db_username
         . ($db_password ? ' -p' . $db_password : '')
         . ' > ' . escapeshellarg($nowdir . '\\' . $db . '.sql');
    system($cmd);
    echo "dumping database `$db`...\n";
}
echo "\nWinrar loading...\n";
$rar = dirname(__FILE__) . '\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df '
     . escapeshellarg($nowdir . '.rar') . ' ' . escapeshellarg($nowdir);
system($rar);

// 刪除 5 天前備份
@unlink($store_folder . '\\' . date('Ymd', $time - 86400*5) . '.rar');
echo "\nOK!\n";
?>

批次啟動檔(D:/PHP/MySQL_backup.bat)

php.exe MySQL_backup.php

部署步驟

  1. 雙擊 .bat 測試運行,確認生成 YYYYMMDD.rar。
  2. 控制面板 → 任務計劃 → 新增任務:
    程式:D:\PHP\MySQL_backup.bat
    排程:每日 08:00(流量低峰,避開 05:00-07:00 系統清理時段)。

關鍵參數說明

  • mysqldump --opt:含 --add-drop-table --create-options --quick --extended-insert --lock-tables 等優化組合。
  • WinRAR -m5:最大壓縮比;-df 壓縮後刪除源檔;-o+ 覆蓋同名壓縮包。
  • 備份保留 5 天,自動輪替。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved