MongoDB 已經成為市面上最知名的 NoSQL 數據庫。MongoDB 是面向文檔的,它的無模式設計使得它在各種各樣的WEB 應用當中廣受歡迎。
MongoDB 已經成為市面上最知名的 NoSQL 數據庫。MongoDB 是面向文檔的,它的無模式設計使得它在各種各樣的WEB 應用當中廣受歡迎。最讓我喜歡的特性之一是它的副本集(Replica Set),副本集將同一數據的多份拷貝放在一組 mongod 節點上,從而實現數據的冗余以及高可用性。
這篇教程將向你介紹如何配置一個 MongoDB 副本集。
副本集的最常見配置需要一個主節點以及多個副節點。這之后啟動的復制行為會從這個主節點到其他副節點。副本集不止可以針對意外的硬件故障和停機事件對數據庫提供保護,同時也因為提供了更多的節點從而提高了數據庫客戶端數據讀取的吞吐量。
配置環境這個教程里,我們會配置一個包括一個主節點以及兩個副節點的副本集。
為了達到這個目的,我們使用了3個運行在 VirtualBox 上的虛擬機。我會在這些虛擬機上安裝 Ubuntu 14.04,并且安裝 MongoDB 官方包。
我會在一個虛擬機實例上配置好所需的環境,然后將它克隆到其他的虛擬機實例上。因此,選擇一個名為 master 的虛擬機,執行以下安裝過程。
首先,,我們需要給 apt 增加一個 MongoDB 密鑰:
然后,將官方的 MongoDB 倉庫添加到 source.list 中:
接下來更新 apt 倉庫并且安裝 MongoDB。
現在對 /etc/mongodb.conf 做一些更改
第一行的作用是表明我們的數據庫需要驗證才可以使用。keyfile 配置用于 MongoDB 節點間復制行為的密鑰文件。replSet 為副本集設置一個名稱。
接下來我們創建一個用于所有實例的密鑰文件。
這將會創建一個含有 MD5 字符串的密鑰文件,但是由于其中包含了一些噪音,我們需要對他們清理后才能正式在 MongoDB 中使用。
grep 命令的作用的是把將空格等我們不想要的內容過濾掉之后的 MD5 字符串打印出來。
現在我們對密鑰文件進行一些操作,讓它真正可用。
接下來,關閉此虛擬機。將其 Ubuntu 系統克隆到其他虛擬機上。
這是克隆后的副節點1和副節點2。確認你已經將它們的MAC地址重新初始化,并且克隆整個硬盤。
請注意,三個虛擬機示例需要在同一個網絡中以便相互通訊。因此,我們需要它們弄到“互聯網"上去。
這里推薦給每個虛擬機設置一個靜態 IP 地址,而不是使用 DHCP。這樣它們就不至于在 DHCP 分配IP地址給他們的時候失去連接。
像下面這樣編輯每個虛擬機的 /etc/networks/interfaces 文件。
在主節點上:
在副節點1上:
在副節點2上:
由于我們沒有 DNS 服務,所以需要設置設置一下 /etc/hosts 這個文件,手工將主機名稱放到此文件中。
在主節點上:
在副節點1上:
在副節點2上:
使用 ping 命令檢查各個節點之間的連接。
配置副本集驗證各個節點可以正常連通后,我們就可以新建一個管理員用戶,用于之后的副本集操作。
在主節點上,打開 /etc/mongodb.conf 文件,將 auth 和 replSet 兩項注釋掉。
在一個新安裝的 MongoDB 上配置任何用戶或副本集之前,你需要注釋掉 auth 行。默認情況下,MongoDB 并沒有創建任何用戶。而如果在你創建用戶前啟用了 auth,你就不能夠做任何事情。你可以在創建一個用戶后再次啟用 auth。
修改 /etc/mongodb.conf 之后,重啟 mongod 進程。
現在連接到 MongoDB master:
連接 MongoDB 后,新建管理員用戶。
重啟 MongoDB:
再次連接到 MongoDB,用以下命令將 副節點1 和副節點2節點添加到我們的副本集中。
現在副本集到手了,可以開始我們的項目了。參照 官方驅動文檔 來了解如何連接到副本集。如果你想要用 Shell 來請求數據,那么你需要連接到主節點上來插入或者請求數據,副節點不行。如果你執意要嘗試用副本集操作,那么以下錯誤信息就蹦出來招呼你了。
如果你要從 shell 連接到整個副本集,你可以安裝如下命令。在副本集中的失敗切換是自動的。
如果你使用其它驅動語言(例如,JavaScript、Ruby 等等),格式也許不同。
希望這篇教程能對你有所幫助。你可以使用Vagrant來自動完成你的本地環境配置,并且加速你的代碼。
MongoDB 3.0 正式版發布下載
CentOS編譯安裝MongoDB
CentOS 編譯安裝 MongoDB與mongoDB的php擴展
CentOS 6 使用 yum 安裝MongoDB及服務器端配置
Ubuntu 13.04下安裝MongoDB2.4.3
MongoDB入門必讀(概念與實戰并重)
Ubunu 14.04下MongoDB的安裝指南
《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
Nagios監控MongoDB分片集群服務實戰
基于CentOS 6.5操作系統搭建MongoDB服務
MongoDB 的詳細介紹:請點這里
MongoDB 的下載地址:請點這里
via: How to set up a Replica Set on MongoDB
作者:Christopher Valerio 譯者:mr-ping 校對:wxy
本文由 LCTT 原創翻譯,Linux中國 榮譽推出
本文永久更新鏈接地址:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com