mongodb基础系列—副本集具体搭建以及解说
既然有了主从复制,为啥又出来个副本集?一个东西的出现,肯定存在一种东西被解救。所谓一物降一物O(_)O 上文中说道主从复制缺点主服务器出现故障,从服务器是干瞪眼。这篇文章就要解说,主仆之间会有一个怎样的变化? 仍然是一台电脑工作。步骤如下: 1.准
既然有了主从复制,为啥又出来个副本集?一个东西的出现,肯定存在一种东西被解救。所谓一物降一物O(∩_∩)O 上文中说道主从复制缺点—主服务器出现故障,从服务器是干瞪眼。这篇文章就要解说,主仆之间会有一个怎样的变化?
仍然是一台电脑工作。步骤如下:
1.准备条件,模拟三个服务器,一个主primary,两个secondary(可以称副节点)
可以新建目录如下: 以三个节点为例:节点1: HOST:localhost:10001 Log File:e:\mastersavle\logs\node1\logs.txt Data File:E:\mastersavle\dbs\node1 节点2: HOST:localhost:10002 Log File:E:\mastersavle\logs\node2\logs.txt Data File:E:\mastersavle\dbs\node2 节点3: HOST:localhost:10003 Log File:E:\mastersavle\logs\node3\logs.txt Data File:E:\mastersavle\dbs\node3
2.启动三个节点,观察启动后每个节点的日志文件
启动节点1:
mongod --dbpath E:\mastersavle\dbs\node1 --logpath E:\mastersavle\logs\node1\logs.txt --logappend --port 10001 --replSet itcast/localhost:10002 --master

我们看看log日志:

启动节点2:
mongod --dbpath E:\mastersavle\dbs\node2 --logpath E:\mastersavle\logs\node2\logs.txt --logappend --port 10002 --replSet itcast/localhost:10001

启动节点3:
mongod --dbpath E:\mastersavle\dbs\node3 --logpath E:\mastersavle\logs\node3\logs.txt --logappend --port 10003 --replSet itcast/localhost:10001,localhost:10002

3.初始化节点:只初始化一次,随便登陆三个节点任何一个,但是必须进入admin数据库
节点2和节点3日志文件中已经告诉我们,replSet info you may need to run replSetInitiate,需要运行初始化函数。db.runCommand({"replSetInitiate":{"_id":"itcast","members":[{"_id":1,"host":"localhost:10001","priority":3},{"_id":2,"host":"localhost:10002","priority":2},{"_id":3,"host":"localhost:10003","priority":1}]}});

4.开启另一个窗口,测试谁是主服务器
连接10001端口:
查看是否是主服务器:db.$cmd.findOne ( {ismaster: 1 } );

5.测试副本集特性,断开主节点,看副节点有何变化?
直接把主节点服务断开,10001日志文件和10002日志,则会打印,连不上10001问题。 10002节点日志文件:
10003节点日志文件:

通过控制台发现:

6.测试几种情况,目前剩下10002(主)和10003(副),宕掉主,副会有啥变化
继续宕掉10002,看看10003有啥变化?

集群中因为投票数不大于总数一半,所以10003是不会升级为主服务器的。另一种测试,我们把10003起来后,目前是10002是主服务器,我们现在宕掉10003副节点,看效果:


7.副本集同步原理:如何保持主从节点数据一致性:
上篇博客提到主从复制中,主节点记录在local数据库,来保持同步性。副本集其实也是类似的,主节点操作数据库状态的日志,记录在local.oplog.rs集合中,这样,备份节点通过读取日志,在自己数据库完完全全执行一遍。【不记录查询哈,同上篇】 local数据中集合中local.system.replset中没有任何配置信息,是记录节点初始化
local.oplog.rs集合记录主节点操作数据库状态日志:

8.总结
从上文测试可以看出,副本集和主从复制的区别副本集特性:1.没有固定的master主节点。2.故障自动恢复,继续工作。没有固定的主节点,是因为一个主节点宕掉,集群中会elect投票,从副节点secondary中选举一个,升级为主节点。总体而言,副本集就是具有故障自动恢复的主从复制。其实主从复制,目前官网也也不怎么提倡,因为主从复制只能起到备份作用,没有达到自动恢复效果。 ps:主节点其实就是活跃点,副节点、从节点就是备份节点。
熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

小米15系列預計10月正式發布,其全系列代號已在外媒MiCode程式碼庫曝光。其中,旗艦級小米15Ultra代號為"Xuanyuan"(意為"軒轅"),此名源自中國神話中的黃帝,象徵尊貴。小米15的代號為"Dada",而小米15Pro則以"Haotian"(意為"昊天")為名。小米15SPro內部代號為"dijun",暗指《山海經》創世神帝俊。小米15Ultra系列涵蓋

自去年华为Mate60系列开售以来,我个人就一直将Mate60Pro作为主力机使用。在将近一年的时间里,华为Mate60Pro经过多次OTA升级,综合体验有了显著提升,给人一种常用常新的感觉。比如近期,华为Mate60系列就再度迎来了影像功能的重磅升级。首先是新增AI消除功能,可以智能消除路人、杂物并对空白部分进行自动补充;其次是主摄色准、长焦清晰度均有明显升级。考虑到现在是开学季,华为Mate60系列还推出了秋日礼遇活动:购机可享至高800元优惠,入手价低至4999元。常用常新的产品力加上超值

本文介紹如何在Debian系統上配置MongoDB實現自動擴容,主要步驟包括MongoDB副本集的設置和磁盤空間監控。一、MongoDB安裝首先,確保已在Debian系統上安裝MongoDB。使用以下命令安裝:sudoaptupdatesudoaptinstall-ymongodb-org二、配置MongoDB副本集MongoDB副本集確保高可用性和數據冗餘,是實現自動擴容的基礎。啟動MongoDB服務:sudosystemctlstartmongodsudosys

本文介紹如何在Debian系統上構建高可用性的MongoDB數據庫。我們將探討多種方法,確保數據安全和服務持續運行。關鍵策略:副本集(ReplicaSet):利用副本集實現數據冗餘和自動故障轉移。當主節點出現故障時,副本集會自動選舉新的主節點,保證服務的持續可用性。數據備份與恢復:定期使用mongodump命令進行數據庫備份,並製定有效的恢復策略,以應對數據丟失風險。監控與報警:部署監控工具(如Prometheus、Grafana)實時監控MongoDB的運行狀態,並

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

CentOS系統下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統上實施MongoDB備份的多種策略,以確保數據安全和業務連續性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數據庫名稱-o/備份目錄此命令會將指定數據庫的數據及元數據導出到指定的備份目錄。

PiNetwork即將推出革命性移動銀行平台PiBank! PiNetwork今日發布重大更新Elmahrosa(Face)PIMISRBank,簡稱PiBank,它將傳統銀行服務與PiNetwork加密貨幣功能完美融合,實現法幣與加密貨幣的原子交換(支持美元、歐元、印尼盾等法幣與PiCoin、USDT、USDC等加密貨幣的互換)。究竟PiBank有何魅力?讓我們一探究竟! PiBank主要功能:一站式管理銀行賬戶和加密貨幣資產。支持實時交易,並採用生物特
