发表于 2015-7-9 08:57:59

搭建mongodb副本集

  因为机器有限,我们在同一台机器上面模拟副本集的搭建。
  主机地址:10.1.10.31
  创建数据库文件目录:



Standard1 :
Mkdir -p /usr/local/liuwbdb/standard1/db
Mkdir –p /usr/local/liuwbdb/standard1/log
Standard2:
Mkdir -p /usr/local/liuwbdb/standard2/db
Mkdir –p /usr/local/liuwbdb/standard2/log

Arbiter:
Mkdir –p /usr/local/liuwbdb/arbiter/db
Mkdir –p /usr/local/liuwbdb/arbiter/log

  
  因为在同一台主机上面所以对于不同的端口:



Arbiter=>27080;
Standard1 => 27081;
Standard2=> 27082;

  启动三个服务:



mongod -dbpath /usr/local/liuwbdb/standard1/db -logpath /usr/local/liuwbdb/standard1/log/log.txt -port 27081 -replSet liuwb -fork -logappend
mongod -dbpath /usr/local/liuwbdb/standard2/db -logpath /usr/local/liuwbdb/standard2/log/log.txt -port 27082 -replSet liuwb -fork –logappend
mongod -dbpath /usr/local/liuwbdb/arbiter/db -logpath /usr/local/liuwbdb/arbiter/log/log.txt -port 27080 -replSet liuwb -fork -logappend

  
  初始化副本集:



db.runCommand({"replSetInitiate":{"_id":"liuwb","members":[{"_id":0,"host":"127.0.0.1:27081"},{"_id":1,"host":"127.0.0.1:27082"}]}});
  添加仲裁:



Rs.addArb(“127.0.0.1:27080”);
  查看状态:



Rs.status();
  添加新服务器:



mongod -dbpath /usr/local/liuwbdb/standard3/db -logpath /usr/local/liuwbdb/standard3/log/log.txt -port 27085 -replSet liuwb -fork –logappend
rs.add(“10.1.10.31:27083”);
  故障切换:



rs.stepDown();
  执行此命令,在查看状态会发现主已经切换到了其他服务器。
  
  在php中测试副本集:



$conn = new Mongo("mongodb://10.1.10.31:27080,10.1.10.31:27081,10.1.10.31:27082/test");
$db= $conn->selectDb('test');
$collection = $db->selectCollection('test');
$data = array('name'=>'ximu','sex'=>1,'age'=>23);
try{
$collection->insert($data,true);
}catch(MongoCursorException $e){
echo $e->getMessage();
}
  参考文档:http://my.oschina.net/taisha/blog/36967
页: [1]
查看完整版本: 搭建mongodb副本集