MongoDB学习笔记(一) 简单的安装配置

系统环境CentOS 6.3x64
http://www.mongodb.org/downloads
http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.4.tgz
http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.3.tgz

以上两个版本根据实际情况进行选择: MongoDB 区分大小写 文档不能有重复的键
mkdir -p /tools/mongodb
cd /tools/mongodb
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.3.tgz
tar zvfx mongodb-linux-x86_64-2.4.3.tgz
mv mongodb-linux-x86_64-2.4.3 /usr/local/mongodb
/usr/sbin/groupadd -g 690 mongodb
/usr/sbin/useradd -g mongodb mongodb -u 690 -s /sbin/nologin
mkdir -p /data/mongodb/{mongodb_data,mongodb_log}
chown -R mongodb.mongodb /data/mongodb/{mongodb_data,mongodb_log}

以服务方式启动mongodb,要求验证:
需要首先执行:echo 0 > /proc/sys/vm/zone_reclaim_mode 启动方式如下:
numactl --interleave=all /usr/local/mongodb/bin/mongod --fork --port 27001 --auth \
--dbpath /data/mongodb/mongodb_data --logpath /data/mongodb/mongodb_log/mongodb.log

启动过程如下:
[root@CentOS-6 mongodb]# numactl --interleave=all /usr/local/mongodb/bin/mongod --fork --port 27001 --auth \
> --dbpath /data/mongodb/mongodb_data --logpath /data/mongodb/mongodb_log/mongodb.log
about to fork child process, waiting until server is ready for connections.
forked process: 1413
all output going to: /data/mongodb/mongodb_log/mongodb.log
child process started successfully, parent exiting

[root@CentOS-6 mongodb]# netstat -lntup|grep mongod
tcp 0 0 0.0.0.0:27001 0.0.0.0:* LISTEN 1413/mongod
tcp 0 0 0.0.0.0:28001 0.0.0.0:* LISTEN 1413/mongod

[root@CentOS-6 ~]# /usr/local/mongodb/bin/mongo --host 10.0.0.16:27001
MongoDB shell version: 2.4.3
connecting to: 10.0.0.16:27001/test
> db #查看当前所在的数据库
test
> use db #切换至test数据库
switched to db test

==========================================================================================
#使用下面命令可以查看服务的启动参数
mongod --help 或者mongod -h
--------------------------------------------------------------------------------------------
--quiet # 安静输出
--port arg # 指定服务端口号,默认端口27017
--bind_ip arg # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--logpath arg # 指定MongoDB日志文件,注意是指定文件不是目录
--logappend # 使用追加的方式写日志
--pidfilepath arg # PID File 的完整路径,如果没有设置,则没有PID文件
--keyFile arg # 集群的私钥的完整路径,只对于Replica Set 架构有效
--unixSocketPrefix arg # UNIX域套接字替代目录,(默认为 /tmp)
--fork # 以守护进程的方式运行MongoDB,创建服务器进程
--auth # 启用验证
--cpu # 定期显示CPU的CPU利用率和iowait
--dbpath arg # 指定数据库路径
--diaglog arg # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb # 设置每个数据库将被保存在一个单独的目录
--journal # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
--journalOptions arg # 启用日志诊断选项
--ipv6 # 启用IPv6选项
--jsonp # 允许JSONP形式通过HTTP访问(有安全影响)
--maxConns arg # 最大同时连接数 默认2000
--noauth # 不启用验证
--nohttpinterface # 关闭http接口,默认关闭27018端口访问
--noprealloc # 禁用数据文件预分配(往往影响性能)
--noscripting # 禁用脚本引擎
--notablescan # 不允许表扫描
--nounixsocket # 禁用Unix套接字监听
--nssize arg (=16) # 设置信数据库.ns文件大小(MB)
--objcheck # 在收到客户数据,检查的有效性,
--profile arg # 档案参数 0=off 1=slow, 2=all
--quota # 限制每个数据库的文件数,设置默认为8
--quotaFiles arg # number of files allower per db, requires --quota
--rest # 开启简单的rest API
--repair # 修复所有数据库run repair on all dbs
--repairpath arg # 修复库生成的文件的目录,默认为目录名称dbpath
--slowms arg (=100) # value of slow for profile and console log
--smallfiles # 使用较小的默认文件
--syncdelay arg (=60) # 数据写入磁盘的时间秒数(0=never,不推荐)
--sysinfo # 打印一些诊断系统信息
--upgrade # 如果需要升级数据库

