Mongodb学习笔记 (八) 之 replication复制集

Relication Set 复制集

replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性.


4094365-81be0b2280d5dd20.png
image.png

Replication set 设置全过程

0.创建目录

mkdir -p /data/r0 /data/r1 /data/r2

1.启动3个实例,且声明实例属于某复制集

./bin/mongod --port 27017 --dbpath /data/r0 --smallfiles --replSet rsa --fork --logpath /var/log/mongo17.log
./bin/mongod --port 27018 --dbpath /data/r1 --smallfiles --replSet rsa --fork --logpath /var/log/mongo18.log
./bin/mongod --port 27019 --dbpath /data/r2 --smallfiles --replSet rsa --fork --logpath /var/log/mongo19.log

2.配置

rsconf = {
    _id:'rsa',
    members:
    [
        {_id:0,
        host:'192.168.1.201:27017'
        },
       {_id:1,
        host:'192.168.1.201:27018'
        },
       {_id:1,
        host:'192.168.1.201:27019'
        }
    ]
}

3. 根据配置做初始化

rs.initiate(rsconf);

4. 添加节点

rs.add('192.168.1.201:27018');
rs.add('192.168.1.201:27019');

5. 查看状态

rs.status();

6. 删除节点

rs.remove('192.168.1.201:27019');

7. 主节点插入数据

>use test
>db.user.insert({uid:1,name:'lily'});

8. 连接secondary查询同步情况

./bin/mongo --port 27019
>use test
>show tables

rsa:SECONDARY> show tables;
Sat Aug 17 16:03:55.786 JavaScript execution failed: error: { "$err" : "not master and slaveOk=false", "code" : 13435 } 

8.1 出现上述错误,是因为slave默认不许读写

>rs.slaveOk();
>show tables

看到与primary 一致的数据

猜你喜欢

转载自blog.csdn.net/weixin_33841503/article/details/87339324