久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MongoDB中副本集的示例分析

147次閱讀
沒有評論

共計 2729 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章主要介紹了 MongoDB 中副本集的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

具體如下:

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

設置過程:

(1)創(chuàng)建示例

假設創(chuàng)建三臺,創(chuàng)建三個實例目錄和日志目錄:
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

說明:

參數(shù) –replSet 設置一樣,才能屬于同一個復制集
參數(shù) –smallfiles 可以節(jié)省空間,提高速度。

然后使用 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}
}

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

然后執(zhí)行初始化:

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

查看節(jié)點:

rs.status()

刪除節(jié)點:

rs.remove(127.0.0.1:27019)

添加節(jié)點:

rs.add(127.0.0.1:27019)

切換節(jié)點:

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

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

即切換到 rs2:SECONDARY 狀態(tài)。

測試:

在主服務上,創(chuàng)建庫和集合,

rs2:PRIMARY  use student
switched to db student
rs2: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();

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

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

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

shell 腳本:

#!/bin/bash
IP=127.0.0.1
NA=rs2
sudo mkdir -p /home/m17 /home/m18 /home/m19 /home/mlog
sudo 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  EOF
use admin
var rsconf = {
_id: rs2 ,
members:[{_id:0,host: ${IP}:27017 },
{_id:1,host: ${IP}:27018 },
{_id:2,host: ${IP}:27019 }
rs.initiate(rsconf)

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“MongoDB 中副本集的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業(yè)資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-03發(fā)表,共計2729字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 泰安市| 桐梓县| 南投县| 滨州市| 班戈县| 正阳县| 神农架林区| 枣阳市| 永州市| 唐山市| 石渠县| 崇礼县| 盐源县| 双鸭山市| 凉山| 启东市| 龙里县| 崇礼县| 衢州市| 万安县| 德江县| 萨迦县| 雷波县| 吴堡县| 南郑县| 保靖县| 绥化市| 红安县| 栖霞市| 无为县| 霸州市| 翼城县| 长白| 天全县| 从化市| 荃湾区| 金阳县| 饶阳县| 项城市| 噶尔县| 安泽县|