mydumper工作原理解析-創(chuàng)新互聯(lián)

1、簡(jiǎn)介

成都創(chuàng)新互聯(lián)公司專(zhuān)注于東興企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站開(kāi)發(fā)。東興網(wǎng)站建設(shè)公司,為東興等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開(kāi)發(fā),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

邏輯備份小鋼炮--mydumper是針對(duì)MySQL的高性能多線(xiàn)程備份工具。該工具是由MySQL、Facebook、skysql公司的開(kāi)發(fā)人員一起開(kāi)發(fā)的。是由輕量級(jí)C語(yǔ)言開(kāi)發(fā);執(zhí)行速度據(jù)說(shuō)比mysqldump快10倍;支持事務(wù)和非事務(wù)表的一致性備份;還支持導(dǎo)出binlog;支持多線(xiàn)程備份;支持以守護(hù)進(jìn)程的形式工作,定時(shí)備份;并且是開(kāi)源的,其協(xié)議為GPLv3.

2、使用方法

root@dd:~/mydumper-0.6.2# ./mydumper --help  
Usage:  
  mydumper [OPTION...] multi-threaded MySQL dumping  

Help Options:  
  -?, --help                  Show help options  

Application Options:  
  -B, --database              需要備份的庫(kù)  
  -T, --tables-list           需要備份的表,用逗號(hào)分隔  
  -o, --outputdir             輸出文件的目錄  
  -s, --statement-size        生成插入語(yǔ)句的字節(jié)數(shù), 默認(rèn) 1000000,這個(gè)參數(shù)不能太小,不然會(huì)報(bào) Row bigger than statement_size for tools.t_serverinfo  
  -r, --rows                  分裂成很多行塊表  
  -c, --compress              壓縮輸出文件  
  -e, --build-empty-files     即使表沒(méi)有數(shù)據(jù),還是產(chǎn)生一個(gè)空文件  
  -x, --regex                 正則表達(dá)式: 'db.table'  
  -i, --ignore-engines        忽略的存儲(chǔ)引擎,用逗號(hào)分隔  
  -m, --no-schemas            不導(dǎo)出表結(jié)構(gòu)  
  -k, --no-locks              不執(zhí)行共享讀鎖 警告:這將導(dǎo)致不一致的備份  
  -l, --long-query-guard      設(shè)置長(zhǎng)查詢(xún)時(shí)間,默認(rèn)60秒,超過(guò)該時(shí)間則會(huì)報(bào)錯(cuò):There are queries in PROCESSLIST running longer than 60s, aborting dump  
  --kill-long-queries         kill掉長(zhǎng)時(shí)間執(zhí)行的查詢(xún)  
  -b, --binlogs               導(dǎo)出binlog  
  -D, --daemon                啟用守護(hù)進(jìn)程模式  
  -I, --snapshot-interval     dump快照間隔時(shí)間,默認(rèn)60s,需要在daemon模式下  
  -L, --logfile               日志文件  
  -h, --host                  The host to connect to  
  -u, --user                  Username with privileges to run the dump  
  -p, --password              User password  
  -P, --port                  TCP/IP port to connect to  
  -S, --socket                UNIX domain socket file to use for connection  
  -t, --threads               使用的線(xiàn)程數(shù),默認(rèn)4  
  -C, --compress-protocol     在mysql連接上使用壓縮協(xié)議  
  -V, --version               Show the program version and exit  
  -v, --verbose               更多輸出, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

3、原理解析
mydumper工作原理解析
1)該工具在--daemo模式下支持以守護(hù)進(jìn)行形式啟動(dòng),默認(rèn)每60s進(jìn)行一次備份。間隔時(shí)間由--snapshot-interval控制。

2)首先會(huì)創(chuàng)建一個(gè)MySQL服務(wù)的連接

3)然后在MySQL上執(zhí)行show processlist,根據(jù)參數(shù)long-query-guard和kill-long-queries決定退出或殺掉長(zhǎng)查詢(xún);

4)根據(jù)是否有--lock-all-tables,進(jìn)行鎖表:LOCK TABLE tn READ或者FLUSH TABLES WITH READ LOCK;然后執(zhí)行START TRANSACTION;

5)創(chuàng)建4個(gè)備份表的子線(xiàn)程

6)創(chuàng)建1個(gè)work thread后,g_async_queue_pop(conf.ready);此時(shí)conf.ready為空需要sleep等待。

7)work線(xiàn)程執(zhí)行:連接mysql;設(shè)置隔離級(jí)別RR;start transaction;g_async_queue_push(conf->ready,GINT_TO_POINTER(1));然后main函數(shù)的g_async_queue_pop掛住的地方可以喚醒了,繼續(xù)創(chuàng)建線(xiàn)程或者向下走。

8)work線(xiàn)程接著執(zhí)行:進(jìn)入死循環(huán),從隊(duì)列里pop出任務(wù)job=(struct job *)g_async_queue_pop(conf->queue);,根據(jù)任務(wù)類(lèi)型進(jìn)行dump。這里的并行是根據(jù)表并行的。先備份非事務(wù)表,然后備份innodb表

9)最后等所有work線(xiàn)程完成非事務(wù)表備份后喚醒g_async_queue_pop(conf.unlock_tables);,執(zhí)行UNLOCK TABLES解鎖

10)事務(wù)結(jié)束

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

網(wǎng)頁(yè)名稱(chēng):mydumper工作原理解析-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://muchs.cn/article8/dhsjop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)、App開(kāi)發(fā)關(guān)鍵詞優(yōu)化靜態(tài)網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

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

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