发表于 2015-7-9 10:16:21

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
  启动过程如下:
# 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
  # 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
  # /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 > /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 # 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
  相关操作演示如下:

  http://10.0.0.16:28001/ 通过这个可以看到相关信息。
页: [1]
查看完整版本: MongoDB学习笔记(一) 简单的安装配置