程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Linux 中mysql的備份和還原示例

Linux 中mysql的備份和還原示例

編輯:MySQL綜合教程

本文章來給大家介紹在linux中定時自動備份網站數據及以超大數據庫的備份方法,有需要了解的朋友可進入參考。

普通大小數據備份還原我們可以使用命令與腳本即可。、


1.用命令實現備份

  數據庫備份是很重要的。如果定期做好備份,這樣就可以在發生系統崩潰時恢復數據到最後一次正常的狀態,把損失減小到最少。MySQLl提供了一個mysqldump命令,我們可以用它進行數據備份,下面假設要備份tm這個數據庫:

  #mysqldump -u root -p tm > tm_050519.sql

  按提示輸入密碼,這就把tm數據庫所有的表結構和數據備份到tm_050519.sql了,因為要總進行備份工作,如果數據量大會占用很大空間,這時可以利用gzip壓縮數據,命令如下:

  #mysqldump -u root -p tm | gzip > tm_050519.sql.gz

  系統崩潰,重建系統時,可以這樣恢復數據:

  #mysql -u root -p tm < tm_050519.sql

  從壓縮文件直接恢復:

  #gzip < tm_050519.sql.gz | mysql -u root -p tm

  當然,有很多MySQL工具提供更直觀的備份恢復功能,比如用phpMyAdmin就很方便。但我認為,mysqldump是最基本、最通用的。

 

2.利用crontab,系統每天定時備份mysql數據庫

  【內容提要】利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。

  利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。

  1、創建保存備份文件的路徑/mysqldata

  #mkdir /mysqldata

  2、創建/usr/sbin/bakmysql文件

  #vi /usr/sbin/bakmysql

  輸入

  rq=` date +%Y%m%d `

  tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

  或者寫成

  rq=` date +%Y%m%d `

  mysqldump --all-databases -u root -p密碼 > /mysqldata/mysql$rq.sql

  /var/lib/mysql是你數據庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同

  /mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。

 

3、修改文件屬性,使其可執行

  # chmod +x /usr/sbin/bakmysql

  4、修改/etc/crontab

  #vi /etc/crontab

  在下面添加

  01 3 * * * root /usr/sbin/bakmysql

  表示每天3點鐘執行備份

  5、重新啟動crond

  # /etc/rc.d/init.d/crond restart

  完成。

  這樣每天你在/mysqldata可以看到這樣的文件

  mysql20040619.tar.gz

  你直接下載就可以了。

  cd /usr/local/mysql/bin/

  mysqldump -u用戶名 -p密碼 --databases 庫名 >/backdata/ddd07-11-15.sql

  恢復語法

  mysqladmin create target_db_name

  mysql target_db_name < backup-file.sql

  即 mysql 庫名 < 文件名

  OK,注意,-u後面沒有空格, 你只需要把上面的中文換成你的相關信息就可以了!


如果是幾個G或幾十個GB的數據上面方法可能就比較慢了,下面我來介紹一個超大的備份文件導入工具BigDump使用
方法


BigDump 數據庫恢復工具用法演示

假 設我們已經有了一個 MySQL 數據庫的備份文件,名為 gate2.sql,文件大小約 150MB(這麼大的文件別指望通過 phpMyAdmin 來恢復了)。數據庫字符編碼為 utf-8。我們演示一下如何通過 bigdump.php 工具將這個備份文件恢復到在線數據庫中去。

1、獲取 BigDump 文件並設置

我們下載 BidDump 工具並解壓,得到一個 bigdump.php 文件。毫無疑問,bigdump.php 文件需要設置一些參數,否則它怎麼知道要導入的數據庫的連接帳號?

用文本編輯器打開 bigdump.php 文件,在大約第 38 行開始,我們設置要導入的 MySQL 數據庫連接參數。

$db_server   = 'localhost'; $db_name     = 'test'; $db_username = 'root'; $db_password = '111111';  如果你的數據庫是 UTF-8 編碼,那麼此處就要修改為:

$db_connection_charset = 'utf8';

注意那個連字符要去掉。如下圖所示

 

接下來將設置好的 bigdump.php 文件上傳到 Joomla 網站上,推薦上傳到 /tmp 這個臨時目錄。

2、上傳 MySQL 數據庫備份文件

現 在需要將數據庫備份文件上傳到 bigdump.php 所在的 /tmp 目錄中。考慮到文件較大,我們通過FTP 軟件 FileZilla 上傳zip 格式的文件,然後借助 Joomla 後台安裝的 eXtplorer 資源管理器組件將其遠程解壓,在 /tmp 目錄中得到 gate2.sql 文件。

3、啟動 BigDump 工具

在浏覽器地址欄輸入 bigdump.php 所在 URL 並回車,運行這個文件。例如本次演示是在本地測試服務器上進行,那麼對應的運行網址是:

http://localhost/gate/tmp/bigdump.php

如果你輸入的 URL 正確,就應該看到如下畫面:

 

這就表示 BigDump 工具已經成功啟動,它在啟動時就自動掃描所在目錄中的全部文件和子目錄。如果找到 SQL 格式或者 gzip/zip 格式文件,就假設這是數據庫文件,在這些文件後面,就會顯示出相應的操作鏈接。例如在上圖中,它探測到所在目錄中有一個 gate2.sql 文件,那麼針對該文件就在表格右側同一行中顯示了兩條操作鏈接,分別是“Start Import”(開始導入)和“Delete file”(刪除文件)。上圖的表格中也顯示了 SQL 文件的大小,可以看到這個備份文件接近 150MB。

在上圖中,還可以看到一個文件上傳功能,點擊那個“浏覽”按鈕,你就可以上傳一個 SQL 文件(或其壓縮包)來進行導入。但是我們不推薦使用此功能。對於大型文件,FTP 上傳是最佳選擇。

4、運行 BigDump 導入功能

點擊上圖中的“Start Import”鏈接,就看到如下畫面:

 

上面這個截圖是導入開始一段時間之後所截取的,可以看出 BigDump 正在順利進行 SQL 文件的導入。表格中不僅顯示了文件大小,還顯示了已經導入的字節數及總體進度。

經過一段時間後(大約20分鐘),這個 150MB 大小的 SQL 文件終於導入結束,看到如下畫面:

 

原來顯示進度條的地方,現在顯示了一條消息:

Congratulations: End of file reached, assuming OK

意思是說:已經到達文件末尾,想必應該成功了。看到這條消息,你就可以完全放心了。BigDump 已經成功地將你的 SQL 備份文件導入到你所指定的 MySQL 數據庫裡面了。

注意:數據庫恢復成功結束後,不要忘記刪除 bigdump.php 備份工具和你的 SQL 文件!使用 BigDump 數據庫導入

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved