1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建db1,db2,db3;
同理在前面的logs下面创建logs1,logs2,logs3
2:在启动MongoDB服务器的时候,使用--replSet副本集名称选项,如:
./mongod --dbpath ../dbs/db1 --logpath ../logs/logs1 --port 20001 --fork --replSet myrepl
3:然后再启动两个,端口分别为20002和20003,当然要修改相应的数据文件路径和日志路径,副本集名称
./mongod --dbpath ../dbs/db2 --logpath ../logs/logs2 --port 20002 --fork --replSet myrepl
./mongod --dbpath ../dbs/db3 --logpath ../logs/logs3 --port 20003 --fork --replSet myrepl
4:连接到20001,[第一次]进行副本集的初始化
rs.initiate(
{_id:"myrepl",
members:[
{_id:0,host:'127.0.0.1:20001'},
{_id:1,host:'127.0.0.1:20002'},
{_id:2,host:'127.0.0.1:20003'}
]
}
)
5:察看副本集状态
rs.status(); 或者rs.config(); 或者db.printReplicationInfo();
(1)客户端的读写请求,都是发送到主节点进行操作
(2)客户端不能在备份节点上进行写请求
(3)默认情况下,客户端不能从备份节点读取数据,可以通过显示的执行如下语句来允许读:db.getMongo().setSlaveOk();
4、如果由于之前的操作,导致某台起不起来
删除当前的/dbs/dbN /logs/logsN的数据