学习目标
部署数据库服务
1,搭建简单的单机服务
2,搭建具有冗余容错功能的复制集
3,搭建大规模数据集群
4,完成集群的自动部署
MongoDB使用
1,文档的读写更新删除
2,各种不同类型的索引的创建与使用
3,复杂的聚合查询
4,对数据集合进行分片,在不同分片间维持数据均衡
5,数据备份与恢复
6,数据迁移
运维
1,部署MongoDB集群
2,处理多种常见的故障
1.1 单节点失效,如何恢复工作
1.2 数据库意外被杀死如何进行数据恢复
1.3 数据库发生拒绝服务时如何排查原因
1.4 数据库磁盘快满时如何处理
MongoDB特点
1,无数据结构限制
没有表结构的概念,每条记录可以有完全不同的结构
业务开发方便快捷
SQL数据库需要事先定义表结构再使用
2,完全的索引支持
redis的key-value
hbase的单索引,二级索引需要自己实现
单键索引,多键索引:{x:1,y:1} 数据索引:["apple","lemon"] 全文索引:"I am a little bird."(中文) 地理位置索引:2D
3,方便的冗余与扩展
复制集保证数据安全
分片扩展数据规模
4,良好的支持
完善的文档
齐全的驱动支持
MongoDB安装与配置
工作环境
MongoDB环境:64位Linux(这里采用虚拟机下Ubuntu server14.04)
ssh工具:Xshell
搭建简易MongoDB服务器
1,创建mongodb_simple目录,进入目录
2,创建文件夹:data,存储数据库的数据文件
3,创建文件夹:log,存储数据库的日志文件
4,创建文件夹:bin,存储数据库的可执行文件
5,创建文件夹:conf,存储数据库的配置文件
cp ../mongodb-3.2.3/bin/mongod bin/ cd conf/ vim mongod.conf #配置参数 port = 12345 dbpath = data logpath = log/mongod.log fork = true #进入mongodb_simple目录 ./bin/mongod -f conf/mongod.conf #查看log日志 tail -f log/mongod.log
连接MongoDB服务器
#查看使用说明 ./bin/mongo --help #连接数据库 ./bin/mongo 127.0.0.1:12345/test #关闭连接,admin权限 use admin db.shutdownServer() #重启mongod服务 numactl --interleave=all bin/mongod -f conf/mongod.conf #再次连接MongoDB数据库端口12345 ./bin/mongo 127.0.0.1:12345
启动mongodb时提示警告
# We suggest setting it to 'never' #打开/etc/init/mongod.conf文件,将下方代码添加到chown $DEAMONUSER /var/run/mongodb.pid 和 end script.之间即可,注意空格的对齐 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi #重启mongod服务 sudo service mongod restart mongo #重新加载配置文件 mongod -f /etc/mongod.conf