16
2013-09

mongodb迁移


作者:容易


迁移原因:由于的当初只有2台物理服务器,搭建mongodb reset时一共3个节点,临时性将其中的2个备用节点部署到了同一台物理服务器上,这样可能会造成的后果,假如部署备用节点的物理机宕机,会造成主节点也不可用,基于此原因根据现有环境搭建了测试平台模拟迁移过程。


一、创建初始数据库,还原testdb 192.168.4.165上操作

1、先关闭数据库

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb.conf --shutdown

2、启动数据库修改配置文件,将reset相关配置全部删除

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb.conf

3、启动完成后登录数据库,创建管理用户

/home/mdb/mongodb/bin/mongo 127.0.0.1:8010

use admin;

db.addUser('root','tiger');

4、还原数据库

mongorestore  -h 192.168.4.165:8010 -d test  bb/*

5、重启数据库,修改配置增加reset参数

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb.conf --shutdown

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb.conf

6、启动192.168.4.164:8011,8012库

先将库关闭

/home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb8011.conf --shutdown

/home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb8012.conf --shutdown

将db目录重命名,建立新的db目录

启动

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb8011.conf

numactl --interleave=all /home/mdb/mongodb/bin/mongod -f /home/mdb/mongodb/etc/mdb8012.conf

7、初始化reset

在192.168.4.165:8010上操作

mongo 192.168.4.165:8010/admin -u root -p  

use admin;

tigerdb={_id:'tigerdb',members:[{_id:165,host:'192.168.4.165:8010',priority:2},{_id:11,host:'192.168.4.164:8011',priority:1},{_id:12,host:'192.168.4.164:8012',priority:1}]}

rs.initiate(tigerdb)


测试数据库可用性


8、测试完成后,新增加mdb节点

首先需要先将 192.168.4.166:8010启动

然后逐个添加,添加完成一个再添加另外一个,新增加的节点增加 directoryperdb=true 参数

rs.add({_id:13,host:"192.168.4.166:8010"});

rs.add({_id:14,host:"192.168.4.164:8010"});

同步状态查询。

rs.status()

9、删除旧的节点,删除节点会引起reset重新选举,数据库集群将瞬间不可用,持续时间大概5秒以内。

rs.remove("192.168.4.164:8011")

rs.remove("192.168.4.164:8012")

10、修改192.168.4.165:8010优先级,修改成员优先级会引发重新选举,数据库集群将瞬间不可用,持续时间大概5秒以内。

cfg = rs.conf()

cfg.members[0].priority = 5

rs.reconfig(cfg)


修改 192.168.4.164:8010 优先级,修改优先级会引发mdb重新选举主节点,持续通过在5秒内,可能会出现数据库连接中断的情况。

cfg = rs.conf()

cfg.members[1].priority = 3

rs.reconfig(cfg)

11、


One Response


    还没有评论!
1  

Leave your comment

请留下您的姓名(*)

请输入正确的邮箱地址(*)

请输入你的评论(*)


感谢开源 © 2016. All rights reserved.&3Q Open Source&^_^赣ICP备15012863号-1^_^
乐于分享共同进步 KreativeThemes