如何在linux下實現對MySQL數據庫實現定時自動備份(新手)-在線求助


我真是新手,因為任務,要實現在linux下實現對MySQL數據庫實現定時自動備份.一是linux新手,MySQL 也剛用,我就是想請教一下這里的大俠,有的放矢,盡快完成工作

3 个解决方案

#1


自己編寫shell程序。

#2


圖解任務計划程序的妙用(WIN篇)
作者: phpteam, ptker
版權聲明:可以任意轉載,轉載時請務必標明文章原始出處和作者信息及本聲明

    相信不少讀者(PHP愛好者)在工作、學習的過程中經常抱怨:在WIN如何讓PHP定時自動發信呢??如何讓MYSQL實現自動備份而無后顧之憂呢??如果完全依靠手工進行當然也可以實現,但操作上似乎過於繁瑣了一點!別着急,利用系統的任務計划程序(Windows 98稱之為計划任務)可輕易解決這一問題。這一功能往往被很多用戶忽略或者未曾想到:)。

    所謂任務計划就是由計算機自動調用用戶事先設置好的應用程序,從而達到簡化用戶操作的目的。利用Windows 2000的任務計划程序(相當與*NIX下的cron程序,這里不再對其詳述),我們可以安排任何腳本、程序或文檔在最恰當的時候運行,從而滿足自己的需要。下面以Windows 2000為例。

    具體來說,我們若需利用任務計划程序自動運行則應執行如下步驟:

1.單擊“開始”按鈕,然后依次選擇“程序”→“附件”→“系統工具”→“任務計划”(或者是“設置”→“控制面板”→“任務計划”),啟動Windows 2000的任務計划管理程序。

2.在“任務計划”窗口中雙擊“添加任務計划”圖標,啟動系統的“任務計划向導”,然后單擊“下一步”按鈕,在給出的程序列表中選擇需要自動運行的應用程序,然后單擊“下一步”按鈕。
    設置適當的任務計划名稱並選擇自動執行這個任務的時間頻率(如每天、每星期、每月、一次性、每次啟動計算機時、每次登錄時等),然后單擊“下一步”按鈕。
    此時系統將會要求用戶對程序運行的具體時間進行設置,如幾號、幾點鍾、哪幾個時間段才能運行等,我們只需根據自己的需要加以設置即可。

4.接下來系統將會要求用戶設置適當的用戶名及密碼(如圖5所示),以便系統今后能自動加以運行。

5.最后,我們只需單擊“完成”按鈕即可將相應任務添加到Windows 2000的任務計划程序中,此后它就會自動“記住”這個任務,一旦系統時間及相關條件與用戶設置的計划相符,它就會自動調用用戶所指定的應用程序,十分方便(每次啟動Windows 2000的時候,任務計划程序都會自動啟動,並在后台運行,確保用戶的計划能夠按時執行)。

    現在我們來測試一下剛才所建的任務是否成功,鼠標右鍵單擊“php”程序圖標(如圖6所示),在彈出的菜單里面選擇“運行”。一般情況下程序圖標只要這樣激活運行就可以正常啟動。如果運行失敗可查看用戶和密碼是否設置正確,還有確定“Task Scheduler”服務是否已啟動,本人當初就是為了節省系統資源把它關掉了導致運行失敗,害我找了大半天。另外也可從“系統日志”里查看到底是什么原因造成運行失敗的。

    好了,講了這么多任務計划的應用,現在我們切入正題,下面將介紹兩個例子:

一、讓PHP定時運行吧!
1、   編輯如下代碼,並保存為test.php:
<?php 
$fp = @fopen("test.txt", "a+"); 
fwrite($fp, date("Y-m-d H:i:s") . " 讓PHP定時運行吧!\n"); 
fclose($fp); 
?>

2、添加一個任務計划,在(如圖2所示)這一步輸入命令:D:\php4\php.exe -q D:\php4\test.php

3、時間設置為每隔1分鍾運行一次,然后運行這個任務。

4、現在我們來看看d:\php4\test.txt文件的內容時候是否成功。如果內容為如下所示,那么恭喜你成功了。

2003-03-03 11:08:01 讓PHP定時運行吧!
2003-03-03 11:09:02 讓PHP定時運行吧!
2003-03-03 11:10:01 讓PHP定時運行吧!
2003-03-03 11:11:02 讓PHP定時運行吧!

二、讓MYSQL實現自動備份變成可能!
1、編輯如下代碼,並保存為backup.php,如果要壓縮可以拷貝一個rar.exe:
<?php 
if ($argc != 2 || in_array($argv[1], array('--help', '-?'))) { 
?> 
backup  Ver 0.01, for Win95/Win98/WinNT/Win2000/WinXP on i32 
Copyright (C) 2000 ptker All rights reserved. 
This is free software,and you are welcome to modify and redistribute it 
under the GPL license 

PHP Shell script for the backup MySQL database. 

Usage: <?php echo $argv[0]; ?> <option> 

  <option> can be database name you would like to backup. 
  With the --help, or -? options, you can get this help and exit. 
<?php 
} else { 
    $dbname = $argv[1]; 
    $dump_tool = "c:\\mysql\\bin\\mysqldump"; 
    $rar_tool = "d:\\php4\\rar"; 
    @exec("$dump_tool --opt -u user -ppassword $dbname > ./$dbname.sql"); 
    @exec("$rar_tool a -ag_yyyy_mm_dd_hh_mm $dbname.rar $dbname.sql"); 
    @unlink("$dbname.sql"); 
    echo "Backup complete!"; 

?>

2、添加一個任務計划,在(如圖2所示)這一步輸入命令:
   D:\php4\php.exe -q D:\php4\backup.php databasename
3、時間設置為每天運行一次,然后運行這個任務。
4、最后會在d:\php4\目錄下生成一個以數據庫名和當前時間組成的rar文件。
5、恭喜你!大功告成了!

    當然備份方式有很多種,讀者可按照自己喜歡的去做!

                                                          (全文完) 

#3


非常感謝水中魚的熱心。
現在任務要求的很緊,我正在抓緊看shell編程,因為設計要求是運行在linux平台下面。
設計要求:服務器端每周對MySQL數據庫進行備份,並且以時間命名備份文件,服務器中只保留兩個壓縮后的備分文件,過期的進行刪除。
可能不難,但是前提是我以前沒有接觸linux,所以任務就有點棘手了。我現在的思路是書寫一個shell腳本,在cron進程中后台運行,現在還是有語法問題。再請求幫助。水中魚找到的文章也是很有幫助的。再次感謝

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: