一 mongodb简介

  • mongodb的来源
    mongo不是芒果的英译,而是从单词humongous(巨大的)中间截取的部分单词,寓意它是用来存储大量数据的.
    mongodb是nosql类型数据库中排名第一的数据库,也是最接近RDBMS的NoSQL数据库

  • mongodb数据结构
    MongoDB与RDBMS最大的区别在于:没有固定的行列组织数据结构,而是使用JSON格式管理数据,存储时使用的是JSON的二进制形式BSON

  • MongoDB适用场景

    • 网站数据
    • 缓存
    • 大尺寸、低价值的数据
    • 高伸缩性的场景
    • 用于对象及JSON数据的存储
  • mongodb与mysql逻辑结构类比
    |Mongodb| MySQL|
    |----|----|
    |库–database| 库–database|
    |集合–collection| 表–table|
    |文档–document| 行–row|

二 mongoDB单机部署

A 关闭大页内存

在生产环境使用mongodb时,最好按官方文档关闭linux的大内存机制,关闭原因和关闭方法详见下方官方文档 :
各系统关系大内存页-官方文档

1
2
3
4
5
6
7
8
9
cat >>/etc/profile <<EOF
if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]; then
echo never >/sys/kernel/mm/transparent_hugepage/enabled
fi
if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]; then
echo never >/sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
source /etc/profile

B 部署环境

创建并切换用户

1
2
3
useradd -u  3003 mongo
echo 123456|passwd --stdin mongo
su - mongo

创建目录并下载程序

1
2
3
mkdir -p /server/tools && cd /server/tools/
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.22.tgz
tar xf mongodb-linux-x86_64-rhel70-3.2.22.tgz -C mongodb

移动目录并授权

1
2
3
mkdir -p /opt/mongodb/{bin,conf,log,data}
cp -a /server/tools/mongodb/bin/* /opt/mongodb/bin/
chown -R mongo:mongo /opt/mongodb/

添加环境变量

1
2
3
4
cat >>.bash_profile <<EOF
export PATH=/opt/mongodb/bin:$PATH
EOF
source .bash_profile

命令行启动

1
2
3
4
mongod --dbpath=/opt/mongodb/data --logpath=/opt/mongodb/log/mongodb.log --port=27017 --logappend --fork
[mongo@noah ~]$ mongo
MongoDB shell version: 3.2.22
connecting to: test

C 创建配置文件并启动

创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
cat >/opt/mongodb/conf/mongodb.conf
<<EOF
##系统日志有关
systemLog:
destination: file
path: "/opt/mongodb/log/mongodb.log"
logAppend: true

##数据存储有关
storage:
journal:
enabled: true
dbPath: "/opt/mongodb/data"

##进程控制
processManagement:
#后台守护进程方式启动
fork: true

##网络配置有关
net:
##监听地址,默认监听0.0.0.0
#bindIp: 0.0.0.0
#端口号,默认27017
port: 27017
EOF

启动和停止

1
2
mongod -f /opt/mongodb/conf/mongodb.conf
mongod -f /opt/mongodb/conf/mongodb.conf --shutdown