MongoDB經常使用腳本配置方法

1 設置副本集linux

 

#!/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
mongodb

 

註釋:把上面的內容寫入***.sh文件中 數據庫

chmod 777 ***.sh 賦給權限bash

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

下同spa

2 修改副本集的設置rest

#!/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;
crontab

EOFrem

 

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 -rf mongodb_dump  -----自動解壓並還原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 -rf mongodb_dump 

相關文章
相關標籤/搜索