Linux 中mysql的備份與還原樣本

來源:互聯網
上載者:User

普通大小資料備份還原我們可以使用命令與指令碼即可。、


1.用命令實現備份

  Database Backup是很重要的。如果定期做好備份,這樣就可以在發生系統崩潰時恢複資料到最後一次正常的狀態,把損失減小到最少。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 資料庫備份檔案

現 在需要將Database Backup檔案上傳到 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 資料庫匯入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.