您的位置:首页 > 数据库 > Mongodb

mongodb常用命令脚本化-自动化运维

2015-03-04 14:34 495 查看

mongodb常用命令脚本化-自动化运维

把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护

1 设置副本集

#!/bin/bash

#mongodb 进入client 并use admin

cd /usr/mongodb/bin

MongoDB='./mongo 192.168.1.7:37017'

$MongoDB <<EOF

use admin

rsconf={

"_id" : "Job001",

"members" : [

{

"_id" : 0,

"host" : "192.168.1.7:37017"

}

]

}

rs.initiate(rsconf)

rs.add("192.168.1.8:37017")

rs.add("192.168.1.9:37017")

exit;

EOF

注释:把上面的内容写入***.sh文件中 chmod 777 ***.sh 赋给权限

在linux > sh ***.sh 即可完成那些命令

下同

2 修改副本集的设置

#!/bin/bash

#mongodb 进入client 并进入primary

cd /usr/mongodb/bin

MongoDB='./mongo 192.168.1.7:37017'

$MongoDB <<EOF

use MongoModelJobResume

#rs.status()

cfg=rs.conf()

cfg.members[0].priority=99

cfg.members[1].priority=50

cfg.members[2].priority=30

rs.reconfig(cfg)

rs.conf()

exit;

EOF

3 把一个表转到临时表,再copy回来,这样oplog中就会重新生成完整的log

(前提oplog 的size要足够大)

#!/bin/bash

#mongodb 进入client 并进入primary

cd /usr/mongodb/bin

MongoDB='./mongo 192.168.1.7:37017'

$MongoDB <<EOF

use MongoModelJobResume

rs.remove("192.168.1.8:37017")

rs.remove("192.168.1.9:37017")

db.tbJobResume.renameCollection("tbJobResumeOld")

db.tbJobResumeOld.copyTo("tbJobResume")

rs.add("192.168.1.8:37017")

rs.add("192.168.1.9:37017")

#db.tbJobResumeOld.drop()

exit;

EOF

4 按日期生成mongodb日志

mongodb日志默认写在一个文件了,时间久了查看等很不方便,用cron计划任务+脚本 可以实现按日期存放log
# rotatelog.sh 用下面的内容生成这个文件 chmod 777 rotelog.sh 赋予权限

#!/bin/bash

#mongodb client use admin

cd /usr/mongodb/bin

MongoDB='./mongo 192.168.1.7:37017'

$MongoDB <<EOF

use admin

db.runCommand( { logRotate : 1 } )

exit;

EOF

再用 crontab -e 打开(没有就新建) 加入如下内容,并保存 (该文件路径在 /var/spool/cron/root/)
59 23 * * * /bin/sh /usr/mongodb/config/rotatelog.sh

这样的话每天晚上23点59分的时候就会把当天的日志以***日期.log的方式另存,原来的log文件会清空

5 MongoDB数据库自动备份还原的脚本

-----自动备份mongodb数据并压缩---

#!/bin/bash

filename=`date +%Y%m%d%H`

backmongodbFile=mongodb$filename.tar.gz

cd /home/mongo/back/

/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBAgent -o mongodb_dump/

/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBBg -o mongodb_dump/

/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoModelActor -o mongodb_dump/

tar czf $backmongodbFile mongodb_dump/

rm mongodb_dump -rf

-----自动解压并还原mongodb数据---

#!/bin/bash

filename='20150330013'

backmongodbFile=mongodb$filename.tar.gz

cd /home/mongo/back/

tar zxvf $backmongodbFile

/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBAgent mongodb_dump/MongoDBAgent

/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBBg mongodb_dump/MongoDBBg

/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoModelActor mongodb_dump/MongoModelActor

rm mongodb_dump -rf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: