成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TIDB災(zāi)難恢復(fù)演練三部曲(下)

IT那活兒 / 915人閱讀
TIDB災(zāi)難恢復(fù)演練三部曲(下)

TIDB災(zāi)難恢復(fù)演練三部曲(上)


接上回,我們開始對三副本丟失進(jìn)行演練。




同時宕掉三臺機(jī)器



便于理解,先看表t_user新的region分布:

我們這次選擇宕掉Tikv2135、Tikv3136和Tikv4137,從分布圖可以判斷有兩region會丟失三副本,一個region丟失兩個副本,最后一個region丟失一個副本的情況。


同樣的先檢查宕機(jī)前測試表的狀況:

MySQL[sbtest2]> select count(*) from t_user;

+----------+

|count(*) |

+----------+

| 3000000 |

+----------+

1row in set (1.88 sec)


同時宕掉Tikv2135、Tikv3136和Tikv4137兩臺機(jī)器后測試表的情況:

MySQL[sbtest2]> select count(*) from t_user;

ERROR9005 (HY000): Region is unavailable


集群狀態(tài):


檢查宕機(jī)的兩臺機(jī)器對應(yīng)的store_id:

[root@tidb1bin]# /root/tidb-v4.0.0-linux-amd64/bin/pd-ctl -i -uhttp://172.16.134.133:2379

?store

這里是1,5,6


通過 pd-ctlconfig get 獲取region-schedule-limit、replica-schedule-limit、leader-schedule-limit、merge-schedule-limit并通過 pd-ctlconfig set 將這 4個參數(shù)設(shè)為 0

使用pd-ctl 檢查大于等于一半副本數(shù)在故障節(jié)點上的Region,并記錄它們的ID(故障節(jié)點為storeid 1,5,6):





? region --jq=".regions[] | {id: .id,peer_stores: [.peers[].store_id] | select(length as $total | map(if.==(1,5,6) then . else empty end) | length>=$total-length) }"

{"id":3089,"peer_stores":[5,4,6]}

{"id":47,"peer_stores":[4,5,6]}

{"id":75,"peer_stores":[4,5,6]}

{"id":30,"peer_stores":[6,4,5]}

{"id":135,"peer_stores":[6,4,5]}

{"id":4017,"peer_stores":[6,7,5]}

{"id":67,"peer_stores":[4,5,1]}

{"id":2289,"peer_stores":[4,6,5]}

{"id":18,"peer_stores":[6,4,5]}

{"id":39,"peer_stores":[6,4,5]}

{"id":51,"peer_stores":[4,6,5]}

{"id":10,"peer_stores":[4,5,6]}

{"id":14,"peer_stores":[6,5,4]}

{"id":83,"peer_stores":[6,4,5]}

{"id":59,"peer_stores":[6,4,5]}

{"id":6768,"peer_stores":[1,6,4]}

{"id":22,"peer_stores":[4,5,6]}

{"id":26,"peer_stores":[6,4,5]}

{"id":43,"peer_stores":[6,4,5]}

{"id":131,"peer_stores":[6,4,5]}

{"id":4009,"peer_stores":[6,1,5]}

{"id":2,"peer_stores":[7,6,5]}

{"id":63,"peer_stores":[4,5,1]}

{"id":87,"peer_stores":[6,4,5]}

{"id":6734,"peer_stores":[6,1,5]}

{"id":3080,"peer_stores":[6,4,5]}

{"id":3084,"peer_stores":[6,4,5]}

{"id":3076,"peer_stores":[6,4,5]}

{"id":34,"peer_stores":[6,4,5]}

{"id":127,"peer_stores":[6,4,5]}

{"id":3070,"peer_stores":[6,4,5]}






向上滑動查看更多內(nèi)容


我們可以看到表的三個regionID均在列表中,另外的一個region由于只丟失一個副本,并未出現(xiàn)在列表中。

在剩余正常的kv節(jié)點上執(zhí)行停Tikv的操作:

[root@tidb1bin]# tiup cluster stop tidb-test -R=tikv


在所有健康的節(jié)點上執(zhí)行(操作需要確保健康的節(jié)點關(guān)閉了Tikv):

[root@tidb2 bin]# ./tikv-ctl --db /data1/tidb-data/tikv-20160/dbunsafe-recover remove-fail-stores -s 1,5,6 --all-regions

removingstores [1, 5, 6] from configurations...

success

[root@tidb6bin]#  ./tikv-ctl --db /data1/tidb-data/tikv-20160/db unsafe-recoverremove-fail-stores -s 1,5,6 --all-regions

removingstores [1, 5, 6] from configurations...

success


停止PD節(jié)點:

[root@tidb1~]# tiup cluster stop tidb-test -R=pd

Startingcomponent `cluster`: /root/.tiup/component


