mysql5.7邏輯備份工具mysqlpump-創(chuàng)新互聯(lián)

mysqlpump是mysql5.7.8版本后特有的邏輯備份工具,相對(duì)于mysqldump和mysqldumper,mysqlpump擁有更多特性,官方文檔的描述如下:

成都創(chuàng)新互聯(lián)專注于松桃網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供松桃營(yíng)銷(xiāo)型網(wǎng)站建設(shè),松桃網(wǎng)站制作、松桃網(wǎng)頁(yè)設(shè)計(jì)、松桃網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造松桃網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供松桃網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。mysqlpump features include:  Parallel processing of databases, and of objects within databases, to speed up the dump process  Better control over which databases and database objects (tables, stored programs, user accounts) to dump  Dumping of user accounts as account-management statements (CREATE USER, GRANT) rather than as inserts into the mysql system database  Capability of creating compressed output  Progress indicator (the values are estimates)  For dump file reloading, faster secondary index creation for InnoDB tables by adding indexes after rows are inserted

1、支持多線程備份數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象,加快備份進(jìn)程。

2、有更好的控制策略去備份數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象(表、存儲(chǔ)過(guò)程、賬戶)。

3、備份用戶通過(guò)賬戶管理SQL(create user,grant)而不再是往mysql系統(tǒng)庫(kù)插入記錄的方式

4、能創(chuàng)建壓縮文件

5、顯示進(jìn)度(估算值)

6、重新加載(還原)備份文件,先建表后插入數(shù)據(jù)最后建立索引,減少了索引維護(hù)開(kāi)銷(xiāo),加快了還原速度。

注:mysql5.7.11版本后,mysqlpump才解決了一致性備份的問(wèn)題,如果早于這個(gè)版本,邏輯備份最好采用mysqldump解決一致性備份問(wèn)題。

Before MySQL 5.7.11, use of the --single-transaction option is mutually exclusive with parallelism. To use --single-transaction, disable parallelism by setting --default-parallelism to 0 and not using any instances of -- parallel-schemas: shell> mysqlpump --single-transaction --default-parallelism=0

為了測(cè)試下mysqlpump性能,在自己虛擬機(jī)上做了小測(cè)試,

    測(cè)試虛擬機(jī)環(huán)境:

    主機(jī):

    CPU:Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz 4核

    內(nèi)存:1G

    磁盤(pán):SCSI硬盤(pán) 10G

    數(shù)據(jù)庫(kù):

    版本:5.7.16

用sysbench準(zhǔn)備測(cè)試數(shù)據(jù),以下是測(cè)試數(shù)據(jù)準(zhǔn)備腳本:

[root@mysql1 shell]# cat test_sysbench.sh  #!/bin/sh sysbench --test=oltp --mysql-host=192.168.110.100 --mysql-port=3307 --mysql-user=root --mysql-password=root --mysql-db=sbtest2 --oltp-num-tables=4 --oltp-table-size=500000 --report-interval=100  --max-requests=0 --oltp-test-mode=nontrx --oltp-nontrx-mode=select --oltp-read-only=off --max-time=30 --num-threads=16 prepare  sysbench --test=oltp --mysql-host=192.168.110.100 --mysql-port=3307 --mysql-user=root --mysql-password=root --mysql-db=sbtest3 --oltp-num-tables=4 --oltp-table-size=500000 --report-interval=100  --max-requests=0 --oltp-test-mode=nontrx --oltp-nontrx-mode=select --oltp-read-only=off --max-time=30 --num-threads=16 prepare  sysbench --test=oltp --mysql-host=192.168.110.100 --mysql-port=3307 --mysql-user=root --mysql-password=root --mysql-db=sbtest4 --oltp-num-tables=4 --oltp-table-size=500000 --report-interval=100  --max-requests=0 --oltp-test-mode=nontrx --oltp-nontrx-mode=select --oltp-read-only=off --max-time=30 --num-threads=16 prepare

測(cè)試結(jié)果如下:(注意每次測(cè)試都需要重啟mysql服務(wù),以避免內(nèi)存緩沖對(duì)測(cè)試結(jié)果有所影響)

shell>time mysqlpump -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock -A --single-transaction --default-parallelism=1 > pump.sql real    0m46.317s user    0m13.602s sys     0m3.949s shell>time mysqlpump -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock -A --single-transaction --default-parallelism=2 > pump.sql real    0m48.707s user    0m15.087s sys     0m3.965s shell>time mysqlpump -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock -A --single-transaction --default-parallelism=4 > pump.sql real    0m55.529s user    0m14.783s sys     0m4.143s shell>time mysqldump  -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock --set-gtid-purged=OFF -A --single-transaction > dump.sql real    0m57.089s user    0m8.870s sys     0m3.441s ++++++++++++++++++++++++++++++++++++++++++分割線+++++++++++++++++++++++++++++++++++++++++++ shell>time mysqlpump -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock -A --single-transaction --default-parallelism=1 --compress_output=LZ4 --skip-watch-progress > pump.sql  real    1m6.681s user    0m19.521s sys     0m4.041s shell>time mysqlpump -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock -A --single-transaction --default-parallelism=1 --compress_output=ZLIB --skip-watch-progress > pump.sql    real    1m8.877s user    0m27.315s sys     0m4.693s shell>time mysqldump  -uroot -proot -S /mysqldata/mysql/mysql3307/mysql3307.sock --set-gtid-purged=OFF -A --single-transaction |gzip> dump.sql.gz real    1m8.567s user    0m20.797s sys     0m8.082s

從測(cè)試結(jié)果上可以發(fā)現(xiàn):

1、mysqlpump確實(shí)比mysqldump效率高。

2、但是由于測(cè)試機(jī)磁盤(pán)IO有限,導(dǎo)致并發(fā)線程數(shù)從1提升到2和4的時(shí)候,由于IO的瓶頸,備份的時(shí)間反而增加。

3、由于測(cè)試的庫(kù)表數(shù)據(jù)較小,測(cè)試數(shù)據(jù)有所失真,建議準(zhǔn)備多幾個(gè)庫(kù)和大表的數(shù)據(jù)進(jìn)行測(cè)試,效果會(huì)更明顯。

4、mysqlpump的LZ4壓縮算法壓縮效率高于ZLIB壓縮算法。

mysqlpump用法同mysqldump用法高度一致,最為有看點(diǎn)的就是:

1、支持基于表的多線程導(dǎo)出功能(--default-parallelism,默認(rèn)為2,--parallel-schemas,控制并行導(dǎo)出的庫(kù))
2、導(dǎo)出的時(shí)候帶有進(jìn)度條(--watch-progress,默認(rèn)開(kāi)啟)
3、支持直接壓縮導(dǎo)出導(dǎo)入(參數(shù)--compress-output,而且支持ZLIB和LZ4)

詳細(xì)的用法可以通過(guò)查找官方文檔or mysqlpump --help。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:mysql5.7邏輯備份工具mysqlpump-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article22/dchjjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、網(wǎng)站策劃、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、商城網(wǎng)站、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)