7.Mongodb复制(副本集)
生活随笔
收集整理的這篇文章主要介紹了
7.Mongodb复制(副本集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?1、復制
什么是復制
- 復制提供了數據的冗余備份,并在多個服務器上存儲數據副本,提高了數據的可用性,并可以保證數據的安全性
- 復制還允許從硬件故障和服務中斷中恢復數據
?
為什么要復制
- 數據備份
- 數據災難恢復
- 讀寫分離
- 高(24* 7)數據可用性
- 無宕機維護
- 副本集對應用程序是透明
?
復制的工作原理
- 復制至少需要兩個節點A、B...
- A是主節點,負責處理客戶端請求
- 其余的都是從節點,負責復制主節點上的數據
- 節點常見的搭配方式為:一主一從、一主多從
- 主節點記錄在其上的所有操作,從節點定期輪詢主節點獲取這些操作,然后對自己的數據副本執行這些操作,從而保證從節點的數據與主節點一致
- 主節點與從節點進行數據交互保障數據的一致性
?
復制的特點
- N 個節點的集群
- 任何節點可作為主節點
- 所有寫入操作都在主節點上
- 自動故障轉移
- 自動恢復
?
2、設置復制節點
- 接下來的操作需要打開多個終端窗口,而且可能會連接多臺ubuntu主機,會顯得有些亂,建議在xshell中實現
- step1:創建數據庫目錄t1、t2
- 在Desktop目錄下演示,其它目錄也可以,注意權限即可
mkdir t1
mkdir t2
- step2:使用如下格式啟動mongod,注意replSet的名稱是一致的
mongod --bind_ip 192.168.196.128 --port 27017 --dbpath ~/Desktop/t1 --replSet rs0
mongod --bind_ip 192.168.196.128 --port 27018 --dbpath ~/Desktop/t2 --replSet rs0
- step3:連接主服務器,此處設置192.168.196.128:27017為主服務器
mongo --host 192.168.196.128 --port 27017
- step4:初始化
rs.initiate()
- 初始化完成后,提示符如下圖:
- step5:查看當前狀態
rs.status()
- 當前狀態如下圖:
- step6:添加復本集
?
rs.add('192.168.196.128:27018')
- step7:復本集添加成功后,當前狀態如下圖:
?
- step8:連接第二個mongo服務
mongo --host 192.168.196.128 --port 27018
- 連接成功后,提示符如下圖:
- step9:向主服務器中插入數據
use test1
for(i=0;i<10;i++){db.t1.insert({_id:i})}
db.t1.find()
- step10:在從服務器中插查詢
- 說明:如果在從服務器上進行讀操作,需要設置rs.slaveOk()
rs.slaveOk()
db.t1.find()
主從切換
- 刪除從節點
rs.remove('192.168.196.128:27018') - 關閉主服務器后,再重新啟動,會發現原來的從服務器變為了從服務器,新啟動的服務器(原來的從服務器)變為了從服務器
3.實驗
(1)創建數據庫目
(2)開啟兩個Mongod服務器
(3)開啟兩個終端連接到服務器
?
(4)設置主
?
? (5)添加副本集
?
(6)主 添加數據
?
(7)從 查看數據
?
(8)主從切換
- 關閉主服務器后,再重新啟動,會發現原來的從服務器變為了從服務器,新啟動的服務器(原來的從服務器)變為了從服務器
- 主添加數據
- 從查找數據
?
轉載于:https://www.cnblogs.com/venicid/p/8478051.html
總結
以上是生活随笔為你收集整理的7.Mongodb复制(副本集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《长相思·九月西风兴》第五句是什么
- 下一篇: hdu 2199 Can you sol