用BigDump工具導(dǎo)入超大MySQL數(shù)據(jù)庫(kù)備份文件

注明:本文以 Joomla 網(wǎng)站導(dǎo)入為例,其他程序,只需相應(yīng)修改路徑既可以。
常用的 MySQL 數(shù)據(jù)庫(kù)恢復(fù)工具(也能進(jìn)行備份操作)是 phpMyAdmin,這是一個(gè)開源、免費(fèi)的工具,大多數(shù)主機(jī)商(例如 Hawkhost)都會(huì)免費(fèi)提供 。相信很多站長(zhǎng)也用過 phpMyAdmin 來(lái)進(jìn)行網(wǎng)站數(shù)據(jù)庫(kù)的備份和恢復(fù),確實(shí)很方便,并且有多國(guó)語(yǔ)言界面。不過,有一種情況可能你還沒碰到,就是當(dāng)你的數(shù)據(jù)庫(kù)體積比較大時(shí),例如 SQL 備份文件大于 2MB,甚至大于 10MB,這個(gè)時(shí)候如果你通過 phpMyAdmin 來(lái)進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù),就會(huì)出錯(cuò),顯示如下的提示:
這是因?yàn)槟愕?SQL 文件體積太大,超過了 phpMyAdmin 的處理能力,這種情況在網(wǎng)絡(luò)速度比較慢的情況下尤為突出,例如站長(zhǎng)在周末晚上8點(diǎn)這個(gè)網(wǎng)絡(luò)擁擠的時(shí)段嘗試使用 phpMyAdmin 來(lái)恢復(fù)大型 MySQL 數(shù)據(jù)庫(kù)備份,就容易遇到這種問題。
很顯然 phpMyAdmin 只適用于恢復(fù)比較小的 SQL 文件備份。對(duì)于超大 MySQL 數(shù)據(jù)庫(kù)備份的恢復(fù),你必須換一個(gè)專用的恢復(fù)工具,那就是:BigDump!
BigDump 數(shù)據(jù)庫(kù)導(dǎo)入工具簡(jiǎn)介
BigDump 是由德國(guó)人 Alexey Ozerov 用 PHP 語(yǔ)言開發(fā)的一個(gè)工具腳本,它只有一個(gè)文件,名為 bigdump.php(你可以改名運(yùn)行)。這個(gè)文件是獨(dú)立運(yùn)行的,因此與你的網(wǎng)站核心程序無(wú)關(guān),不管是 WordPress,Drupal 還是 Joomla,只要你使用的是 MySQL 數(shù)據(jù)庫(kù),都可以用 BigDump 來(lái)恢復(fù)超大的 .sql 格式備份文件。
BigDump 工作的原理也很簡(jiǎn)單:切割分段導(dǎo)入。它在讀取 SQL 文件時(shí),每次只讀取一小部分,將其導(dǎo)入,然后重新開始一次恢復(fù)進(jìn)程,再讀取一小部分…… 周而復(fù)始,直到將整個(gè) SQL 文件全部導(dǎo)入。
BigDump 數(shù)據(jù)庫(kù)恢復(fù)工具用法演示
假設(shè)我們已經(jīng)有了一個(gè) MySQL 數(shù)據(jù)庫(kù)的備份文件,名為 gate2.sql,文件大小約 150MB(這么大的文件別指望通過 phpMyAdmin 來(lái)恢復(fù)了)。數(shù)據(jù)庫(kù)字符編碼為 utf-8。我們演示一下如何通過 bigdump.php 工具將這個(gè)備份文件恢復(fù)到在線數(shù)據(jù)庫(kù)中去。
1、獲取 BigDump 文件并設(shè)置
我們下載 BidDump 工具并解壓,得到一個(gè) bigdump.php 文件。毫無(wú)疑問,bigdump.php 文件需要設(shè)置一些參數(shù),否則它怎么知道要導(dǎo)入的數(shù)據(jù)庫(kù)的連接帳號(hào)?
用文本編輯器打開 bigdump.php 文件,在大約第 38 行開始,我們?cè)O(shè)置要導(dǎo)入的 MySQL 數(shù)據(jù)庫(kù)連接參數(shù)。如下圖所示:
一般來(lái)說(shuō),設(shè)置好這幾項(xiàng)就可以了。對(duì)于某些特殊數(shù)據(jù)庫(kù),還需要在下面第66行左右設(shè)置數(shù)據(jù)庫(kù)字符編碼。bigdump.php 文件中沒有預(yù)設(shè)這個(gè)參數(shù),原文是:
$db_connection_charset = ''; |
如果你的數(shù)據(jù)庫(kù)是 UTF-8 編碼,那么此處就要修改為:
$db_connection_charset = 'utf8'; |
注意那個(gè)連字符要去掉。如下圖所示:
接下來(lái)將設(shè)置好的 bigdump.php 文件上傳到 Joomla 網(wǎng)站上,推薦上傳到 /tmp 這個(gè)臨時(shí)目錄。
2、上傳 MySQL 數(shù)據(jù)庫(kù)備份文件
現(xiàn)在需要將數(shù)據(jù)庫(kù)備份文件上傳到 bigdump.php 所在的 /tmp 目錄中??紤]到文件較大,我們通過FTP 軟件 FileZilla 上傳zip 格式的文件,然后借助 Joomla 后臺(tái)安裝的 eXtplorer 資源管理器組件將其遠(yuǎn)程解壓,在 /tmp 目錄中得到 gate2.sql 文件。
3、啟動(dòng) BigDump 工具
在瀏覽器地址欄輸入 bigdump.php 所在 URL 并回車,運(yùn)行這個(gè)文件。例如本次演示是在本地測(cè)試服務(wù)器上進(jìn)行,那么對(duì)應(yīng)的運(yùn)行網(wǎng)址是:
http://localhost/gate/tmp/bigdump.php
如果你輸入的 URL 正確,就應(yīng)該看到如下畫面:
這就表示 BigDump 工具已經(jīng)成功啟動(dòng),它在啟動(dòng)時(shí)就自動(dòng)掃描所在目錄中的全部文件和子目錄。如果找到 SQL 格式或者 gzip/zip 格式文件,就假設(shè)這是數(shù)據(jù)庫(kù)文件,在這些文件后面,就會(huì)顯示出相應(yīng)的操作鏈接。例如在上圖中,它探測(cè)到所在目錄中有一個(gè) gate2.sql 文件,那么針對(duì)該文件就在表格右側(cè)同一行中顯示了兩條操作鏈接,分別是“Start Import”(開始導(dǎo)入)和“Delete file”(刪除文件)。上圖的表格中也顯示了 SQL 文件的大小,可以看到這個(gè)備份文件接近 150MB。
在上圖中,還可以看到一個(gè)文件上傳功能,點(diǎn)擊那個(gè)“瀏覽”按鈕,你就可以上傳一個(gè) SQL 文件(或其壓縮包)來(lái)進(jìn)行導(dǎo)入。但是我們不推薦使用此功能。對(duì)于大型文件,F(xiàn)TP 上傳是最佳選擇。
4、運(yùn)行 BigDump 導(dǎo)入功能
點(diǎn)擊上圖中的“Start Import”鏈接,就看到如下畫面:
上面這個(gè)截圖是導(dǎo)入開始一段時(shí)間之后所截取的,可以看出 BigDump 正在順利進(jìn)行 SQL 文件的導(dǎo)入。表格中不僅顯示了文件大小,還顯示了已經(jīng)導(dǎo)入的字節(jié)數(shù)及總體進(jìn)度。
經(jīng)過一段時(shí)間后(大約20分鐘),這個(gè) 150MB 大小的 SQL 文件終于導(dǎo)入結(jié)束,看到如下畫面:
原來(lái)顯示進(jìn)度條的地方,現(xiàn)在顯示了一條消息:
Congratulations: End of file reached, assuming OK
意思是說(shuō):已經(jīng)到達(dá)文件末尾,想必應(yīng)該成功了。看到這條消息,你就可以完全放心了。BigDump 已經(jīng)成功地將你的 SQL 備份文件導(dǎo)入到你所指定的 MySQL 數(shù)據(jù)庫(kù)里面了。
注意:數(shù)據(jù)庫(kù)恢復(fù)成功結(jié)束后,不要忘記刪除 bigdump.php 備份工具和你的 SQL 文件!使用 BigDump 數(shù)據(jù)庫(kù)導(dǎo)入工具的注意事項(xiàng)
1、在開始導(dǎo)入之前,目標(biāo)數(shù)據(jù)庫(kù)必須清空
如果目標(biāo)數(shù)據(jù)庫(kù)里面含有記錄,那么 BigDump 就無(wú)法導(dǎo)入,會(huì)報(bào)錯(cuò)停止。因此請(qǐng)?jiān)陂_始運(yùn)行 bigdump.php 文件之前,將目標(biāo)數(shù)據(jù)庫(kù)清空(最好刪除全部?jī)?nèi)容)。
2、所用的 SQL 文件不能含有 Extended Inserts
或許很多第一次使用 BigDump 的用戶都會(huì)遭遇這個(gè)問題。這是因?yàn)?phpMyAdmin 在導(dǎo)出數(shù)據(jù)庫(kù)時(shí),已經(jīng)默認(rèn)勾選了“使用擴(kuò)展插入”。
這里的“擴(kuò)展插入”就是 Extended Inserts,而 BigDump 是不能處理帶有 Extended Inserts 的 SQL 文件的。所以,在你制作數(shù)據(jù)庫(kù)備份時(shí),必須在 phpMyAdmin 的面板上去掉“擴(kuò)展插入”的勾選。如下圖所示:
3、如何使 Akeeba Backup 與 BigDump 配合工作?
我們前面推薦大家使用 Akeeba Backup 來(lái)制作備份文件。那么,可否使用 Akeeba Backup 來(lái)制作數(shù)據(jù)庫(kù)備份,然后通過 BigDump 導(dǎo)入?當(dāng)然是可以的。不過,這里面需要一些特殊技巧。我們將在 Akeeba Backup 使用詳解 這篇教程中介紹。
4、使用 BigDump 導(dǎo)入仍然發(fā)生超時(shí)錯(cuò)誤
這種問題多見于配置比較低的服務(wù)器,或者服務(wù)器繁忙時(shí)段。那么,你可以嘗試修改 bigdump.php 文件中的“Other settings (optional)” 這部分的 $linespersession 參數(shù),將默認(rèn)值 3000 修改得更小一些。(不過,我認(rèn)為你還是換一個(gè)更好的服務(wù)器吧,例如 Hawkhost)。
5、發(fā)生 MySQL 服務(wù)器超載怎么辦?
如果服務(wù)器性能較差,在運(yùn)行 bigdump.php 過程中可能會(huì)發(fā)生 MySQL 服務(wù)器超載(overrun)故障。你可以修改 bigdump.php 文件中的 $delaypersession 參數(shù)來(lái)解決。該參數(shù)讓 bigdump.php 文件在結(jié)束一個(gè)片段的導(dǎo)入之后,休息一段時(shí)間(你設(shè)定的數(shù)值就是暫停的時(shí)間,單位:毫秒),然后再開始下一個(gè)片段的導(dǎo)入,這樣服務(wù)器就不會(huì)太累了。
6、直接把 .sql 格式文件交給 BigDump
在本次演示中,我們先將 zip 格式的備份包上傳到服務(wù)器上,然后又將它解壓成 .sql 格式的文件,再通過 BigDump 來(lái)導(dǎo)入。為什么不直接用 BigDump 來(lái)導(dǎo)入壓縮格式的備份文件?
沒錯(cuò),BigDump 具有導(dǎo)入壓縮格式 SQL 備份文件(zip/gzip)的能力,但是在處理壓縮文件時(shí),它需要先在臨時(shí)目錄中將其解壓,再讀取。請(qǐng)注意:這個(gè)解壓并不是一次性的,而是每導(dǎo)入一個(gè)小片段,就要將整個(gè)壓縮包重新解壓一次。因此,直接導(dǎo)入壓縮格式文件,反而使 bigdump.php 運(yùn)行變慢。
7、我還有更奇怪的問題……
一般來(lái)說(shuō),運(yùn)行 bigdump.php 導(dǎo)入一個(gè) SQL 備份文件非常容易。如果你參照上述注意事項(xiàng)及操作過程,仍然不能順利完成數(shù)據(jù)庫(kù)備份文件的導(dǎo)入,那么請(qǐng)到BigDump 官方網(wǎng)站閱讀更多 FAQ,查找原因。
工具下載地址 http://www.dbjr.com.cn/codes/37147.html
相關(guān)文章
- 這篇文章主要介紹了Fastadmin的安裝與使用方法,需要的朋友可以參考下2020-08-06
安裝FastAdmin時(shí)報(bào)1146 Table 'fastadmin.fa_admin' doesn't exist錯(cuò)誤
有部分小伙伴在安裝FastAdmin時(shí)報(bào)以下錯(cuò)誤,SQLSTATE[42S02]: Base table or view not found: 1146 Table 'fastadmin.fa_admin' doesn't exist2020-08-05UTF-8文件BOM信息自動(dòng)檢測(cè)和自動(dòng)清除源碼
BOM信息是文件開頭的一串隱藏的字符,用于讓某些編輯器識(shí)別這是個(gè)UTF-8編碼的文件,也編輯器自動(dòng)加上的這個(gè)會(huì)導(dǎo)致頁(yè)面頭部會(huì)出現(xiàn)一個(gè)空白行;如果是織夢(mèng)的程序也會(huì)引起驗(yàn)證2020-02-17- 在本篇文章里小編給大家整理的是關(guān)于蘋果cms采集插件安裝的步驟和方法,有需要的朋友們可以學(xué)習(xí)下。2019-12-05
- 在本篇文章里小編給大家整理的是關(guān)于蘋果cms添加播放器的方法步驟,對(duì)此有需要的朋友們可以學(xué)習(xí)下。2019-12-05
- 在本篇文章里小編給大家分享的是關(guān)于蘋果cms更換logo的方法和步驟,有需要的朋友們可以學(xué)習(xí)參考下。2019-12-05
- 在本篇文章里小編給大家整理的是關(guān)于海洋cms電影源碼安裝步驟方法以及相關(guān)知識(shí)點(diǎn),有興趣的朋友們學(xué)習(xí)下。2019-12-05
- 在本篇文章里小編給大家整理的是關(guān)于蘋果CMS自適應(yīng)手模板設(shè)置方法,有需要的朋友們參考學(xué)習(xí)下。2019-12-05
- 在本篇文章里小編給大家整理的是關(guān)于蘋果海洋CMS自定義采集助手設(shè)置方法,有需要的朋友們學(xué)習(xí)下。2019-12-05
- 這篇文章主要為大家介紹了蘋果cms添加幻燈片的操作方法,步驟很簡(jiǎn)單,有需要的朋友們跟著操作下。2019-12-02