麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB 復制(副本集)學習筆記

2020-10-29 18:41:05
字體:
來源:轉載
供稿:網友

本文實例講述了MongoDB 復制(副本集)。分享給大家供大家參考,具體如下:

replication set復制集,
復制集,多臺服務器維護相同的數據副本,提高服務器的可用性。
MongoDB復制是將數據同步在多個服務器的過程。
復制提供了數據的冗余備份,并在多個服務器上存儲數據副本,提高了數據的可用性, 并可以保證數據的安全性。
復制還允許您從硬件故障和服務中斷中恢復數據。

設置過程:

(1)創建示例

假設創建三臺,創建三個實例目錄和日志目錄:
mkdir /home/m17 /home/m18 /home/m19 /home/mlog
啟動三個示例,端口分別為27017、27018、27019。

./mongod --dbpath=/home/m17 --logpath=/home/mlog/m17.log --fork --port=27017 --replSet=rs2 --smallfiles./mongod --dbpath=/home/m18 --logpath=/home/mlog/m18.log --fork --port=27018 --replSet=rs2 --smallfiles./mongod --dbpath=/home/m19 --logpath=/home/mlog/m19.log --fork --port=27019 --replSet=rs2 --smallfiles

說明:

參數--replSet設置一樣,才能屬于同一個復制集
參數--smallfiles可以節省空間,提高速度。

然后使用ps aux | grep mongo可以查看到啟動起來的三個端口。

(2)配置

使用客戶端連接mongo進行配置:

[test@localhost bin]$ ./mongo

要管理配置,所以切換到admin上:

>use admin

(配置是json格式)

var rsconf = {_id:'rs2',members:[{"_id":0,host:'192.168.8.172:27017'},{_id:1,host:'192.168.8.172:27018'},{_id:2,host:'192.168.8.172:27019'}]}

如果沒有配置ip,使用127.0.0.1

var rsconf = {_id:'rs2',members:[{_id:0,host:'127.0.0.1:27017'},{_id:1,host:'127.0.0.1:27018'},{_id:2,host:'127.0.0.1:27019'}]}

執行后,使用 printjson(rsconf)查看剛才的配置。

然后執行初始化:

>rs.initiate(rsconf);> rs.initiate(rsconf);{"ok" : 1,"operationTime" : Timestamp(1539933041, 1),"$clusterTime" : {"clusterTime" : Timestamp(1539933041, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}}}rs2:SECONDARY>

查看節點:

rs.status()

刪除節點:

rs.remove('127.0.0.1:27019')

添加節點:

rs.add('127.0.0.1:27019')

切換節點:

默認是在27017端口,即rs2:PRIMARY>狀態,
退出mongo客戶端命令模式,
切換到另一個端口:

[test@localhost bin]$ ./mongo --port=27018,

即切換到rs2:SECONDARY>狀態。

測試:

在主服務上,創建庫和集合,

rs2:PRIMARY> use studentswitched to db studentrs2:PRIMARY> db.user.insert({uid:1,name:'zhang san'})WriteResult({ "nInserted" : 1 })rs2:PRIMARY> db.user.find();{ "_id" : ObjectId("5bc9889f85a0986431fd2499"), "uid" : 1, "name" : "zhang san" }

去從服務上查看

show dbs

然后看到有錯誤,具體錯誤信息是:

...
"errmsg" : "not master and slaveOk=false",
...

是因為slave默認不允許讀寫:

>rs.slaveOk();

然后就可以看到主服務器創建的庫和集合了。

同理27019也需要執行這個命令才能自動同步和讀寫。

當主服務器27017停掉的時候,
第二個27018就自動變成主服務器master狀態。
但是27019需要再次執行rs.slaveOk()才能自動同步讀寫。

shell腳本:

#!/bin/bashIP=127.0.0.1NA=rs2sudo mkdir -p /home/m17 /home/m18 /home/m19 /home/mlogsudo chmod -R 777 /home/m17 /home/m18 /home/m19 /home/mlog./mongod --dbpath=/home/m17 --logpath=/home/mlog/m17.log --fork --port=27017 --replSet=${NA} --smallfiles./mongod --dbpath=/home/m18 --logpath=/home/mlog/m18.log --fork --port=27018 --replSet=${NA} --smallfiles./mongod --dbpath=/home/m19 --logpath=/home/mlog/m19.log --fork --port=27019 --replSet=${NA} --smallfiles./mongo <<EOFuse adminvar rsconf = {_id:'rs2',members:[{_id:0,host:'${IP}:27017'},{_id:1,host:'${IP}:27018'},{_id:2,host:'${IP}:27019'}]}rs.initiate(rsconf)

希望本文所述對大家MongoDB數據庫程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩国产成人在线 | 蜜桃免费在线 | 国产一级一区二区三区 | 99ri精品| 国产女厕一区二区三区在线视 | xxxⅹ96日本护士hd | 免费一级毛片在线播放不收费 | 久久国产在线观看 | www.99re14.com | 黄色网址你懂的 | av不卡免费在线 | 高清国产午夜精品久久久久久 | 久久黄色影院 | 中文字幕在线网 | 国产午夜精品在线 | 一本色道久久99精品综合蜜臀 | 欧美日韩免费一区 | 粉嫩一区 | 亚洲精品com | 色天使中文字幕 | 成人福利视频 | 国产免费观看a大片的网站 欧美成人一级 | 成人爽a毛片免费啪啪红桃视频 | 欧美一级美国一级 | 日本a∨精品中文字幕在线 狠狠干精品视频 | 一级做a爱片性色毛片 | 久久成人免费观看 | 欧洲精品久久久久69精品 | 精品一区二区三区四区在线 | 一区二区三区日韩电影 | 国产激爽大片在线播放 | 日本黄色免费观看视频 | 国产成年人小视频 | 国产精品久久久久久久久久三级 | 1级黄色毛片 | 最新中文字幕第一页视频 | 羞羞网站 | 高清av免费 | 五月天影院,久久综合, | www.99久| av在线免费观看不卡 |