mongodb (2)數(shù)據(jù)庫副本集

副本集

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

  • 保障數(shù)據(jù)的安全性
  • 數(shù)據(jù)高可用性 (24*7)
  • 災難恢復
  • 無需停機維護(如備份厘贼,重建索引,壓縮)
  • 分布式讀取數(shù)據(jù)

原理

mongodb的復制至少需要兩個節(jié)點纠屋。其中一個是主節(jié)點涂臣,負責處理客戶端請求,其余的都是從節(jié)點售担,負責復制主節(jié)點上的數(shù)據(jù)赁遗。
mongodb各個節(jié)點常見的搭配方式為:一主一從、一主多從族铆。
主節(jié)點記錄在其上的所有操作oplog岩四,從節(jié)點定期輪詢主節(jié)點獲取這些操作,然后對自己的數(shù)據(jù)副本執(zhí)行這些操作哥攘,從而保證從節(jié)點的數(shù)據(jù)與主節(jié)點一致剖煌。

image.png

客戶端從主節(jié)點讀取數(shù)據(jù)材鹦,在客戶端寫入數(shù)據(jù)到主節(jié)點時, 主節(jié)點與從節(jié)點進行數(shù)據(jù)交互保障數(shù)據(jù)的一致性耕姊。

特征

  • N 個節(jié)點的集群
  • 任何節(jié)點可作為主節(jié)點
  • 所有寫入操作都在主節(jié)點上
  • 自動故障轉移
  • 自動恢復

實驗

首先關閉服務器上所有的mongodb服務
然后建立三個文件夾 /data/db1 /data/db2 /data/db3
然后使用命令

mongod --port 27017 --dbpath "/data/db1" --replSet rs0

Mongodb同時還提供了一種后臺Daemon方式啟動桶唐,只需要加上一個"--fork"參數(shù)即可,值得注意的是茉兰,用到了"--fork"參數(shù)就必須啟用"--logpath"參數(shù)尤泽。如下所示:
mongod --port 27017 --dbpath=data/db --fork --logpath=log/mongodb.log
啟動一個實例,接著打開另外兩個從節(jié)點服務

mongod --port 27018 --dbpath "/data/db2"  --fork --logpath=log/2.log --replSet rs0
mongod --port 27019 --dbpath "/data/db3" --fork --logpath=log/3.log --replSet rs0

接著规脸,我們進入第一個服務器坯约,進行副本集設置
(<hostname> 代表自己的ip地址)

#連接數(shù)據(jù)庫
> mongo <hostname> 27017
#初始化rs
> rs.initiate({
_id: "rs0",
           members: [
                      {
                       _id: 0,
                       host: "<hostname>:27017"
                      }
                    ]
         }
})
#查看rs的狀態(tài)
>rs.status()    

此時,我們可以看見莫鸭,rs中已經(jīng)有一臺自己的服務器了


image.png

接著我們來添加兩個從服務器

rs.add('<hostname>:27018')
rs.add('<hostname>:27019')

至此闹丐,我們已經(jīng)添加成功了,成功組成了一個主復制集被因,兩個從復制集的操作卿拴,復制集的主從是有服務器自動推選出來的,如果主服務器DOWN掉梨与,馬上其他從服務器替換為主服務器巍棱。

仲裁者

副本集要求參與選舉投票(vote)的節(jié)點數(shù)為奇數(shù),當我們實際環(huán)境中因為機器等原因限制只有兩個(或偶數(shù))的節(jié)點蛋欣,這時為了實現(xiàn) Automatic Failover引入另一類節(jié)點:仲裁者(arbiter)航徙,仲裁者只參與投票不擁有實際的數(shù)據(jù),并且不提供任何服務陷虎,因此它對物理資源要求不嚴格到踏。

rs.addArb("192.168.158.132:27017")  

遇到的問題

  1. 權限問題
    當使用非root用戶時,一定要注意權限問題尚猿,否則很多命令都會出錯窝稿,像 mongod 等
  2. ip地址問題
    一定要注意 Ip地址問題,你在rs.conf()中做的修改會影響到整個應用凿掂,如果你在本機上使用了127.0.0.1 (當然伴榔,他不會讓你這么干),那么當你的mongo 服務和應用服務不在同一個服務器庄萎,就對導致報錯踪少。碰到一個奇葩問題是,當在服務器上使用 rs.initiate() 時糠涛,不加參數(shù)援奢,他默認就會把當前庫加到配置里,但是服務器的name會變成坑爹的計算機名稱(hostname):端口忍捡,導致應用無法識別集漾。所以最好是使用 本機ip地址切黔,如192.168.1.3,而不要使用local localhost 127...* 等

參考 http://blog.chinaunix.net/uid-15795819-id-3075083.html

其他要注意的

  1. 所有的Secondary都宕機、或則副本集中只剩下一個節(jié)點具篇,則該節(jié)點只能為Secondary節(jié)點纬霞,官方推薦的最小的副本集也應該具備一個primary節(jié)點和兩個secondary節(jié)點。兩個節(jié)點的副本集不具備真正的故障轉移能力驱显。
  2. 投票節(jié)點最多只能有7個

要注意的是险领,這個命令只允許在本地,或是一個經(jīng)過認證的客戶端秒紧。

引用

http://www.cnblogs.com/zhoujinyi/p/3554010.html
http://blog.csdn.net/yabingshi_tech/article/details/47044711
http://www.runoob.com/mongodb/mongodb-replication.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挨下,隨后出現(xiàn)的幾起案子熔恢,更是在濱河造成了極大的恐慌,老刑警劉巖臭笆,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叙淌,死亡現(xiàn)場離奇詭異,居然都是意外死亡愁铺,警方通過查閱死者的電腦和手機鹰霍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茵乱,“玉大人茂洒,你說我怎么就攤上這事∑拷撸” “怎么了督勺?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤贰。 經(jīng)常有香客問我智哀,道長,這世上最難降的妖魔是什么荧恍? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任瓷叫,我火速辦了婚禮,結果婚禮上送巡,老公的妹妹穿的比我還像新娘摹菠。我一直安慰自己,他們只是感情好骗爆,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布辨嗽。 她就那樣靜靜地躺著,像睡著了一般淮腾。 火紅的嫁衣襯著肌膚如雪糟需。 梳的紋絲不亂的頭發(fā)上屉佳,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音洲押,去河邊找鬼武花。 笑死,一個胖子當著我的面吹牛杈帐,可吹牛的內容都是我干的体箕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼挑童,長吁一口氣:“原來是場噩夢啊……” “哼累铅!你這毒婦竟也來了?” 一聲冷哼從身側響起站叼,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤娃兽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尽楔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體投储,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年阔馋,在試婚紗的時候發(fā)現(xiàn)自己被綠了玛荞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡呕寝,死狀恐怖勋眯,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情下梢,我是刑警寧澤凡恍,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站怔球,受9級特大地震影響嚼酝,放射性物質發(fā)生泄漏。R本人自食惡果不足惜竟坛,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一闽巩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧担汤,春花似錦涎跨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至率碾,卻和暖如春叔营,著一層夾襖步出監(jiān)牢的瞬間屋彪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工绒尊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留畜挥,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓婴谱,卻偏偏與公主長得像蟹但,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谭羔,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容