中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

什么是MongoDB復制集

發布時間:2020-08-24 16:57:31 來源:億速云 閱讀:221 作者:Leah 欄目:編程語言

什么是MongoDB復制集?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、mongo復制集簡介

近年來,隨著大數據越來越火,非關系型數據庫的重要性被越來越多的人所認知,越來越多的開發者逐漸加入到NoSQL的陣營中。我們知道NoSQL是Not Only SQL的意思,既然如此,很多關系型數據庫所支持的特性在非關系型數據中也是同樣適用,比如復制集。

什么是MongoDB復制集

MongoDB是支持數據復制的,它在復制集方面的優勢與其他數據復制集一樣,它通過將數據部署在多個不同的服務器上,防止因單機故障而造成數據的丟失,借助數據冗余來提高數據的可靠性和安全性。而且還可以通過復制技術構建分布式數據庫,提高系統的訪問性能和安全性。

MongoDB的復制集模式是主從復制。在所有的數據庫服務的機器中,只有一臺機器擔當Primary角色,其余的機器均是Secondaries。擔當Primary角色的機器接收所有來自客戶端的寫(Write)操作請求,并完成該操作,從而保證了數據的一致性。擔當Primary角色的機器還能夠把來自客戶端的讀(Read)操作分配給其他機器(Secondaries),減輕主數據庫服務器的壓力。

二、復制集創建和配置

1.如果之前開了mongo的服務,那么首先要結束掉mongo的服務

cmd:pkill -9 mongo

2.刪除掉之前的dbs和log

cmd:rm -rf /home/m*

3.在三臺機器上分別配置dbs和log(這里使用一臺設備模擬三臺設備做復制集,所以在一臺設備上創建了三個數據庫地址以及日志存放路徑。)

mkdir -p /home/m17 /home/m18 /home/m19 /home/mlog

什么是MongoDB復制集

4.啟動三個實例,并且申明屬于同一個復制集

①、首先要切換到mongodb目錄下,在執行下面的命令。

②、啟動三個實例

./bin/mongod --dbpath /home/m17 --logpath /home/mlog/m17.log --fork --port 27017 --replSet fmong --journal 
--smallfiles -storageEngine=mmapv1

--dbpath:指定數據庫路徑

--logpath:指定日志存放路徑

--fork:后臺運行

--port:設置啟動的端口

--replSet:設置同一個復制集,復制集的名稱自定義

--journal:32linux需要這個參數才能啟動,64位不需要這個參數

--smallfiles:啟動時占用較小的空間,如果空間不是很缺少,一般不需要這個參數

-storageEngine:設置數據庫的引擎,由于不支持wiredTiger引擎,需要切換支持的引擎,64位系統不需要切換引擎。

什么是MongoDB復制集

三個數據實例啟動成功截圖:

什么是MongoDB復制集

③、查看三個實例啟動成功。

什么是MongoDB復制集

5、配置復制集文件,并初始化復制集

①、首先進入任意一個實例的mongo客戶端命令模式

./bin/mongo

②、切換到admin

什么是MongoDB復制集

③、定義變量

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

查看變量是否生成打印變量名稱: printjson(rsconf)

什么是MongoDB復制集

④、根據上面的配置做初始化:rs.initiate(rsconf)

⑤、查看初始化成功后,各個節點的狀態:rs.status()

什么是MongoDB復制集

6、節點的增加與刪除操作

①、刪除節點:rs.remove('子節點的host:port')

②、查看刪除節點后的復制集節點狀態:rs.status()

③、增加節點:rs.add('子節點的host:port')(注意:使用增加節點命令添加的host必須是上面配置復制集變量包含的host在內的才可以添加,如果沒有包含的host是添加不進去的。如果想添加沒有包含的host需要修改復制集變量,才可以添加。)

7、修改復制集的節點變量和初始化

①、修改之前的復制集變量,只需要修改里面的host子節點即可。例如:將三臺設備修改為兩臺設備。

什么是MongoDB復制集

②、修改完的變量,初始化要使用reconfig方法。

什么是MongoDB復制集

三、復制集添加數據

①、在主節點上添加一條數據。

什么是MongoDB復制集

②、退出主節點,進入子節點

什么是MongoDB復制集

③、查看子節點數據,如果發現報錯為

什么是MongoDB復制集

原因:子節點只能和主節點通信,別人不能操作,需要將slaveOK改為可操作。需要執行如下命令:

rs.slaveOk()

什么是MongoDB復制集

查看數據,已經同步到27018子節點上。

什么是MongoDB復制集

四、模擬主節點宕機,啟動子節點為主節點

①、首先在主節點命令下,切換到admin數據庫,然后執行關閉主節點。

什么是MongoDB復制集

②、登錄子節點

什么是MongoDB復制集


看完上述內容,你們掌握什么是MongoDB復制集的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

田阳县| 东安县| 石家庄市| 宣威市| 平远县| 蒙阴县| 湖州市| 沾益县| 永康市| 凤山县| 福海县| 临海市| 民丰县| 三明市| 台山市| 万宁市| 石泉县| 普安县| 呈贡县| 蕉岭县| 濮阳市| 宝丰县| 连云港市| 英山县| 怀远县| 大冶市| 微山县| 新巴尔虎左旗| 石棉县| 遂宁市| 永修县| 手机| 靖西县| 呼和浩特市| 抚顺市| 尼木县| 阿拉善左旗| 乐都县| 长葛市| 平罗县| 定兴县|