激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - MongoDB 復制(副本集)學習筆記

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

2020-05-25 16:01學知無涯 MongoDB

這篇文章主要介紹了MongoDB 復制(副本集),結合實例形式分析了MongoDB數據庫復制的相關原理、配置、使用方法及操作注意事項,需要的朋友可以參考下

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

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

設置過程:

(1)創建示例

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

?
1
2
3
./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進行配置:

?
1
[test@localhost bin]$ ./mongo

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

?
1
>use admin

(配置是json格式)

?
1
2
3
4
5
6
7
8
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

?
1
2
3
4
5
6
7
8
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)查看剛才的配置。

然后執行初始化:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>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>

查看節點:

?
1
rs.status()

刪除節點:

?
1
rs.remove('127.0.0.1:27019')

添加節點:

?
1
rs.add('127.0.0.1:27019')

切換節點:

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

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

即切換到rs2:SECONDARY>狀態。

測試:

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

?
1
2
3
4
5
6
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默認不允許讀寫:

?
1
>rs.slaveOk();

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

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

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

shell腳本:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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)

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

原文鏈接:https://www.cnblogs.com/gyfluck/p/9816943.html

延伸 · 閱讀

精彩推薦
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
主站蜘蛛池模板: 97视频| 在线男人天堂 | 国产免费v片 | 午夜精品网站 | 精品影视一区二区 | 国产精品久久99精品毛片三a | 看毛片电影 | 国产亚洲福利 | 国产妇女乱码一区二区三区 | 免费黄色小视频网站 | 欧美中文在线 | 国产一级淫片在线观看 | 亚洲影视在线观看 | 精品一区二区6 | 91社影院在线观看 | 在线亚洲免费 | 久久艹精品视频 | 久久欧美亚洲另类专区91大神 | 久青草免费视频 | 91成人久久 | 毛片网站视频 | 成人精品aaaa网站 | 精品国产91久久久久久久妲己 | 久久久在线免费观看 | 亚洲视屏 | 免费午夜视频 | 久久蜜桃香蕉精品一区二区三区 | 多男操一女视频 | 青青草成人av | 91高清网站 | 久操福利视频 | 久久吊 | 日本网站一区 | 久草欧美 | 成人国产精品齐天大性 | 久草视频在线看 | 久草视频福利在线观看 | 久久99精品久久久久久236 | 亚洲乱搞 | 日韩视频―中文字幕 | 日本不卡一区二区在线观看 |