一、主从复制(master slave)
前提准备
1、在环境变量的path变量的最前面加入:E:\mongodb\bin;
2、创建主数据库的存储路径:E:\mongodb\master-slave\8888
3、创建从数据库的存储路径:E:\mongodb\master-slave\9999
主数据库的配置:
E:\mongodb\master-slave\8888.conf配置文件
dbpath =E:\mongodb\master-slave\8888 #主数据库存储地址 logpath=E:\mongodb\master-slave\8888\mongodb.log port = 8888 #主数据库端口号 bind_ip = 127.0.0.1 #绑定ip地址 master = true #确定是主服务器
E:\mongodb\master-slave\8888mongod.bat 启动脚本
mongod --config 8888.conf
E:\mongodb\master-slave\8888mongo.bat shell脚本
mongo 127.0.0.1:8888
从数据库的配置:
E:\mongodb\master-slave\9999.conf配置文件
dbpath =E:\mongodb\master-slave\9999 #主数据库存储地址 port = 9999 #主数据库端口号 bind_ip = 127.0.0.1 #绑定ip地址 source = 127.0.0.1:8888 #确定主数据库端口,该配置可以在从数据库中动态添加或者删除 slave = true #确定是从服务器
E:\mongodb\master-slave\9999mongod.bat 启动脚本
mongod --config 9999.confE:\mongodb\master-slave\9999mongo.bat shell脚本
mongo 127.0.0.1:9999
一些其它配置参数说明:
1、only 从节点-->选择只同步指定数据库 默认是所有数据库 eg: only=test 只同步test数据库。
如果加上该配置项报 --only != test from local.sources collection 错误时
解决办法:执行下面命令,删除错误的信息即可
db.sources.remove({'host':'127.0.0.1:8888'})
如果删除后还能够查询到那就先停掉主数据库和从数据库,然后再启动从数据库 然后再执行删除操作。
2、slavedelay 从节点-->设置主数据库同步到从数据库延迟的时间(单位是秒)
3、fastsync 从节点-->以主数据库节点的快照为节点启动数据库同步。快速同步
4、autoresync 从节点-->如果主数据库和从数据库不同步则自动从新同步 (对已经运行了一段时间的主数据库同步添加从数据库此时主数据库和从数据库是不同步的)
5、oplogSize 主节点-->设置主oplog的大小(主节点操作记录到local的oplog中)
利用shell动态添加和删除从节点:
添加节点:
删除节点:
db.sources.remove({'host':'127.0.0.1:8888'})
在从数据库
一、复本集(replica set)
二、分片(sharding)
三、复本集(replica set)+分片(sharding)