詳解mongoDB主從復制搭建詳細過程
實驗目的搭建mongoDB主從復制
1
2
|
主 192.168.0.4 從 192.168.0.7 |
mongodb的安裝
1: 下載mongodb www.mongodb.org 下載最新的stable版
查看自己服務器 適合哪個種方式下載(wget 不可以的 可以用下面方式下載)
1
2
3
|
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.5.tgz curl -O -L https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.5.tgz |
2: 解壓文件 不用編譯,本身就是編譯后的二進制可執行文件.
1
2
3
4
5
|
tar zxvf mongodb-linux-x86_64-rhel62-3.0.5.tgz #解壓 mv mongodb-linux-x86_64-rhel62-3.0.5 /usr/local/mongodb #更改文件夾名字 cd /usr/local/mongodb/bin |
創建兩個文件夾 存數據和日志
1
|
mkdir -p /home/map/mongodb/mongo /home/map/mongodb/mlog/ |
mongodb的bin下各工具的用途:
- mongod:數據庫服務端,類似mysqld,每個實例啟動一個進程,可以fork為Daemon運行
- mongo:客戶端命令行工具,類似sqlplus/mysql,其實也是一個js解釋器,支持js語法
- mongodump/mongorestore:將數據導入為bson格式的文件/將bson文件恢復為數據庫,類似xtracbackup
- mongoexport/mongoimport:將collection導出為json/csv格式數據/將數據導入數據庫,類似- - - mysqldump/mysqlimport
- bsondump:將bson格式的文件轉儲為json格式的數據
- mongos:分片路由,如果使用了sharding功能,則應用程序連接的是mongos而不是mongod
- mongofiles:GridFS管理工具 mongostat:實時監控工具
主從服務器配置
1
|
vim mongod.conf |
主配置如下
1
2
3
4
5
6
7
|
port=27018 #指定端口 fork=true #后臺運行 dbpath=/home/map/mongodb/mongo #規定數據庫的位置 logpath=/home/map/mongodb/mlog/mongodb.log #規定數據庫的日志文件 master=true #設置主 # bind_ip=127.0.0.1,192.168.0.4 #允許的地址 為了安全 nohttpinterface=true #禁止http訪問 |
執行下面步驟
1
2
|
./mongod -f ./mongod.conf #啟動數據庫 ./mongo #進入數據庫 |
上面都同理 從服務器配置
1
2
3
4
5
6
7
8
|
port=27018 #指定端口 fork= true #后臺運行 dbpath=/home/map/mongodb/mongo #規定數據庫的位置 logpath=/home/map/mongodb/mlog/mongodb.log #規定數據庫的日志文件 slave= true #聲明從 source=192.168.0.4:27018 #規定從屬于哪個ip 注意:ip是主服務器的 最好用內網ip # bind_ip=127.0.0.1,192.168.0.4 #允許的地址 為了安全 nohttpinterface= true #禁止http訪問 |
執行下面步驟
1
2
|
./mongod -f ./mongod.conf #啟動數據庫 ./mongo #進入數據庫 |
測試 主執行
1
2
3
|
use word db.wsd.save({ name :”wangshudong”}) db.wsd.find() |
在從服務器執行
1
2
3
4
5
6
7
8
9
10
11
|
rs.slaveOk(); show dbs; local 0.078GB word 0.078GB #如果出現主的數據 說明同步成功 use word db.wsd. find () #查到數據說明同步成功 { “_id” : ObjectId(“55cc43470278a3d7b1c6f2c0″), “name” : “wangshudong” } |
為了安全最后注意從禁止遠程連接
1
2
|
iptables -I INPUT -s 192.168.0.4 -p tcp --dport 27018 -j ACCEPT #接受來自192.168.0.4內網的ip訪問 iptables -A INPUT -i eth0 -p tcp --dport 27018 -j DROP #拒絕所有來自27018的端口 |
如有疑問,請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:https://my.oschina.net/jiangshanlinux/blog/1507137