文档章节

搭建高可用mongodb集群

SibylY
 SibylY
发布于 2016/07/14 16:21
字数 579
阅读 27
收藏 1

【mongo基础】

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins   表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

 

【mongo搭建--副本集】

1、创建mongo数据存放路径:~/mongo_data/replset/data

2、编写配置文件~/mongo_data/replset/mongo.conf


dbpath=/home/XX/mongo_data/replset/data
logpath=/home/XX/mongo_data/replset/replset.log
pidfilepath=/home/XX/mongo_data/replset/replset.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.130
port=27017
oplogSize=10000
fork=true
noprealloc=true

参数解释:

dbpath:数据存放目录

logpath:日志存放路径

pidfilepath:进程文件,方便停止mongodb

directoryperdb:为每一个数据库按照数据库名建立文件夹存放

logappend:以追加的方式记录日志

replSet:replica set的名字

bind_ip:mongodb所绑定的ip地址

port:mongodb进程所使用的端口号,默认为27017

oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%

fork:以后台方式运行进程

noprealloc:不预先分配存储

 

3、启动 mongo服务:mongod -f  mongo.conf

about to fork child process, waiting until server is ready for connections.
forked process: 29583
child process started successfully, parent exiting

4、初始化副本集

在三台机器上任意一台机器登陆mongo

mongo
#使用admin数据库
> use admin
switched to db admin
#定义副本集配置变量,这里的 _id:”repset” 和上面命令参数“ –replSet repset” 要保持一样。
>config = { _id:"repset", members:[
... {_id:0,host:"192.168.1.136:27017"},
... {_id:1,host:"192.168.1.137:27017"},
... {_id:2,host:"192.168.1.138:27017"}]
... }
#输出(省略)
#初始化副本集配置
>rs.initiate(config);
#输出成功,几十秒至1~2分钟
{
        "info" : "Config now saved locally.  Should come online in about a minute.",
        "ok" : 1
}
#查看日志,副本集启动成功后,138为主节点PRIMARY,136、137为副本节点SECONDARY。
#或者客户端连接 mongo查看

#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。
repset:SECONDARY> db.getMongo().setSlaveOk();

测试

 

PHP 连接 mongo副本集

<?php

$conn = new Mongo("mongodb://《id1》:27017,<id2>:27017,<id3>:27027",array('replicaSet'=>'replset'));
$db = $conn->selectDB('test');
$data=array('name'=>'summer','time'=>time());
$collection=$db->selectCollection('message');
try{
      $collection->insert($data);
}catch(MongoCursorException $e){
    echo $e->getMessage();
}

 

© 著作权归作者所有

共有 人打赏支持
SibylY
粉丝 29
博文 437
码字总数 344084
作品 0
海淀
程序员
私信 提问

暂无文章

day148-2018-11-15-英语流利阅读-待学习

赴美生子恐结束?特朗普中期选举憋大招 毛西 2018-11-15 1.今日导读 在 2013 年,一部《北京遇上西雅图》让赴美生子这个曾经神秘的话题吸引了很多关注。每年,数以万计的父母远赴美国,并在那...

飞鱼说编程
17分钟前
1
0
OSChina 周四乱弹 —— 每次我穿短裙的时候

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享DM DOKURO的单曲《Reality Check Through The Skull》: 差点以为手机卡了 《Reality Check Through The Skull》- DM DOKURO...

小小编辑
27分钟前
65
2
Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
今天
3
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
8
0
SLF4J的正确打开方式

最近公司好几波人过来问日志打印相关的异常,大多是jar包冲突引起的,发现大部分同事不太清楚各种日志框架以及相关jar包之间的关系,所以今天详细的讲解下常见jar包之间的关系,以及如何正确...

lexus90
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部