用 BigDump 工具匯入超大 MySQL 資料庫備份檔案

來源:互聯網
上載者:User

標籤:

用 BigDump 工具匯入超大 MySQL 資料庫備份檔案
  •  
 建立於 2010-07-01, 周四 00:00
 作者 白建鵬

在《Joomla! 1.5 網站防黑9條戒律》這篇文章中,我們提到的第一條就是:及時、定期備份你的 Joomla! 網站。我們也多次推薦使用Akeeba Backup (原名 JoomlaPack)這個備份工具。Akeeba Backup 內建的 kickstart.php 工具也能完成備份包的恢複(或者遷移安裝)。不過,這是針對整站的恢複。假如我們只是要恢複一下資料庫呢?

常用的 MySQL 資料庫恢複工具(也能進行備份操作)是 phpMyAdmin,這是一個開源、免費的工具,大多數主機商(例如 Hawkhost)都會免費提供 。相信很多站長也用過 phpMyAdmin 來進行網站資料庫的備份和恢複,確實很方便,並且有多國語言介面。不過,有一種情況可能你還沒碰到,就是當你的資料庫體積比較大時,例如 SQL 備份檔案大於 2MB,甚至大於 10MB,這個時候如果你通過 phpMyAdmin 來進行資料庫的恢複,就會出錯,顯示如下的提示:

這是因為你的 SQL 檔案體積太大,超過了 phpMyAdmin 的處理能力,這種情況在網路速度比較慢的情況下尤為突出,例如站長在周末晚上8點這個網路擁擠的時段嘗試使用 phpMyAdmin 來恢複大型 MySQL 資料庫備份,就容易遇到這種問題。

很顯然 phpMyAdmin 只適用於恢複比較小的 SQL 檔案備份。對於超大 MySQL 資料庫備份的恢複,你必須換一個專用的恢複工具,那就是:BigDump

BigDump 資料庫匯入工具簡介

BigDump 是由德國人 Alexey Ozerov 用 PHP 語言開發的一個工具指令碼,它只有一個檔案,名為 bigdump.php(你可以改名運行)。這個檔案是獨立啟動並執行,因此與你的網站核心程式無關,不管是 WordPress,Drupal 還是 Joomla,只要你使用的是 MySQL 資料庫,都可以用 BigDump 來恢複超大的 .sql 格式備份檔案。

BigDump 工作的原理也很簡單:切割分段匯入。它在讀取 SQL 檔案時,每次唯讀取一小部分,將其匯入,然後重新開始一次恢複進程,再讀取一小部分…… 周而復始,直到將整個 SQL 檔案全部匯入。

BigDump 資料庫恢複工具用法示範

假設我們已經有了一個 MySQL 資料庫的備份檔案,名為 gate2.sql,檔案大小約 150MB(這麼大的檔案別指望通過 phpMyAdmin 來恢複了)。資料庫字元編碼為 utf-8。我們示範一下如何通過 bigdump.php 工具將這個備份檔案恢複到線上資料庫中去。

1、擷取 BigDump 檔案並設定

我們下載 BidDump 工具並解壓,得到一個 bigdump.php 檔案。毫無疑問,bigdump.php 檔案需要設定一些參數,否則它怎麼知道要匯入的資料庫的串連帳號?

用文字編輯器開啟 bigdump.php 檔案,在大約第 38 行開始,我們設定要匯入的 MySQL 資料庫串連參數。如所示:

一般來說,設定好這幾項就可以了。對於某些特殊資料庫,還需要在下面第66行左右設定資料庫字元編碼。bigdump.php 檔案中沒有預設這個參數,原文是:

$db_connection_charset = ‘‘;

如果你的資料庫是 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 資料庫匯入工具的注意事項1、在開始匯入之前,目標資料庫必須清空

如果目標資料庫裡面含有記錄,那麼 BigDump 就無法匯入,會報錯停止。因此請在開始運行 bigdump.php 檔案之前,將目標資料庫清空(最好刪除全部內容)。

2、所用的 SQL 檔案不能含有 Extended Inserts

或許很多第一次使用 BigDump 的使用者都會遭遇這個問題。這是因為 phpMyAdmin 在匯出資料庫時,已經預設勾選了“使用擴充插入”。

這裡的“擴充插入”就是 Extended Inserts,而 BigDump 是不能處理帶有 Extended Inserts 的 SQL 檔案的。所以,在你製作Database Backup時,必須在 phpMyAdmin 的面板上去掉“擴充插入”的勾選。如所示:

3、如何使 Akeeba Backup 與 BigDump 配合工作?

我們前面推薦大家使用 Akeeba Backup 來製作備份檔案。那麼,可否使用 Akeeba Backup 來製作Database Backup,然後通過 BigDump 匯入?當然是可以的。不過,這裡面需要一些特殊技巧。我們將在 Akeeba Backup 使用詳解 這篇教程中介紹。

4、使用 BigDump 匯入仍然發生逾時錯誤

這種問題多見於配置比較低的伺服器,或者伺服器繁忙時段。那麼,你可以嘗試修改 bigdump.php 檔案中的“Other settings (optional)” 這部分的 $linespersession 參數,將預設值 3000 修改得更小一些。(不過,我認為你還是換一個更好的伺服器吧,例如 Hawkhost)。

5、發生 MySQL 伺服器超載怎麼辦?

如果伺服器效能較差,在運行 bigdump.php 過程中可能會發生 MySQL 伺服器超載(overrun)故障。你可以修改 bigdump.php 檔案中的$delaypersession 參數來解決。該參數讓 bigdump.php 檔案在結束一個片段的匯入之後,休息一段時間(你設定的數值就是暫停時間,單位:毫秒),然後再開始下一個片段的匯入,這樣伺服器就不會太累了。

6、直接把 .sql 格式檔案交給 BigDump

在本次示範中,我們先將 zip 格式的備份包上傳到伺服器上,然後又將它解壓成 .sql 格式的檔案,再通過 BigDump 來匯入。為什麼不直接用 BigDump 來匯入壓縮格式的備份檔案?

沒錯,BigDump 具有匯入壓縮格式 SQL 備份檔案(zip/gzip)的能力,但是在處理壓縮檔時,它需要先在臨時目錄中將其解壓,再讀取。請注意:這個解壓並不是一次性的,而是每匯入一個小片段,就要將整個壓縮包重新解壓一次。因此,直接匯入壓縮格式檔案,反而使 bigdump.php 運行變慢。

7、我還有更奇怪的問題……

一般來說,運行 bigdump.php 匯入一個 SQL 備份檔案非常容易。如果你參照上述注意事項及操作過程,仍然不能順利完成Database Backup檔案的匯入,那麼請到 BigDump 官方網站 閱讀更多 FAQ,尋找原因。如果還無法解決,可以到 Joomla 中文論壇 發帖討論。

 下載BigDump(bigdump.php) 大型資料庫 SQL 檔案分段匯入工具 v0.32b 英文版
檔案標題: BigDump(bigdump.php) 大型資料庫 SQL 檔案分段匯入工具 v0.32b 英文版 (詳情)
檔案類型: zip
版本: 0.32b
檔案大小: 11 Kb
下載次數: 5843

用 BigDump 工具匯入超大 MySQL 資料庫備份檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.