最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【MySQL】如何快速執(zhí)行 binlog

2021-08-23 11:48 作者:Vecloud_  | 我要投稿


【背景】?
維護(hù)mysql的時(shí)候,總會(huì)遇到數(shù)據(jù)庫(kù)恢復(fù)的例子。如果把備份集恢復(fù)出來(lái)相對(duì)比較簡(jiǎn)單。然而如果遇到恢復(fù)到時(shí)間點(diǎn)的例子,把一個(gè)MySQL實(shí)例恢復(fù)出來(lái)之后,需要執(zhí)行binlog做增量恢復(fù)。?

【方法一】?
常見(jiàn)的辦法是用mysqlbinlog解析binlog,將解析出來(lái)的內(nèi)容重定向到mysql命令行執(zhí)行。?
#start是mysql-bin后面的數(shù)字?

點(diǎn)擊(此處)折疊或打開(kāi)?
i=startwhile [ $i -lt end ]domysqlbinlog mysql-bin.$i | mysql -h 127.0.0.1 -P 4001 -uroot ?> 0550.log 2>&1done這樣做確實(shí)可以,而且row模式的binlog,也可以通過(guò)這種方式來(lái)執(zhí)行。但是這樣做有幾個(gè)缺點(diǎn)?
1.?如果解析出來(lái)的binlog在執(zhí)行的過(guò)程中報(bào)錯(cuò),如何處理?直接加?-f?強(qiáng)制執(zhí)行嗎??
2.?執(zhí)行中途如何停下來(lái),下次接著跑? 比如我想調(diào)整一下MySQL的參數(shù)(需要重啟)后繼續(xù)跑??
3.?只能單線程執(zhí)行。而且mysqlbinlog解析再通過(guò)管道執(zhí)行,有比較高的性能開(kāi)銷。?

鑒于上面的缺點(diǎn)?下面隆重推出執(zhí)行大量binlog的另外一種方法?
【方法二】?
我們都知道relay-log的內(nèi)容和binlog的內(nèi)容其實(shí)都是一樣的,那么我是否能把binlog作為relay-log來(lái)執(zhí)行呢??
答案是肯定的,屢試不爽。?
詳細(xì)的步驟:?
0.?先把實(shí)例正常shutdown?
1.?把binlog上傳到mysql服務(wù)器本地磁盤,放到一個(gè)固定的目錄,如/home/mysql/restore_1031?
2.?如果是M-S?架構(gòu),則需要修改master.info,寫入如下內(nèi)容?


點(diǎn)擊(此處)折疊或打開(kāi)?
cat > $BINLOG_DIR/master.info<<eof?
</eof?
?18?
dummy.binlog?
0?
dummy.host?
repl?
repl?
3306?
60?
0?










0?
0.000?


0?


EOF這里的內(nèi)容需要符合規(guī)則,只要不指向slave?就好,避免應(yīng)用slave的sql。?
3.?修改slave-relay-log.info,?把$STAET, $START_BINLOG_POS替換成你需要開(kāi)始執(zhí)行的binlog的文件名和start-position?

點(diǎn)擊(此處)折疊或打開(kāi)?
cat > $BINLOG_DIR/relay-log.info <<EOF?
?/home/mysql/restore_1031/mysql-bin.$STAET?
$START_BINLOG_POS?
dummy-binlog.1?
0?
EOF4.?修改slave-relay-log.index,?把你需要執(zhí)行的binlog列表都放進(jìn)去。?

點(diǎn)擊(此處)折疊或打開(kāi)?
#head slave-relay-log.index?
?/home/mysql/restore_1031/mysql-bin.000588?
/home/mysql/restore_1031/mysql-bin.000589?
/home/mysql/restore_1031/mysql-bin.000590?
/home/mysql/restore_1031/mysql-bin.000591?
/home/mysql/restore_1031/mysql-bin.0005925.?啟動(dòng)mysql實(shí)例,執(zhí)行start slave sql_thread。?

使用方法二的好處:?
解決了上面用mysqlbinlog解析再管道給mysql執(zhí)行的各個(gè)缺陷。?
1?可以隨時(shí)stop slave,調(diào)整一些參數(shù),再start slave。?
2?可以選擇忽略一些slave執(zhí)行報(bào)錯(cuò)。?
3?如果你的mysql版本支持多線程復(fù)制,你還可以使用它?start slave multi_sql_thread?而且這么做性能更好,在一個(gè)數(shù)據(jù)恢復(fù)的場(chǎng)景中,?

性能對(duì)比:?
使用mysqlbinlog?加管道的方式,每秒只能執(zhí)行3000不到IUD,?
使用mysql原生slave執(zhí)行的方式,每秒可以執(zhí)行8000 IUD。?
缺點(diǎn):修改master.info slave-relay-log.info等文件,需要重啟實(shí)例才會(huì)生效。?

下一次,如果你需要恢復(fù)大量binlog,你會(huì)選擇哪種方式?

【背景】?
維護(hù)mysql的時(shí)候,總會(huì)遇到數(shù)據(jù)庫(kù)恢復(fù)的例子。如果把備份集恢復(fù)出來(lái)相對(duì)比較簡(jiǎn)單。然而如果遇到恢復(fù)到時(shí)間點(diǎn)的例子,把一個(gè)MySQL實(shí)例恢復(fù)出來(lái)之后,需要執(zhí)行binlog做增量恢復(fù)。?

