一个是以主模式启动,另一个属于从模式启动。
1.主从结构配置
主服务器:192.168.110.71
备服务器:192.168.100.90
2.安装mongodb
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.8.tgz
tar -zxvf mongodb-linux-x86_64-2.6.8.tgz
mv mongodb-linux-x86_64-2.6.8 mongodb-2.6.8
cd mongodb-2.6.8/
mkdir data
mkdir logs
mkdir conf
两台机器相同。
master=true
fork=true
bind_ip=192.168.110.71
port=10111
dbpath=/home/slim/mongodb-2.6.8/data/
logpath=/home/slim/mongodb-2.6.8/logs/master.log
pidfilepath=/home/slim/mongodb-2.6.8/data/master.pid
logappend=true
oplogSize=10000
备服务器:conf/mongodb.conf
slave=true
fork=true
source=192.168.110.71:10111
bind_ip=192.168.100.90
port=10111
dbpath=/home/slim/mongodb-2.6.8/data/
logpath=/home/slim/mongodb-2.6.8/logs/master.log
pidfilepath=/home/slim/mongodb-2.6.8/data/master.pid
logappend=true
oplogSize=10000
slavedelay=5
4.启动服务
5.测试服务
在主节点使用客户端命令mongo登录,添加数据
./bin/mongo -host 192.168.110.71 -port 10111
> use testuse test
switched to db test
> db.user.insert({_id:1,name:'samlee',age:80});db.user.insert({_id:1,name:'samlee',age:80});
WriteResult({ "nInserted" : 1 })
> db.user.find();db.user.find();
{ "_id" : 1, "name" : "samlee", "age" : 80 }
登录从节点:
./bin/mongo -host 192.168.100.90 -port 10111
> use testuse test
switched to db test
> db.user.find();db.user.find();
{ "_id" : 1, "name" : "samlee", "age" : 80 }
可以看到数据已经同步。
> db.user.insert({_id:2,name:'Jack',age:23});
WriteResult({ "writeError" : { "code" : undefined, "errmsg" : "not master" } })
提示 not master ,所以 slave 服务器只可以执行读操作,不可以执行写操作。
6.相关配置参数
Master
--master master 模式
--oplogSize arg size limit (in MB) for op log
Slave
--slave slave 模式
--source arg source 指定 master 位置
--only arg 单独指定备份某一 database
--slavedelay arg 指定与 Master 延迟时间(秒)
--autoresync 当 Slave 数据过时后自动重连
7.Slave 顶替 Master
1)停止B 进程(mongod)
2)删除B 数据目录中的 local.*
3)以--master 模式启动 B
8.切换 Master/Slave 角色
9.更新主服务器位置
假设现有从机启动方式如下:
$ mongod --slave --source 192.168.110.71:10111
此时如果想更换主机的位置,可以通过以下的步骤来完成:
重启 mongod 服务,不要加-slave 和 –source 选项:
$ mongod
启动 shell,执行如下操作:
> use local
switched to db local
> db.sources.update({host : "192.168.110.71:10111"},{$set : {host : "192.168.110.100:10111"}})
接着重启从机上的服务:
$ ./mongod --slave --source 192.168.110.100:10111
$ # or
$ ./mongod --slave