replication set复制集

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



 

 

 


Replication set设置全过程

0:创建目录

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

 

 

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

./bin/mongod--port 27017 --dbpath /data/r0 --smallfiles --replSetrsa --fork --logpath /var/log/mongo17.log

./bin/mongod--port 27018 --dbpath /data/r1 --smallfiles --replSetrsa --fork --logpath /var/log/mongo18.log

./bin/mongod--port 27019 --dbpath /data/r2 --smallfiles --replSetrsa --fork --logpath /var/log/mongo19.log

 

2:配置

rsconf = {

    _id:'rsa',

    members:

    [

        {_id:0,

        host:'192.168.1.201:27017'

        }

    ]

}

 

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 1716:03:55.786 JavaScript execution failed: error: { "$err" : "notmaster and slaveOk=false", "code" : 13435 }

 

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

>rs.slaveOk();

>show tables

 

#看到与primary 一致的数据