Replicaton 参数
--------------------------------------------------------------------------------------------
--fastsync # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
--autoresync # 如果从库与主库同步数据差得多,自动重新同步,
--oplogSize arg # 设置oplog的大小(MB)

主/从参数
--------------------------------------------------------------------------------------------
--master # 主库模式
--slave # 从库模式
--source arg # 从库端口号
--only arg # 指定单一的数据库复制
--slavedelay arg # 设置从库同步主库的延迟时间

Replica set(副本集)选项
--------------------------------------------------------------------------------------------
--replSet arg # 设置副本集名称

Sharding(分片)选项
--------------------------------------------------------------------------------------------
--configsvr # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
--shardsvr # 声明这是一个集群的分片,默认端口27018
--noMoveParanoia # 关闭偏执为moveChunk数据保存?
==========================================================================================

由于以上管理比较麻烦 每次启动关闭 都需要输入一大堆的参数,所以我这里写了一个shell脚本进行管理维护:

将相关参数写入配置文件:
cat << EOF >> /etc/mongodb.conf
#Mongodb start configure file
pidfilepath = /data/mongodb/mongodb_log/mongodb.pid
dbpath = /data/mongodb/mongodb_data
logpath = /data/mongodb/mongodb_log/mongodb.log
logappend = true
bind_ip = 10.0.0.16
port = 27001
fork = true
auth = true
directoryperdb = true
journal = true
EOF

脚本部分:

复制代码
 1 [root@CentOS-6 ~]# cat mongodb.sh 
 2 #!/bin/bash
 3 #Date:2013-06-16
 4 #Author:zhangluya
 5 #QQ:64125568
 6 #Info:mongodb stop && start
 7 
 8 #source function library
 9  . /etc/init.d/functions
10 
11 INSTALL="/usr/local/mongodb"
12 DB="/data/mongodb"
13 PID="${DB}/mongodb_log/mongodb.pid"
14 LOG="${DB}/mongodb_log/mongodb.log"
15 
16 
17 START_M(){
18        if [ ! -e ${PID} ];then
19        ${INSTALL}/bin/mongod --config /etc/mongodb.conf > /dev/null 2>&1
20        action "MongoDB start is ..................^_^ " /bin/true
21        else
22        echo -e "-------------------------------------------------------------------"  
23        echo -e "\033[1;33m Mongodb process is already exist!!! \033[0m"
24        echo -e "-------------------------------------------------------------------"  
25        fi
26 }
27 
28 STOP_M(){
29        if [ -e ${PID} ];then
30        kill -15 `cat ${PID}` > /dev/null 2>&1
31        /bin/mv ${PID} /tmp > /dev/null 2>&1
32        action "MongoDB stop is .................. -_-!" /bin/true
33        else
34        echo -e "-------------------------------------------------------------------"
35        echo -e "\033[1;33m MongoDB process is not found!!!! \033[0m"
36        echo -e "-------------------------------------------------------------------"
37        fi
38  }
39 
40 #load function start or stop ttserver
41 case "$1" in
42     start|START)
43           START_M
44           ;;
45     stop|STOP)
46           STOP_M
47           ;;
48     restart)
49           STOP_M
50           sleep 3
51           START_M
52           ;;
53     *)
54           echo "Usage:`basename $0` {start|stop|restart}"
55           exit 1
56 esac
复制代码

相关操作演示如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值