一 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 mongosu - 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