mongodb修改oplog大小

liiinuuux發表於2015-04-03
將主庫降級成備庫
rs.stepDown()

關閉資料庫
db.shutdownServer()

以單機模式啟動
mongod --port 9999 --dbpath /opt/mongo/data

備份當前oplog(可選)
[root@db11 mongo]# mongodump --db local --collection 'oplog.rs' --port 9999
mongodump: /usr/lib64/libcrypto.so.10: no version information available (required by mongodump)
mongodump: /usr/lib64/libssl.so.10: no version information available (required by mongodump)
2015-03-17T16:25:46.210+0800    writing local.oplog.rs to dump/local/oplog.rs.bson
2015-03-17T16:25:46.211+0800    writing local.oplog.rs metadata to dump/local/oplog.rs.metadata.json
2015-03-17T16:25:46.212+0800    done dumping local.oplog.rs

登陸資料庫
> use local
switched to db local
> db = db.getSiblingDB('local')
local

下面操作是向temp裡存入oplog的最後一行
> db.temp.drop()
false
> db.temp.save( db.oplog.rs.find( { }, { ts: 1, h: 1 } ).sort( {$natural : -1} ).limit(1).next() )
WriteResult({ "nInserted" : 1 })
> db.temp.find()
{ "_id" : ObjectId("5507e88db747b826f8608222"), "ts" : Timestamp(1426578920, 1), "h" : NumberLong("6594803502965050820") }

移除現有oplog
> db = db.getSiblingDB('local')
local
> db.oplog.rs.drop()
true

建立新的oplog
> db.runCommand( { create: "oplog.rs", capped: true, size: (20 * 1024 * 1024 ) } )
{ "ok" : 1 }

把之前oplog的最後一行存入新的oplog
> db.oplog.rs.save( db.temp.findOne() )
WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("5507e88db747b826f8608222")
})
dbdb.oplog.rs.find()
{ "_id" : ObjectId("5507e88db747b826f8608222"), "ts" : Timestamp(1426578920, 1), "h" : NumberLong("6594803502965050820") }


重啟資料庫,加入複製集
> use admin
switched to db admin
> db.shutdownServer()

nohup mongod -f mongo.conf &


將當前主庫降為備庫
rs0:PRIMARY> rs.stepDown()
2015-03-17T16:45:00.108+0800 I NETWORK  DBClientCursor::init call() failed
2015-03-17T16:45:00.129+0800 E QUERY    Error: error doing query: failed
    at DBQuery._exec (src/mongo/shell/query.js:83:36)
    at DBQuery.hasNext (src/mongo/shell/query.js:240:10)
    at DBCollection.findOne (src/mongo/shell/collection.js:186:19)
    at DB.runCommand (src/mongo/shell/db.js:58:41)
    at DB.adminCommand (src/mongo/shell/db.js:66:41)
    at Function.rs.stepDown (src/mongo/shell/utils.js:1001:43)
    at (shell):1:4 at src/mongo/shell/query.js:83
2015-03-17T16:45:00.135+0800 I NETWORK  trying reconnect to 127.0.0.1:4001 (127.0.0.1) failed
2015-03-17T16:45:00.136+0800 I NETWORK  reconnect 127.0.0.1:4001 (127.0.0.1) ok
rs0:SECONDARY> 







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26239116/viewspace-1485431/,如需轉載,請註明出處,否則將追究法律責任。

相關文章