【方法一】?
常見(jiàn)的辦法是用mysqlbinlog解析binlog,將解析出來(lái)的內(nèi)容重定向到mysql命令行執(zhí)行。?
#start是mysql-bin后面的數(shù)字?

點(diǎn)擊(此處)折疊或打開(kāi)?
i=startwhile [ $i -lt end ]domysqlbinlog mysql-bin.$i | mysql -h 127.0.0.1 -P 4001 -uroot ?> 0550.log 2>&1done這樣做確實(shí)可以,而且row模式的binlog,也可以通過(guò)這種方式來(lái)執(zhí)行。但是這樣做有幾個(gè)缺點(diǎn)?
1.?如果解析出來(lái)的binlog在執(zhí)行的過(guò)程中報(bào)錯(cuò),如何處理?直接加?-f?強(qiáng)制執(zhí)行嗎??
2.?執(zhí)行中途如何停下來(lái),下次接著跑? 比如我想調(diào)整一下MySQL的參數(shù)(需要重啟)后繼續(xù)跑??
3.?只能單線程執(zhí)行。而且mysqlbinlog解析再通過(guò)管道執(zhí)行,有比較高的性能開(kāi)銷。?

鑒于上面的缺點(diǎn)?下面隆重推出執(zhí)行大量binlog的另外一種方法?
【方法二】?
我們都知道relay-log的內(nèi)容和binlog的內(nèi)容其實(shí)都是一樣的,那么我是否能把binlog作為relay-log來(lái)執(zhí)行呢??
答案是肯定的,屢試不爽。?
詳細(xì)的步驟:?
0.?先把實(shí)例正常shutdown?
1.?把binlog上傳到mysql服務(wù)器本地磁盤,放到一個(gè)固定的目錄,如/home/mysql/restore_1031?
2.?如果是M-S?架構(gòu),則需要修改master.info,寫入如下內(nèi)容?


點(diǎn)擊(此處)折疊或打開(kāi)?
cat > $BINLOG_DIR/master.info<<eof?
</eof?
?18?
dummy.binlog?
0?
dummy.host?
repl?
repl?
3306?
60?
0?










0?
0.000?


0?


EOF這里的內(nèi)容需要符合規(guī)則,只要不指向slave?就好,避免應(yīng)用slave的sql。?
3.?修改slave-relay-log.info,?把$STAET, $START_BINLOG_POS替換成你需要開(kāi)始執(zhí)行的binlog的文件名和start-position?

點(diǎn)擊(此處)折疊或打開(kāi)?
cat > $BINLOG_DIR/relay-log.info <<EOF?
?/home/mysql/restore_1031/mysql-bin.$STAET?
$START_BINLOG_POS?
dummy-binlog.1?
0?
EOF4.?修改slave-relay-log.index,?把你需要執(zhí)行的binlog列表都放進(jìn)去。?

點(diǎn)擊(此處)折疊或打開(kāi)?
#head slave-relay-log.index?
?/home/mysql/restore_1031/mysql-bin.000588?
/home/mysql/restore_1031/mysql-bin.000589?
/home/mysql/restore_1031/mysql-bin.000590?
/home/mysql/restore_1031/mysql-bin.000591?
/home/mysql/restore_1031/mysql-bin.0005925.?啟動(dòng)mysql實(shí)例,執(zhí)行start slave sql_thread。?

使用方法二的好處:?
解決了上面用mysqlbinlog解析再管道給mysql執(zhí)行的各個(gè)缺陷。?
1?可以隨時(shí)stop slave,調(diào)整一些參數(shù),再start slave。?
2?可以選擇忽略一些slave執(zhí)行報(bào)錯(cuò)。?
3?如果你的mysql版本支持多線程復(fù)制,你還可以使用它?start slave multi_sql_thread?而且這么做性能更好,在一個(gè)數(shù)據(jù)恢復(fù)的場(chǎng)景中,?

性能對(duì)比:?
使用mysqlbinlog?加管道的方式,每秒只能執(zhí)行3000不到IUD,?
使用mysql原生slave執(zhí)行的方式,每秒可以執(zhí)行8000 IUD。?
缺點(diǎn):修改master.info slave-relay-log.info等文件,需要重啟實(shí)例才會(huì)生效。?

下一次,如果你需要恢復(fù)大量binlog,你會(huì)選擇哪種方式?

了解更多網(wǎng)絡(luò)知識(shí)關(guān)注:http://www.vecloud.com/


【MySQL】如何快速執(zhí)行 binlog的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
拜城县| 正阳县| 盐边县| 莲花县| 香港| 平潭县| 乐业县| 黎川县| 日土县| 内黄县| 六盘水市| 桂阳县| 洪雅县| 漯河市| 原平市| 辉南县| 浦江县| 双柏县| 桂阳县| 会理县| 泾源县| 龙游县| 汕尾市| 五华县| 卢湾区| 阳山县| 油尖旺区| 台东县| 岳普湖县| 亚东县| 雷波县| 威海市| 福建省| 炎陵县| 读书| 玛沁县| 新邵县| 从江县| 雷山县| 丰镇市| 桑日县|