第九章 复制
一主从复制 ,从节点从主节点复制内容
一个主节+一个或多个从节点
主节点启动添加 --master
从节点启动 --slave --source 主节点地址
在一台机器上作主从测试(从节点要使用不同的数据目录和端口号)
1 建立数据目录
H:\MongoDB\data>mkdir master
H:\MongoDB\data>mkdir slave
2 启动并绑定端口号
C:\Users\Administrator>mongod --dbpathh:\MongoDB\data\master --port 10000 --master --httpinterface --rest
C:\Users\Administrator>mongod --dbpathh:\MongoDB\data\slave --port 10001 --slave --source localhost:10000--httpinterface --rest
选项
--only 指定复制某个特定数据库
--slavedelay 主节点的操作延时,目的可以防止用户不不良操作.用户在操作都会被复制到从节点,通过延时,可以有个恢复的时间差
--fastsync 以主节点的数据快照为基础启动从节点
--autoresync 自动同步
--oplogSize 主节点oplog的大小
添加及删除源
1 可以使用--source指定主节点
2 在shell中配置源,
启动从节点,不添加源
mongod --dbpathh:\MongoDB\data\slave --port 10001 --slave --httpinterface --rest
>use local
>db.sources.insert({“host”:”localhost:27017”})
修改和删除源
Db.source.insert()
Db.source.remove()
二副本集
副本集与主从集群的区别:
副本集没有固定的主节点,会自动选举出主节点
初始化副本集
1 创建数据目录
H:\MongoDB\data>mkdir node1 node2
2 启动并副本命名
C:\Users\Administrator>mongod --dbpath h:\MongoDB\data\node1 --port 10001--replSet blort/localhost:10002
C:\Users\Administrator>mongod --dbpathh:\MongoDB\data\node2 --port 10002 --replSet blort/localhost:10001
3 如果想添加第三台,可以使用以下两种方式
C:\Users\Administrator>mongod --dbpath h:\MongoDB\data\node3 --port 10003--replSet blort/localhost:10001
C:\Users\Administrator>mongod --dbpath h:\MongoDB\data\node3 --port 10003--replSet blort/localhost:10001,localhost:10002
4 初始化副本集
在shell中边接一台服务器,执行如下命令
Mongo localhost:10001\admin
> db.runCommand({"replSetInitiate":{
"_id":"blort",
"members":[
{
"_id":1,
"host":"localhost:10001"
{
"_id":2,
"host":"localhost:10002"
}
]}})