【MongoDB】處理jumbochunks警告信息-創(chuàng)新互聯

什么是Jumbo chunk

就是超出設定的chunk大小的chunk,默認chunk大小為64M

在永平等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網站、網站設計 網站設計制作按需網站開發(fā),公司網站建設,企業(yè)網站建設,品牌網站建設,成都全網營銷,外貿網站制作,永平網站建設費用合理。

為什么要處理Jumbo chunk

jumbo chunk無法被遷移

如何處理?

# 先找到Jumbo chunk信息
sh.status(true)

        { "phone" : NumberLong("xxxxxx") } -->> { "phone" : NumberLong("yyyyyyy") } on : shard_rep1 Timestamp(1, 19) jumbo

# 執(zhí)行
# 對于上面的Jumbo塊,執(zhí)行如下命令
sh.splitFind("db.tb",{shardkeyX:"shardkeyXValue_in_range"})

腳本化自動處理

思路處理:
  • 1.既然sh.status(true)可以發(fā)現jumbo chunk那么config庫中一定記錄著jumbo信息
  • 2.從chunk的元數據表中找到標記為jumbo的數據快
  • 3.處理超大的數據塊
    復制到mongos shell中執(zhí)行即可
    db = db.getSiblingDB('config');
    var goblins=db.chunks.find({"jumbo":true})
    goblins.forEach( function (item) { 
    databaseDotTable = item.ns;
    minShardKeyInfo = item.min;
    maxShardKeyInfo = item.max
    for (var i in minShardKeyInfo) {
        var key=i;
        var value=minShardKeyInfo[i];
        if (typeof(value) === "function") {
            for (var j in maxShardKeyInfo) {
                value = maxShardKeyInfo[j]
            }
        }
    }
    var findFilter = {}
    findFilter[key] = value
    print(`Doing db.adminCommand({"${databaseDotTable}",{${key}:${value}})}`);
    result=db.adminCommand({split:databaseDotTable,find:findFilter});
    printjson(result)
    })

備注

1.官方推薦使用更加自動的sh.splitFind而不是原始的sh.splitAt函數

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

當前題目:【MongoDB】處理jumbochunks警告信息-創(chuàng)新互聯
URL網址:http://muchs.cn/article36/dhocpg.html

成都網站建設公司_創(chuàng)新互聯,為您提供Google、手機網站建設、網站建設靜態(tài)網站、搜索引擎優(yōu)化、網站導航

廣告

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

成都seo排名網站優(yōu)化