一: Master 启动配置( 这里可以使用一个配置文件)
[root@dominic4 bin]# ./mongod --dbpath /data/db --logpath /data/log/log.log --master --oplogSize 64 --port 20000 --fork
--master:以master模式启动数据库。
--oplogSize:指定master上用于存放更改的数据量,如果不指定,在32位机上最少为50M,在64位机上最少为 1G,最大为磁盘空间的5%。
二:
Slave机器上启动数据库:
[root@dominic5 bin]# ./mongod --slave --source 192.168.3.24:20000 --dbpath /data/db --logpath /data/log/log.log --port 20000 -slavedelay 5 --autoresync --fork
--slave:以从服务器方式启动
--autoresync:自动重新sync,因为该操作会copy 主服务器上的所有document,比较耗时,在10分钟内最多只会进行一次。
--source:主服务器地址
--only:仅限于同步指定数据库(下面示例为test库)
--slavedelay:同步延时,复制检测的间隔
三:测试是否同步
[root@dominic4 bin]# ./mongo 192.168.3.24:20000 -- --master
MongoDB shell version: 2.4.10
connecting to: 192.168.3.24:20000/test
> show dbs
local 0.203125GB
> use test
switched to db test
> db.col.save({a:'another',b:'yst'})
> db.col.find()
{ "_id" : ObjectId("53bfb49780f77a93eb763cd8"), "a" : "another", "b" : "yst" }
[root@dominic5 bin]# ./mongo 192.168.3.25:20000 -----slave
MongoDB shell version: 2.4.10
connecting to: 192.168.3.25:20000/test
> show dbs
local 0.078125GB
> use test
switched to db test
> db.col.save({a:'bu',b:'yst2'})
not master
> db.col.find()
{ "_id" : ObjectId("53bfb49780f77a93eb763cd8"), "a" : "another", "b" : "yst" }
四:
再来看看用安全认证模式启动Master和Slave的情况:
附录一、Slave 顶替 Master
如果主服务器 10.0.0.11 宕机了,
此时需要用 10.0.0.12 机器来顶替 master 服务,
步骤如下:
#停止 10.0.0.12 进程(mongod)
1. kill -2 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'`
#删除 10.0.0.12 数据目录中的 local.*
1. rm -rf /elain/data/mongodb/db/local.*
#以--master 模式启动 10.0.0.12
1. /elain/apps/mongodb/bin/mongod --fork --master --oplogSize=4096 --port 27001 --dbpath /elain/data/mongodb/db --logpath /elain/logs/mongodb/mongodb.log
附录二、切换 Master/Slave 角色
切换主库192.168.3.24 和从库192.168.3.25 的角色
1: 用 fsync 命令暂停 主库 上的写操作,
> db.fsyncLock(){ "info" : "now locked against writes, use db.fsyncUnlock() to unlock", "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand", "ok" : 1} ---最好不要操作,主备都是一样,否然屏幕卡死,只能通过结束mongod 进程,重新登陆
2: 关闭 从库 上的服务 ps -ef |grep mongod
清空 从库 上的 local.*文件cd /data/dbrm local.*
3 :用-master 选项重启 从库 服务 ./mongod --dbpath /data/db --logpath /data/log/log.log --master --oplogSize 64 --port 20000 --fork
在 从库 上执行一次写操作,初始化 oplog,获得一个同步起始点use testdb.dominic.insert({"dddd":"dddd"})
关闭 从库 服务,此时 从库 已经有了新的 local.*文件
4 :关闭 主库 服务,并且用 从库 上新的 local.*文件来代替 主库 上的 local.*文件(建议先压缩再COPY)
5 :用-master 选项重启 从库 服务
在启动slave的选项上加一个-fastsync 选项来重启 主库 服务(或者 --autoresync)也可
#查看主从同步信息:
#在丛库上查询主库地址