天天看點

Mongodb資料庫部署與索引維護

1、制作源并安裝mongodb資料庫

cat <<EOF > /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
[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 &