#導出庫
./mongodump -h 10.205.20.8 -u gcadmin -p gcadmin-d gamecircle_logs -o /home/mongodb/
#恢復庫
./mongorestore -h 10.205.20.8 -u gcadmin -p gcadmin -d gamecircle_logs --dir ./gamecircle_logs --drop
#導出表
./mongoexport -h 10.205.20.8 --port 27017 -u gcadmin -p gcadmin -d gamecircle_logs -c event -o /Users/tangwei/event.dat
#導入表
./mongoimport -h10.205.20.8 --port 27017 -u gcadmin -p gcadmin -d gamecircle_logs -c event /Users/tangwei/event.dat
#如果命令不存在
進入mongodb/bin目錄執(zhí)行
#修改用戶權限
db.grantRolesToUser("gcadmin" , [ { role: "dbAdmin", db:"gamecircle_logs" } ])
#出現(xiàn)以下錯誤可能是磁盤空間不足
new file allocation failure
#阿里云mongo導出庫
1.進入docker mongo容器
2.進入/usr/local/mongodb/bin目錄
3.執(zhí)行命令:
./mongodump --host dds-2ze5256fdc7bf2c41.mongodb.rds.aliyuncs.com--port 3717 -d gamecircle_logs -u gcadmin -p gcadmin
4.打包命令:
tar -zcvf ./dump/gamecircle_logs.tar.gz ./dump/gamecircle_logs
5.退出docker容器
6.從docker容器復制文件
docker cp b96:/usr/local/mongodb/bin/dump/gamecircle_logs.tar.gz
/data/backup/mongodb/gamecircle_logs_201605091346.tar.gz
7.上傳到oss并下載到本地
/home1/ossupload.sh gamecircle_logs_201605091346.tar.gz
8.執(zhí)行恢復庫命令
mongorestore -h 10.205.20.8--port 27017-u gcadmin -p gcadmin -d gamecircle_logs --dir/Users/tangwei/gamecircle_logs –drop
#批量更新數(shù)據(jù)
db.point.find().forEach(
? ? function(item){
? ? ? ? db.point.update({"_id":item._id},{"$set":{"appVersion":item.version}},true)
? ? }
)
#刪除字段
db.point.update({},{$unset:{"version":""}},{multi:true})
#啟動鏡像
docker run -d -p 27017:27017 -v /volume1/docker/mongodb/data:/data/db --name mongodb mongodb /usr/local/mongodb/bin/mongod --auth
#mongod.conf配置
systemLog:
destination: file
path: /usr/local/mongodb/logs/mongodb.log
logAppend: true
storage:
dbPath: /data/db
journal:
enabled: true
mmapv1:
smallFiles: true
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/logs/mongod.pid
net:
port: 27017
security:
authorization: enabled
#創(chuàng)建用戶
use admin;
db.createUser({
? ? user: "root",
? ? pwd: "ymcx97973",
? ? roles: [{
? ? ? ? role: "root", db: "admin"
? ? },{
? ? ? ? role: "dbAdmin", db: "admin"
? ? },{
? ? ? ? role: "clusterAdmin", db: "admin"
? ? },{
? ? ? ? role: "userAdminAnyDatabase", db: "admin"
? ? }]
});
use gamecircle_logs;
db.createUser({
? ? user: "gcadmin",
? ? pwd: "gcadmin",
? ? roles: [{
? ? ? ? role: "readWrite", db: "gamecircle_logs"
? ? }]
});
#創(chuàng)建副本集鏡像,節(jié)點總數(shù)為奇數(shù)可以自動切換,為偶數(shù)時需要增加仲裁節(jié)點才能自動切換
docker run -d -p 27017:27017 -v /data/mongodb/replset/data1:/data/db -v /data/mongodb/backup/data1:/data/backup --name mongodb1 10.170.232.47:5000/mongodb306 /usr/local/mongodb/bin/mongod --keyFile /usr/local/mongodb/key --replSet replset
docker run -d -p 27018:27017 -v /data/mongodb/replset/data2:/data/db -v /data/mongodb/backup/data2:/data/backup --name mongodb2 10.170.232.47:5000/mongodb306 /usr/local/mongodb/bin/mongod --keyFile /usr/local/mongodb/key --replSet replset
docker run -d -p 27019:27017 -v /data/mongodb/replset/data3:/data/db -v /data/mongodb/backup/data3:/data/backup --name mongodb3 10.170.232.47:5000/mongodb306 /usr/local/mongodb/bin/mongod --keyFile /usr/local/mongodb/key --replSet replset
連接任意一臺mongo,使用admin庫并登錄admin用戶,執(zhí)行以下命令
use admin;
rs.initiate({
? ? "_id":"replset",
? ? "members": ? ?[{
? ? ? ? "_id": 0,
? ? ? ? "host": "10.170.232.47:27017"
? ? },
? ? {
? ? ? ? "_id": 1,
? ? ? ? "host": "10.170.232.47:27018"
? ? },
? ? {
? ? ? ? "_id": 2,
? ? ? ? "host":"10.170.232.47:27019"
? ? }]
});
在主服務器上進行副本集節(jié)點添加
rs.add("10.170.232.47:27019")
rs.conf();
在主服務器上進行副本集節(jié)點移除
rs.remove("10.170.232.47:27019")
rs.conf();
查看狀態(tài)
rs.status();