mongodb master slave设置主从

 

1.命令行

./mongod --master --config "主库配置"

./mongod --slave --source <:> --config "从库配置"

注:可以在启动从时加以下常用参数

–slavedelay 10 #延时复制 单位为秒

–autoresync #自动重新同步

–only #复制指定的数据库,默认复制所有的库

–oplogSize #主节点的oplog日志大小,单位为M,建议设大点(更改oplog大小时,只需停主库,删除local.*,然后加–oplogSize=* 重新启动即可,*代表大小)

如果发现主从不同步,从上手动同步

db.runCommand ( { "resync": 1 } )

状态查询

db.runCommand ( { "isMaster": 1 } )   #主还是从

在从库上查询主库地址

use local

db.sources.find()

查看各Collection状态

db.printCollectionStats ( );

查看主从复制状态

db.printReplicationInfo ( );

添加及删除源:

启动从节点时可以用–source指定主节点,也可以在shell中配置这个源

use  local 

db.sources.insert ( { "host":  "10.0.0.11:27001" } );

更改源

db.sources.insert ( { "host":  "10.0.0.12:27001" } ); 

db.sources.remove ( { "host":  "10.0.0.11:27001" } );

若复制中使用了认证,需在local库中添加repl用户来复制

user  local; 

db.addUser ( "repl",  "elain123" );

如果主服务器 10.0.0.11 宕机了,

此时需要用 10.0.0.12 机器来顶替 master 服务,

步骤如下:

#停止从库进程(mongod)

#删除从库数据目录中的 local.*

#以–master 模式启动从库

切换 Master/Slave 角色

切换主库10.0.0.11和从库10.0.0.12的角色

步骤如下:(命令略)

用 fsync 命令暂停 主库 上的写操作,

关闭 从库 上的服务

清空 从库 上的 local.*文件

用-master 选项重启 从库 服务

在 从库 上执行一次写操作,初始化 oplog,获得一个同步起始点

关闭 从库 服务,此时 从库 已经有了新的 local.*文件

关闭 主库 服务,并且用 从库 上新的 local.*文件来代替 主库 上的 local.*文件(建议先压缩再COPY)

用-master 选项重启 从库 服务

在启动slave的选项上加一个-fastsync 选项来重启 主库 服务

你可能感兴趣的:(mongodb)