mongodb shell 脚本

本文介绍了一套关于MongoDB副本集的配置与维护方案,包括设置副本集、调整节点优先级、重置表操作及日志管理等实用脚本,并提供了自动备份与还原的Shell脚本实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,设置副本集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/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

2,修改副本集里mongodb的优先级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/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,把一个表转到临时表,再拷贝回来,这样oplog中就会重新生成新的完整log(前提是oplog要足够大)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/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日志

1
2
3
4
5
6
7
8
9
#!/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 按每天的日期生成log


5,自动备份还原mongodb的脚本

================自动备份并且压缩============================

1
2
3
4
5
6
7
8
9
#!/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



================自动解压并还原数据=============================

1
2
3
4
5
6
7
8
9
#!/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






















本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/1748484 ,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值