MongoDB是一個(gè)開源的non-SQL數(shù)據(jù)庫(kù)引擎。 MongoDB是可擴(kuò)展的,是標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的替代品。 副本集可以使在節(jié)點(diǎn)發(fā)生故障時(shí)還能提供對(duì)您的數(shù)據(jù)的訪問(wèn)。
安裝MongoDB
1.確保在副本集的每個(gè)成員設(shè)置好hostname
nano /etc/hostname
/etc/hostname:
europa
2.創(chuàng)建一個(gè)文件以保存MongoDB存儲(chǔ)庫(kù)的配置信息:
sudo touch /etc/yum.repos.d/mongodb.repo
3.如果運(yùn)行的是64位系統(tǒng),請(qǐng)使用以下配置:
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
對(duì)于32位系統(tǒng),請(qǐng)使用以下配置:
[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
配置網(wǎng)絡(luò)
請(qǐng)正確配置網(wǎng)絡(luò),否則將無(wú)法向副本集添加成員。 本節(jié)將詳細(xì)介紹如何將三(3)個(gè)服務(wù)器配置為MongoDB副本集。
設(shè)置hosts文件
/etc/hosts
192.168.160.1 mongo1
192.168.170.1 mongo2
192.168.180.1 mongo3
使用您自己的IP地址代替上述示例中的地址。 副本集中的成員名稱也可以根據(jù)你的需要設(shè)置名稱。
編輯Mongo Conf文件
1.編輯mongod.conf文件以添加IP地址和端口號(hào)。
/etc/mongod.conf:
# fork and run in background
fork = true
bind_ip = 192.168.135.24
port = 27017
輸入您在bind ip中服務(wù)器的私有IP地址。 如果bind_ip不存在,則需要添加它。 保留默認(rèn)端口號(hào)27017,并取消注釋行fork = true。
2.仍然在mongodb.conf文件中滾動(dòng)到底部并添加副本集信息:
/etc/mongod.conf:
replSet = rs1
在此示例中,副本集為rs1,但是,您可以根據(jù)選擇更改名稱。
副本集
副本集將允許您的數(shù)據(jù)“復(fù)制”或傳播到集合中的所有其他節(jié)點(diǎn)。 它在系統(tǒng)故障的情況下提供冗余。 建議副本集節(jié)點(diǎn)個(gè)數(shù)為奇數(shù),因?yàn)檫@會(huì)使選舉更容易。
選舉是選擇哪個(gè)節(jié)點(diǎn)成為主節(jié)點(diǎn)。 選舉在副本集初始化之后和主節(jié)點(diǎn)不可用時(shí)發(fā)生。 主節(jié)點(diǎn)是唯一可以接受寫操作的節(jié)點(diǎn)。 如果主節(jié)點(diǎn)不可用,則進(jìn)行選舉選出新的主節(jié)點(diǎn)。 選舉操作自動(dòng)進(jìn)行,無(wú)需人工干預(yù)。
創(chuàng)建副本集
mongod.conf文件在安裝過(guò)程中就創(chuàng)建好了。 需要用這個(gè)配置文件在副本集的每個(gè)節(jié)點(diǎn)上啟動(dòng)守護(hù)程序。
1.命令如下:
mongod --config /etc/mongod.conf
守護(hù)程序啟動(dòng)后,輸出如下。
[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.僅在副本集的一個(gè)節(jié)點(diǎn)上啟動(dòng)MongoDB客戶端:
mongo --host mongo0>
3.在MongoDB提示符下,使用命令切換到admin:
use admin
您應(yīng)該看到消息switched to db admin.
4.運(yùn)行rs.initiate()命令,該命令將在當(dāng)前節(jié)點(diǎn)中創(chuàng)建副本集。 輸出應(yīng)類似于以下內(nèi)容:
> 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.要查看當(dāng)前配置,運(yùn)行命令:
rs.conf()
輸出應(yīng)類似于以下內(nèi)容:
rs.conf()
{
"_id" : "rs1",
"version" : 8,
"members" : [
{
"_id" : 0,
"host" : "192.168.160.1:27017"
}
]
}
6.要將成員添加到副本集,請(qǐng)使用命令:
rs.add("mongo1:27017")
輸出:
rs1:PRIMARY> rs.add(“mongo2:27017”)
{ “ok” : 1 }
7.要驗(yàn)證節(jié)點(diǎn)是否已正確添加,請(qǐng)?jiān)俅芜\(yùn)行rs.conf()命令。 輸出應(yīng)類似于以下內(nèi)容:
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”
}
]
}
驗(yàn)證副本集
驗(yàn)證副本集是否正常并且節(jié)點(diǎn)都進(jìn)行正常通信的最佳方法是創(chuàng)建新的測(cè)試數(shù)據(jù)庫(kù)。 默認(rèn)情況下,當(dāng)您連接到MongoDB時(shí),將使用現(xiàn)有的測(cè)試數(shù)據(jù)庫(kù)。 為了保存新數(shù)據(jù)庫(kù),需要添加數(shù)據(jù)。 創(chuàng)建和插入數(shù)據(jù)的過(guò)程如下:
1.創(chuàng)建數(shù)據(jù)庫(kù)
use products>
用您喜歡的任何名稱替換變量products。
2.添加數(shù)據(jù)
db.products.insert( {item: "paint", qty: 10 } )
如果您不在副本集的主節(jié)點(diǎn)上,您將收到消息not master。 切換到主節(jié)點(diǎn)并再次運(yùn)行命令。 現(xiàn)在使用命令:
show dbs
顯示數(shù)據(jù)庫(kù)列表。 您的新應(yīng)該出現(xiàn)在列表中。 連接到副本集的其他節(jié)點(diǎn),查看新創(chuàng)建的數(shù)據(jù)庫(kù)是否已復(fù)制過(guò)去。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- MongoDB的主從復(fù)制及副本集的replSet配置教程
- Mongodb 副本集搭建問(wèn)題總結(jié)及解決辦法
- Mongodb3.0.5 副本集搭建及spring和java連接副本集配置詳細(xì)介紹
- mongodb3.4集群搭建實(shí)戰(zhàn)之高可用的分片+副本集
- 詳解MongoDB中用sharding將副本集分配至服務(wù)器集群的方法
- Mongodb副本集和分片示例詳解
- MongoDB副本集丟失數(shù)據(jù)的測(cè)試實(shí)例教程
- MongoDB 復(fù)制(副本集)學(xué)習(xí)筆記
- mongodb 4.0副本集搭建的全過(guò)程