由于工作需要,近期用到mongodb数据库,于是重新翻阅了下之前的记录,现对mongodb一些基本的操作做下分享,供各位参阅。
1、制作源并安装mongodb数据库
cat <<EOF > /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.6/x86_64/
gpgcheck=0
enabled=1
EOF
开始安装:
yum -y makecache fast
yum install -y mongodb-org
systemctl enable mongod #开机自启
2、修改配置文件
sed -i "s/bindIp: 127.0.0.1/bindIp: 0.0.0.0/g" /etc/mongod.conf
systemctl restart mongod
3、新建索引并创建自动删除10天以前数据的计划
1.rawData collections 创建过程
show dbs
use datacollect
show collections
db.rawData.findOne()
db.rawData.createIndex({"source": 1,"time": -1},{name:"rawData_created_timescidx"},{expireAfterSeconds: 3600*10 },{background:true})
db.rawData.getIndexes()
2.exceptionData collections 创建过程
show dbs
use datacollect
show collections
db.exceptionData.findOne()
db.exceptionData.createIndex({"source": 1,"time": -1},{name:"excdt_created_timescidx"},{expireAfterSeconds: 3600*10 },{background:true})
db.exceptionData.getIndexes()
注意:以上方法虽然为后台运行,但尽量不要在数据量比较大的mongodb数据库中执行。
3.查看执行计划的执行过程
db.rawData.find({source:'ht-84'}).explain('executionStats')
4、mongodb守护进程脚本
cat <<EOF > /usr/bin/shouhu.sh
#!/bin/sh
#添加本地路径如果有
while true; do
#启动一个循环,定时检查进程是否存在
server=`ps aux | grep mongod | grep -v grep`
if [ ! "$server" ]; then
#如果不存在就重新启动
systemctl restart mongod &
#启动后沉睡5s
sleep 5
fi
#每次循环沉睡5s
sleep 5
done
EOF
chmod a+x /usr/bin/shouhu.sh
sh /usr/bin/shouhu.sh 2>&1 &