读书人

Mongodb学习札记(二)

发布时间: 2012-12-25 16:18:28 作者: rapoo

Mongodb学习笔记(二)

?

备份停机拷贝mongodump/mongorestorefsync? ? ? ? ? ? ? ? ? ?> use admin
> db.runCommand({"fsync":1,"lock":1})
{
??????? "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
??????? "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
??????? "ok" : 1
}
锁定后所有对数据库的写操作全部被会阻塞,读取操作不会受影响,此时可以进行文件拷贝进行备份,完成后执行
> db.$cmd.sys.unlock.findOne();
{ "ok" : 1, "info" : "unlock requested" }
> db.currentOp();
{ "inprog" : [ ] }? ? ??
解锁,写入正常。
修复? ? ? ? ? ? ? ? ? ? 未正常停止重后启应该修复,使用--repair参数进行启动? ? ? ? ? ? ? ? ? ? 运行中数据库的修复,db.repairDatabase(),使用程序{"repairDatabase":1}
复制主从复制? ? ? ? ? ? ? ? ? ? 新版本已经不在推荐,? 复制集(Replica Sets)? ? ? ? ? ? ? ? ? ? ? 副本集没有主从节点之分,在同一时间多个节点总有一个活跃节点和多个备份节点,当其中一个节点出故障时,有其它的节点会自动升为活跃节点。? ? ? ? ? ? ? ? ? ? ??Mongodb学习札记(二)? ? ? ? ? ? ? test环境复制集部署
        创建不同的实例目录
? ? ??????????????????????????mkdir -p /data/rs/rs0-0 /data/rs/rs0-1 /data/rs/rs0-2
        分别带参数启动实例rs.initiate()
? ? ??????????????????????????./mongod --port 27017 --dbpath /data/rs/rs0-0 --replSet rs0? ? ??????????????????????????./mongod --port 27018 --dbpath /data/rs/rs0-1 --replSet rs0? ? ??????????????????????????./mongod --port 27019 --dbpath /data/rs/rs0-2 --replSet rs0
? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意:操作系统主机名一定要在/etc/hosts里加入对应的配置,否则下面的操作会报错
        初始化主复制
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?使用mongo连接到其中一个实例,执行???????????????????????????????rs.initiate()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看一下状态? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.status()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?加入其它成员? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27018")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27019")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看状态? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
        测试
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在此时,只有一个是活动节点,其它是备份节点,在活动节点执行db.test.insert({"x":1}),但是此的备份节点是不能读写的,连接其中备份节点,执行? ? ? ? ? ? db.slaveOk(),然后执行db.test.find(),刚才插入的文档能找出来,ok,基本完成。
? ? ?????????????????????增加节点? ? ?????????????????????通过oplog增加节点?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mkdir -p /data/rs/rs0-3? ? ???????????????????????????????./mongod --port 27020 --dbpath /data/rs/rs0-3 --replSet rs0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mongo 连接到活动节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27020")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.status(),直接到同步完成
?????????????????????????通过数据库快照(--fastsync)和 和和 和oplog增加节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cp -r /data/rs/r0-3 /data/rs0-4(注意,需要在停止服务的时候进行复制)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???./mongod --port 27021 --dbpath /data/rs/rs0-4 --replSet rs0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mongo 连接到活动节点? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.add("host:27020")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rs.status(),直接到同步完成? ? ??????????????????????????? ? ? ??
减少节点? ? ? ? ? ? ? ? ? ? 登录到活动节点,执行rs.remove("host:port"),然后使用rs.status()查看复制集状态



? ? ? ? ? ? ? ? ? ??

读书人网 >其他数据库

热点推荐