酷!學園

技術討論區 => Linux 討論版 => 主題作者是: appleboy 於 2009-03-09 11:08

主題: [教學]mydumper 取代 mysqldump 效能
作者: appleboy2009-03-09 11:08
原文轉貼:mydumper 取代 mysqldump 效能 (http://blog.wu-boy.com/2009/03/09/948/)

這是我在 gslin 大神 (http://blog.gslin.org/) 那邊看到的一篇文章:mydumper (取代 mysqldump 的工具) (http://blog.gslin.org/archives/2009/03/04/1956/),mysqldumper (http://dammit.lt/2009/02/03/mydumper/) 有平行跟效能方面壓力測試,效果跟時間都壓縮的比 mysqldump (http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html) 還要快,簡單管理 output 資料,它把 database 每個資料表分別 dump 資料出來寫到檔案,方便觀看檔案資料,不過沒有支援 dump table 的 definitions,所以加速提取 data 寫入到檔案,gslin 大神也把它包進 FreeBSD (http://www.freebsd.org/) ports (http://www.freebsd.org/ports/) 裡面,在 database/mydumper (http://www.freshports.org/databases/mydumper/) 這裡。
我想會把這個機制套用到我之前寫的 shell script 裡面:[linux&FreeBSD] 備份系統資料,MySQL 資料庫,PgSQL 資料庫的自動化 bash shell script 程式 (http://blog.wu-boy.com/2008/05/23/268/),那 mydumper 用法也相當簡單,mydumper –help 就寫的很清楚了,跟 mysqldump 用法差沒多少:
代碼: [選擇]
-h, --host               連接到 hostname 伺服器

-u, --user               使用者名稱

-p, --password           使用者密碼

-P, --port               MySQL TCP/IP port

-B, --database           Database 名稱

-t, --threads            Number of parallel threads

-o, --outputdir          輸出的檔案要存放在哪, 預設 ./export-*/

-c, --compress           gzip 壓縮每個檔案,多花一點時間

-x, --regex              Regular expression for 'db.table' matching

如果要 dump 全部的資料庫:
代碼: [選擇]
mydumper -u [user] -p [password]
經過 gzip 壓縮
代碼: [選擇]
mydumper -u [user] -p [password] -c
dump 單一資料庫
代碼: [選擇]
mydumper -u [user] -p [password] -c -B database
dump 多重備份 mysql 跟 test 資料庫
代碼: [選擇]
mydumper -u [user] -p [password] -c --regex '^(?!(mysql|test))'
參考文章:
mydumper (取代 mysqldump 的工具) (http://blog.gslin.org/archives/2009/03/04/1956/)
作者網站:mydumper (http://dammit.lt/2009/02/03/mydumper/)
Related View原文轉貼:mydumper 取代 mysqldump 效能 (http://blog.wu-boy.com/2009/03/09/948/)
主題: 回覆: [教學]mydumper 取代 mysqldump 效能
作者: Yamaka2009-03-09 11:33
稍微看了一下原作者的說明跟比較表, 的確很讓人心動
(http://dammit.lt/2009/02/03/mydumper/ (http://dammit.lt/2009/02/03/mydumper/))
不過還沒有時間下載來試, 想先問一下關於資料還原的方式
一樣用 mydumper, 還是??

看了幾篇說明都是說如何備份, 沒看到還原方式
或許是我眼殘+腦殘沒看到  :D :D
主題: 回覆: [教學]mydumper 取代 mysqldump 效能
作者: appleboy2009-03-09 11:47
稍微看了一下原作者的說明跟比較表, 的確很讓人心動
(http://dammit.lt/2009/02/03/mydumper/ (http://dammit.lt/2009/02/03/mydumper/))
不過還沒有時間下載來試, 想先問一下關於資料還原的方式
一樣用 mydumper, 還是??

看了幾篇說明都是說如何備份, 沒看到還原方式
或許是我眼殘+腦殘沒看到  :D :D

說實在的,我也是看了原作者一些效能方面的測試,時間方面的確省了很多

也可以針對每個資料庫分別資料表備份,相當不錯,復原的方式,我也看了作者網站

好像也沒提到怎麼恢 restore,只不過看了那些檔案,內容都是 INSERT INTO 的方式儲存

restore 回去的話,不知道可不可以用 mysql 指令恢復,那 table 的 structure 可能要另外備份

然後在 restore 回去,才能再使用 mydumper 的資料。 :)
主題: 回覆: [教學]mydumper 取代 mysqldump 效能
作者: Yamaka2009-03-09 12:01
其實我的需求只是希望  dump 時能加快處理速度就夠了,因為我都是整個資料庫或是所有資料庫一起 dump
壓縮的部分到是其次. 如果能加速處理, 內容格式又與mysqldump 100%一樣, 或是說可以用 mysql 灌回去,
當然資料要 100% 一樣啊, 那就可以考慮換用 mydumper 了, 至於壓縮的部分
另外寫一個 shell script 在 dump 之後就可接手工作