重啟啟動PDtikv節(jié)點:

[root@tidb1~]# tiup cluster start tidb-test -R=pd,tikv


檢查沒有處于leader狀態(tài)的region(要保持沒有):

[root@tidb1~]# pd-ctl -i -u http://172.16.134.133:2379

?region --jq .regions[]|select(has("leader")|not)|{id:.id,peer_stores: [.peers[].store_id]}

{"id":4009,"peer_stores":[6,1,5]}

{"id":6734,"peer_stores":[6,1,5]}

?


這里沒有發(fā)現(xiàn)任然有兩個region處于沒有l(wèi)eader的狀態(tài)。另外丟失兩副本的一個region以及通過unsafe-recover的方式進(jìn)行了復(fù)制。


嘗試訪問表t_user

MySQL[sbtest2]> select count(*) from t_user;

ERROR9002 (HY000): TiKV server timeout

或者

MySQL[sbtest2]> select count(*) from t_user;

ERROR9005 (HY000): Region is unavailable

兩次執(zhí)行的結(jié)果有所不一樣。


根據(jù)regionID,確認(rèn)region屬于哪張表,以備后續(xù)同步數(shù)據(jù)需要。

[root@tidb1~]# curl http://172.16.134.133:10080/regions/4009

{

"region_id": 4009,

"start_key": "dIAAAAAAAABN",

"end_key": "dIAAAAAAAABNX3KAAAAAAAt8fw==",

"frames": [

{

 "db_name": "sbtest2",

 "table_name": "t_user",

 "table_id": 77,

 "is_record": true,

 "record_id": 752767

}

]

兩個regionID均屬于同一張表。


創(chuàng)建空Region 解決Unavailable 報錯。任選一個Store,關(guān)閉上面的TiKV,然后執(zhí)行:

[root@tidb2bin]# ./tikv-ctl --db /data1/tidb-data/tikv-20160/db recreate-region-p 172.16.134.133:2379 -r 4009

initingempty region 17001 with peer_id 17002...

success

[root@tidb2bin]# ./tikv-ctl --db /data1/tidb-data/tikv-20160/db recreate-region-p 172.16.134.133:2379 -r 6734

initingempty region 17003 with peer_id 17004...

success


如果不關(guān)閉tikv會報錯:

[root@tidb2bin]# ./tikv-ctl --db /data1/tidb-data/tikv-20160/db recreate-region-p 172.16.134.133:2379 -r 4009

threadmain panicked at called `Result::unwrap()` on an `Err` value:RocksDb("IO error: While lock file:/data1/tidb-data/tikv-20160/db/LOCK: Resource temporarilyunavailable"), src/libcore/result.rs:1188:5

note:run with `RUST_BACKTRACE=1` environment variable to display abacktrace.


停止PD節(jié)點:

[root@tidb1~]# tiup cluster stop tidb-test -R=pd

Startingcomponent `cluster`: /root/.tiup/component


重啟啟動PDtikv節(jié)點:

[root@tidb1~]# tiup cluster start tidb-test -R=pd,tikv


檢查沒有處于leader狀態(tài)的region(要保持沒有):

[root@tidb1~]# pd-ctl -i -u http://172.16.134.133:2379

?region --jq .regions[]|select(has("leader")|not)|{id:.id,peer_stores: [.peers[].store_id]}


?


重新修改PD的參數(shù)并嘗試訪問表t_user

MySQL[sbtest2]> select count(*) from t_user;

+----------+

|count(*) |

+----------+

| 1494555 |

+----------+

1row in set (1.92 sec)


由于丟失掉兩個region的所有副本,所以我們查詢出的數(shù)據(jù)量減少,至此恢復(fù)測試結(jié)束。


我們再看看region的分布情況:

發(fā)現(xiàn)原來三副本丟失的regionID發(fā)生了改變。

可以看到表t_user的所有region只有兩副本。




總結(jié)



TiDB集群中數(shù)據(jù)存儲Tikv如果宕了一臺機(jī)器,那么并不影響集群的運行,數(shù)據(jù)庫自身會進(jìn)行處理,PD會將其上的數(shù)據(jù)region遷移到其他的TiKV節(jié)點上。但如果同時宕機(jī)兩臺,甚至3臺及以上災(zāi)難情況,相信通過上文的介紹理解和相關(guān)命令的查詢以及修復(fù),能迅速進(jìn)行對應(yīng)的恢復(fù)操作。筆者后續(xù)會基于平臺將上述過程實現(xiàn),到時再來和大家分享。


參考文檔https://book.tidb.io/session3/chapter5/recover-quorum.html

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130198.html

相關(guān)文章

  • “怎么做好云遷移”? 深藍(lán)云海資深架構(gòu)師給你答案

    摘要:基于云遷移的三個階段細(xì)分為八個主要步驟,評估階段主要包括項目啟動現(xiàn)狀梳理以及應(yīng)用系統(tǒng)關(guān)聯(lián)關(guān)系分析三個步驟,設(shè)計階段包括云架構(gòu)優(yōu)化設(shè)計和云遷移方案設(shè)計,實施階段包括目標(biāo)架構(gòu)遷移演練及實施和試運行三個步驟。 在云計算市場規(guī)模不斷擴(kuò)大的大背景下,云遷移的需求越來越大且面臨挑戰(zhàn)。云遷移不是一個遷移軟件工具,而是一種服務(wù)。前IBM資深架構(gòu)師姜亞杰從云遷移的三個階段、四個維度到八個步驟的方法,簡述...

    kk_miles 評論0 收藏0
  • 云計算災(zāi)難恢復(fù)最佳實踐

    摘要:為云計算災(zāi)難做好準(zhǔn)備要為云計算災(zāi)難做好準(zhǔn)備,企業(yè)需要不斷測試其數(shù)據(jù)恢復(fù)框架。與內(nèi)部部署的災(zāi)難恢復(fù)相比,云計算災(zāi)難恢復(fù)更加簡單。云計算災(zāi)難恢復(fù)的最佳實踐選擇合適的災(zāi)難恢復(fù)計劃方法要制定合適的災(zāi)難恢復(fù)計劃,企業(yè)了解其基礎(chǔ)設(shè)施非常重要??紤]到當(dāng)今商業(yè)環(huán)境中采用的云計算技術(shù)迅速增加,從導(dǎo)致服務(wù)中斷和停機(jī)的災(zāi)難中有效恢復(fù)的能力變得更加重要?;谠朴嬎愕臑?zāi)難恢復(fù)可以確保企業(yè)在盡可能短的時間內(nèi)恢復(fù)其數(shù)據(jù)和...

    wenyiweb 評論0 收藏0
  • 人們需要了解的數(shù)據(jù)中心的網(wǎng)絡(luò)威脅

    摘要:物聯(lián)網(wǎng)也影響著數(shù)據(jù)中心的安全性,主要是隨著資源和數(shù)據(jù)數(shù)量和質(zhì)量的增長,人們增加了對數(shù)據(jù)中心安全性的需求。新的物聯(lián)網(wǎng)設(shè)備是和執(zhí)行數(shù)據(jù)分析的其他系統(tǒng)的常見補充,這些設(shè)備會導(dǎo)致網(wǎng)絡(luò)使用和需求增加。網(wǎng)絡(luò)威脅對于數(shù)據(jù)中心來說是一個不幸的現(xiàn)實,這些數(shù)據(jù)中心在防止違規(guī)事件方面面臨許多挑戰(zhàn)。近年來,這種風(fēng)險一直在增加,超過40%的受訪者在Carbonite公司進(jìn)行的調(diào)查報告中表示,所面臨的黑客、勒索軟件和其...

    CarlBenjamin 評論0 收藏0
  • 為什么云計算在倫敦奧運會無用武之地

    摘要:在全世界的聚焦之下,為年倫敦奧運會運行基礎(chǔ)設(shè)施的團(tuán)隊將更多重點放在了可靠性上,而不會展示尖端技術(shù)。這意味著熱門技術(shù)例如云計算將不會成為奧運會基礎(chǔ)設(shè)施的核心部分。表示,每屆奧運會相隔四年,這使確?;A(chǔ)設(shè)施保持狀況成為非常棘手的事情。 在全世界的聚焦之下,為2012年倫敦奧運會運行IT基礎(chǔ)設(shè)施的團(tuán)隊將更多重點放在了可靠性上,而不會展示尖端技術(shù)。? 這意味著熱門技術(shù)(例如云計算)將不會成為奧運會I...

    spademan 評論0 收藏0
  • 數(shù)據(jù)“金”鐘罩,你值得擁有

    摘要:日前,廣東華興銀行總行與科華恒盛就總行災(zāi)備數(shù)據(jù)中心規(guī)劃建設(shè)展開深入合作。項目建成后將全面提升廣東華興銀行數(shù)據(jù)安全保障及運維服務(wù)水平,為其總行全球業(yè)務(wù)提供小時不間斷的同城災(zāi)備服務(wù),為銀行業(yè)務(wù)穩(wěn)定運行實現(xiàn)高速增長奠定牢固的信息化基礎(chǔ)。隨著云計算、大數(shù)據(jù)等新ICT技術(shù)的高速發(fā)展,銀行業(yè)信息化建設(shè)的步伐愈行愈快。日前,廣東華興銀行總行與科華恒盛就總行災(zāi)備數(shù)據(jù)中心規(guī)劃建設(shè)展開深入合作??迫A恒盛將為其提...

    geekzhou 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<