[ Mysql ] BigDump 一個還原大型備份資料庫的好伙伴

前一陣子把「數位比較王」討論區版本升級,把它從原來的 Discuz! 4.x 升級到 Discuz! 5.x。讀了一下 5.x 的升級須知才發現這個版本的資料庫 Collation 得用 utf8_general_ci 的格式,雖然在 4.x 版時我已經是 UTF-8 化了,但是當初偷懶,用的 Collation 是 latin1_swedish_ci ,看來得有一個大工程得進行了。

於是把編碼與  Collation 都弄好,準備把資料庫回存,這才發現我的資料庫大小因為轉換了編碼與  Collation,居然從原來的 8x MB 長大成 11x MB。雖然我的 phpMyAdmin 一次可以匯入的檔案大小是 30MB,但是也超過了限制。難道要用做苦工的方式把資料庫分次回存嗎?

於是我開始找找有沒有更好的解決方案。


有不少軟體都有提供類似的解決方案,但是不知道是不是我使用方式不對,用來用去都還是多少會有一點問題。最後找到了 BigDump ,這真是一個超級好用的工具呀!

BigDump 的使用方式很簡單,只要先修改下載的壓縮檔內的 bigdump.php ,把其中關於資料庫的設定先修改好

// Database configuration

$db_server = '資料庫主機位置';
$db_name = '資料庫名稱';
$db_username = '資料庫使用者名稱';
$db_password = '資料庫使用者密碼';

接著把 bigdump.php 上傳到 server ,然後使用瀏覽器去執行,如果你 dump 出來的 sql 檔也放在一起的話,就可以在列表找到;如果沒有也無所謂,BigDump 程式也提供上傳介面。

確定之後,點選 " Start Import into 資料庫名稱 at 主機 " 就可以把你的資料庫輕鬆的寫回去了。程式的內定值是每次寫入 3000 筆資料,應該可以符合一般性需求,如果你有特殊需求可以去參考以下參數定義進行修改。

可用到的參數大概有以下這些:

  • $linespersession = 3000; (每次寫入的資料數量,內定值是 3000 筆)
  • $delaypersession = 0; (每次寫入資料的間隔時間,內定值是 0 ,請注意喔! 如果是 1 秒要設定成 1000)
  • $db_connection_charset = ''; (指定資料庫的編碼方式,不一定需要設定)

就是這麼簡單就可以把資料庫輕鬆的寫回了喔!

.

2 thoughts on “[ Mysql ] BigDump 一個還原大型備份資料庫的好伙伴

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *