MongoDB是一個開源的non-SQL數據庫引擎。 MongoDB是可擴展的,是標准關系數據庫管理系統(RDBMS)的替代品。 副本集可以使在節點發生故障時還能提供對您的數據的訪問。
安裝MongoDB
1.確保在副本集的每個成員設置好hostname
nano /etc/hostname
/etc/hostname:
europa
2.創建一個文件以保存MongoDB存儲庫的配置信息:
sudo touch /etc/yum.repos.d/mongodb.repo
3.如果運行的是64位系統,請使用以下配置:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
對於32位系統,請使用以下配置:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1
4.使用如下命令安裝MongoDB:
sudo yum install mongo-10gen-server
配置網絡
請正確配置網絡,否則將無法向副本集添加成員。 本節將詳細介紹如何將三(3)個服務器配置為MongoDB副本集。
設置hosts文件
/etc/hosts
192.168.160.1 mongo1
192.168.170.1 mongo2
192.168.180.1 mongo3
使用您自己的IP地址代替上述示例中的地址。 副本集中的成員名稱也可以根據你的需要設置名稱。
編輯Mongo Conf文件
1.編輯mongod.conf文件以添加IP地址和端口號。
/etc/mongod.conf:
# fork and run in background fork = true bind_ip = 192.168.135.24 port = 27017
輸入您在bind ip中服務器的私有IP地址。 如果bind_ip不存在,則需要添加它。 保留默認端口號27017,並取消注釋行fork = true。
2.仍然在mongodb.conf文件中滾動到底部並添加副本集信息:
/etc/mongod.conf:
replSet = rs1
在此示例中,副本集為rs1,但是,您可以根據選擇更改名稱。
副本集
副本集將允許您的數據“復制”或傳播到集合中的所有其他節點。 它在系統故障的情況下提供冗余。 建議副本集節點個數為奇數,因為這會使選舉更容易。
選舉是選擇哪個節點成為主節點。 選舉在副本集初始化之後和主節點不可用時發生。 主節點是唯一可以接受寫操作的節點。 如果主節點不可用,則進行選舉選出新的主節點。 選舉操作自動進行,無需人工干預。
創建副本集
mongod.conf文件在安裝過程中就創建好了。 需要用這個配置文件在副本集的每個節點上啟動守護程序。
1.命令如下:
mongod --config /etc/mongod.conf
守護程序啟動後,輸出如下。
[user@europa mongo]# mongod –config /etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 20955
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting
2.僅在副本集的一個節點上啟動MongoDB客戶端:
mongo --host <mongo0>
3.在MongoDB提示符下,使用命令切換到admin:
use admin
您應該看到消息switched to db admin.
4.運行rs.initiate()命令,該命令將在當前節點中創建副本集。 輸出應類似於以下內容:
> rs.initiate() { “info2” : “no configuration explicitly specified — making one”, “me” : “192.168.160.1:27017”, “info” : “Config now saved locally. Should come online in about a minute.”, “ok” : 1
5.要查看當前配置,運行命令:
rs.conf()
輸出應類似於以下內容:
rs.conf() { "_id" : "rs1", "version" : 8, "members" : [ { "_id" : 0, "host" : "192.168.160.1:27017" } ] }
6.要將成員添加到副本集,請使用命令:
rs.add("mongo1:27017")
輸出:
rs1:PRIMARY> rs.add(“mongo2:27017”)
{ “ok” : 1 }
7.要驗證節點是否已正確添加,請再次運行rs.conf()命令。 輸出應類似於以下內容:
rs1:PRIMARY> rs.conf() { “_id” : “rs0”, “version” : 8, “members” : [ { “_id” : 0, “host” : “192.168.160.1:27017” }, { “_id” : 1, “host” : “mongo1:27017” }, { “_id” : 2, “host” : “mongo2:27017” } ] }
驗證副本集
驗證副本集是否正常並且節點都進行正常通信的最佳方法是創建新的測試數據庫。 默認情況下,當您連接到MongoDB時,將使用現有的測試數據庫。 為了保存新數據庫,需要添加數據。 創建和插入數據的過程如下:
1.創建數據庫
use <products>
用您喜歡的任何名稱替換變量products。
2.添加數據
db.products.insert( {item: "paint", qty: 10 } )
如果您不在副本集的主節點上,您將收到消息not master。 切換到主節點並再次運行命令。 現在使用命令:
show dbs
顯示數據庫列表。 您的新應該出現在列表中。 連接到副本集的其他節點,查看新創建的數據庫是否已復制過去。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。