您好,登錄后才能下訂單哦!
mongodb中怎么實現主從復制,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
環境說明:
系統:CentOS6.4_x64
主(Master):192.168.2.2
從(Slave):192.168.2.3
一、安裝與基礎配置
#cd /usr/local
#tar -zxvf mongodb-linux-x86_64-2.2.6.tgz
#mv mongodb-linux-x86_64-2.2.6.tgz mongodb
mongodb配置文件在 /usr/local/mongodb/conf
主從數據庫目錄都在 /usr/local/mongodb/data
日志目錄都在 /usr/local/mongodb/logs
#mkdir -p /usr/local/mongodb/conf
#mkdir -p /usr/local/mongodb/data
#mkdir -p /usr/local/mongodb/logs
二、一主一從配置
關鍵點:
1)、在數據庫集群中要明確的知道誰是主服務器,主服務器只有一臺。
2)、從服務器需要知道自己的數據源,也就是對于自己來說主服務器是誰。
3)、master用來確定主服務器,slave來控制從服務器, source確定從服務的數據源。
192.168.2.2 主
conf下新建一文件mongodb.conf
添加如下:
port=27017
fork=true
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data
maxConns=1024
master=true
oplogSize=2048
192.168.2.3 從
port=27017
fork=true
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data
maxConns=1024
slave=true
source=192.168.2.2:27017
autoresync=true
三、啟動MONGODB
[root@localhost ~]# echo "PATH=$PATH:/usr/local/mongodb/bin" >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mongod -f /usr/local/mongodb/conf/mongod.conf
先啟主再啟從
觀察一下主的日志mongodb.log
可以看到主數據庫允許192.168.2.3從59172進行連接
四、測試主從復制
主:192.168.2.2
創建一個數據庫test,集合名也是test,插入一個字段AGE:18。然后再到從數據庫執行show dbs;查看已經同步過去。
[root@localhost conf]# mongo
MongoDB shell version: 2.2.6
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> show dbs;
local4.013671875GB
> use test;
switched to db test
> db.test.save({"AGE":18})
> db.test.find()
{ "_id" : ObjectId("534f592ce7b706845c58740b"), "AGE" : 18 }
> show dbs
local4.013671875GB
test0.203125GB
從:192.168.2.3
[root@localhost conf]# mongo
MongoDB shell version: 2.2.6
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> show dbs
local4.013671875GB
test0.203125GB
并查看從庫上的日志,可以看到同步的行為
五、思考與補充:
1、如何指定要同步的庫
默認是同步所有的庫,如果需要指定只同步某個庫,可以在從庫的配置文件中進行指定
方法:only=test
意思就是只同步TEST庫
2、從庫上還可設置的其他參數
slavedelay 從節點設置主數據庫同步數據的延遲(單位是秒)
fastsync 從節點以主數據庫的節點快照為節點啟動從數據庫
autoresync 如果不同步則自動從新同步數據庫
3、從服務器上查看同步狀態
>db.printReplicationInfo()
this is a slave, printing slave replication info.
source: 192.168.2.2:27017
syncedTo: Thu Apr 17 2014 01:38:02 GMT-0700 (PDT)
= 10 secs ago (0.04hrs)
4、備份與恢復
任何數據庫都需要備份與恢復,這個你懂的。
備份:
>mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服務器地址,例如:192.168.2.2,當然也可以指定端口號:192.168.2.2:27017
-d:需要備份的數據庫實例,例如:test
-o:備份的數據存放位置,例如:/data/dump,當然該目錄需要提前建立,在備份完成后,系統自動在dump目錄下建立一個test目錄,這個目錄里面存放該數據庫實例的備份數據。
恢復:
>mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:MongoDB所在服務器地址
-d:需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2
--directoryperdb:備份數據所在位置,例如:/data/dump/test,這里為什么要多加一個test,而不是備份時候的dump,自己查看提示吧!
--drop:恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,謹慎使用!
5、監控
可以使用mongodb自帶28017端口進行圖形化監控
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。