91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mongodb replica set模式篇

發布時間:2020-07-24 18:41:29 來源:網絡 閱讀:3381 作者:linuxblind 欄目:MongoDB數據庫

復制集架構圖:

Mongodb replica set模式篇

三節點replicaset配置安裝(無仲裁節點)

Replica set 10.10.20.161-10.10.20.163

10.10.20.161-10.10.20.163這三臺按下面的安裝:

mkdir -p/u01/mongodb/data/replset/

mkdir -p/u01/mongodb/log/

/usr/local/mongodb/bin/mongod--replSet myrepl --fork --port 40001 --dbpath /u01/mongodb/data/replset/--logpath /u01/mongodb/log/replset.log --logappend --oplogSize=4096

 

然后在建立集群,想讓哪臺當主就登陸哪臺的服務器mongo,然后添加如下配置

/usr/local/mongodb/bin/mongo-port 40001

config ={_id: 'myrepl', members: [{_id: 0, host: '10.10.20.161:40001'}, {_id: 1, host:'10.10.20.162:40001'},{_id: 3, host: '10.10.20.163:40001'}]}

rs.initiate(config)

配置完畢后退出再登陸會顯示primary字樣

/usr/local/mongodb/bin/mongo-port 40001

MongoDBshell version: 2.2.2

connectingto: 127.0.0.1:40001/test

myrepl:PRIMARY>

而另外兩個則顯示myrepl:SECONDARY

 

三節點replicaset配置安裝(有仲裁節點)

三節點無仲裁的好處就是一個master寫,兩個slave讀。缺點是,我現在只有兩臺機器,也想做replica set,這樣就出現了問題,如果只有兩臺的話,如果master宕機的話,那么只有slave一臺,投票算法無法進行,所以slave無法提升為master只能只讀,但是如果有一個仲裁節點的話,就可以完成切換,仲裁節點只負責投票不需要同步數據。

添加仲裁節點也很簡單

配置好11從節點后添加rs.add('10.10.20.163:40001',true)或者用rs.addArb('10.10.20.163:40001');

也可在第一次配置時添加

config ={_id: 'myrepl', members: [{_id: 0, host: '10.10.20.161:40001'}, {_id: 1, host:'10.10.20.162:40001'},{_id: 3, host: '10.10.20.163:40001', arbiterOnly: true}]}

rs.initiate(config)

 

讀寫分離:

默認做好Replica set的時候,slave是不開讀的只能做故障切換用,這樣比較浪費,為了分擔主上的壓力,應該讓slave可讀,方法是在slave服務器上執行rs.slaveOk()

 

手動切換master

如果當前master出現問題,我們想把它降級成slave,那么非常簡單,我們只用登陸master上執行rs.stepDown(10),這個命令的意思是10秒不會參與選舉master,當執行完后復制集會從其他slave中選一個提升為master。其實手動切換master除了這個命令還有個方法就是比較復雜,就是修改config,設置優先級,然后重新加載。還有個命令某些時候會用到rs.freeze(10)是在slave上使用的,意思是10秒內不參與master的選舉,如果我們在手動切換master的時候,我們不想讓某些slavemaster可以使用這個命令。

 

replica set相關命令:

rs.status():查看復制集狀態信息

rs.conf():查看復制集配置信息

 

replica set節點的刪除與添加:

假設我們現在需要對其中一個節點10.10.20.163進行維護,那我們需要,需要執行的命令如下

登陸master

執行rs.remove("10.10.20.163:40001")

等維護完之后再執行rs.add("10.10.20.163:40001")添加節點即可,但是如果下線時間太久,導致oplog已經被覆蓋,那么用rs.add添加節點后10.10.20.163的同步將會停止。而且會有報錯Thu Feb 28 09:58:00[rsBackgroundSync] replSet not trying to sync from 10.10.20.162:40001, it isvetoed for 133 more seconds

 

replica set節點同步失敗處理方法:

接著上面的話題,如果同步出現問題,有兩個方法解決

  1. 將一臺同步完好的節點remove然后將數據目錄scp過來再啟動

  2. 將那個不同步的節點的數據目錄刪除,然后啟動,mongodb會自動為你做好同步

 

replicaset何時會切換失效:

這是一個很重要的知識點,就是replica set的成員節點,一旦宕機數量超過一半的時候,PRIMARY會自動降級成為SECONDARY,這時集群里只能只讀,這時為了防止由于網絡原因集群被分割成多塊選出多個主。所以為了保證剩余的機器仍可切換為主,可添加多個仲裁節點。

例如:1+2+1仲裁

一共4個節點,一半就是2,那么如果2個從庫宕機之后,那個主就會自動降級為從,這時這個replica set是不可寫入的,所以不可用。

那么要解決這個問題就可以采用:1+2+2仲裁,這樣的話宕2個從庫達不到節點總數的一半,所以也不會對集群有影響。

 

修改slave的同步源(mongo 2.2新特性):

集群搭好之后,一般來說slave都是從master那里同步,如果如果slave很多的話master壓力很大,我們可以讓某些slave從其他的slave來同步數據,使用rs.syncFrom("10.10.20.163:40001")語句來執行這臺slave從哪臺同步,要注意如果這臺slave重啟后這個設置會失效。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯留县| 沙雅县| 资阳市| 沭阳县| 文水县| 合阳县| 额尔古纳市| 海原县| 庆云县| 西和县| 黑龙江省| 正蓝旗| 察雅县| 卓资县| 广饶县| 岗巴县| 西乡县| 合阳县| 沈丘县| 无为县| 永济市| 措勤县| 垫江县| 徐汇区| 澎湖县| 田东县| 奉新县| 西藏| 云梦县| 交口县| 绵阳市| 邳州市| 綦江县| 肥乡县| 凤山县| 阿克陶县| 尖扎县| 定远县| 綦江县| 昔阳县| 上饶县|