实验一:完成以下配置:
1. 指定数据区:
~ $ mkdir modata
~ $ cd modata/
~/modata $ mkdir primary
~/modata $ mkdir secondary1
~/modata $ mkdir secondary2
2. 启动primary
(1) 数据集方式启动,并指定数据集名称为:myrs
mongod --port 27017 --dbpath primary --replSet myrs
(2) 客户端连接,并初始化数据集:
mongo --port 27017
rs.initiate()
此时完成复制集的初始化工作,默认第一个进程为myrs:SECONDARY>
按回车,会重新检测,从而变为myrs:PRIMARY>
3. 在客户端中, 添加secondary(必须在secondary 的进程启动之前添加)
myrs:PRIMARY> rs.add({host:"localhost:27018",votes:0,priority:0});
myrs:PRIMARY> rs.add({host:"localhost:27019",votes:0,priority:0});
补充:使用rs.initiate(),更高效的一种方法(可以省略【步骤2】的rs.initiate()):
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018"},
{ _id: 2, host: "localhost:27019" }
]
})
4. 启动另外两个secondary
mongod --port 27018 --dbpath secondary1 --replSet myrs
mongod --port 27019 --dbpath secondary2 --replSet myrs
5. 查看:
可以在复制集中任意一个客户端中:
rs.status();
6. 测试:
在primary进程中,使用客户端完成:
myrs:PRIMARY> use demo01
myrs:PRIMARY> db.customers.insert({name:'johnyu'},{writeConcern:{w:3,wtimeout:5000}})
如果显示为以下内容,则代表成功!!!
WriteResult({ "nInserted" : 1 })