第五步:
下面我们进行数据同步测试:
//向PRIMARY(主节点)写入一条数据
use test
db.say.insert({"text":"Hello World"})
//进入SECONDARY(副节点)查看数据是否同步
PS:SECONDARY不能写,而设置slaveOk后,可能从SECONDARY读取数据
默认情况下SECONDARY不能读写,要设定db.getMongo().setSlaveOk();才可以从SECONDARY读取
replSet里只能有一个Primary库,只能从Primary写数据,不能向SECONDARY写数据
先ctrl+alt+f5进入控制台5端口2的mongodb的shell
进入mongodb的安装目标的bin目录 运行下面代码:
./mongo --port 28011
db.say.find()
rs.slaveOk()
db.say.find()
发现没运行rs.slaveOk()开启权限时不能进行读取。
开启权限后,能进行读取,发现已经数据已经同步备份。
//ARBITER 读取写入都不能
先ctrl+alt+f6进入控制台6端口3的mongodb的shell
进入mongodb的安装目标的bin目录 运行下面代码:
./mongo --port 28012
db.say.find()
rs.slaveOk()
db.say.find()
db.say.insert({"text2":"Hi"})
注意arbiter仲裁节点只投票,不接收复制的数据!,不接收PRIMARY写入的mydb的数据! |