mongodb修改oplog大小
將主庫降級成備庫
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
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
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") }
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()
> 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
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB更改oplog大小MongoDB
- MongoDB oplog詳解MongoDB
- MongoDB單機開啟oplogMongoDB
- MongoDB 如何保證 oplog 順序?MongoDB
- Mongodb 複製的紐帶–OplogMongoDB
- mongodb線上調整Oplog Size的值MongoDB
- MongoDB Oplog中的欄位介紹MongoDB
- MongoDB journal 與 oplog,究竟誰先寫入?MongoDB
- mongodb 基於oplog的時間點恢復MongoDB
- MongoDB案例分享:如何使用oplog恢復資料MongoDB
- MongoDB如何查oplog.rs集合裡的操作日誌MongoDB
- MongoDB Primary 為何持續出現 oplog 全表掃描?MongoDB
- /dev/shm大小修改dev
- 修改/dev/shm的大小dev
- mongodb如何不區分大小寫MongoDB
- 修改vnc解析度大小VNC
- 修改上傳檔案大小
- 修改oracle redo log的大小Oracle Redo
- 剖析後OpLog訂閱MongoDB的資料變更就沒那麼難了MongoDB
- Pypycharm修改程式碼字型大小及修改顏色PyCharm
- Android中TabLayout修改字型大小AndroidTabLayout
- Spring tool suite修改字型大小SpringUI
- 微信小程式修改switch元件大小微信小程式元件
- 【VNC】修改VNC解析度大小VNC
- OGG 修改trail 檔案的大小AI
- Android EditText 修改提示字型的大小Android
- 修改Oracle資料庫表的大小Oracle資料庫
- 如何檢視MongoDB分片chunksize的值的大小MongoDB
- MongoDB之資料更新(修改器)MongoDB
- mongodb異機做時間點恢復(基於時間範圍查詢匯出oplog)MongoDB
- 修改SVG圖片的大小和顏色SVG
- 修改OracleLinux共享記憶體的大小OracleLinux記憶體
- 線上修改重做日誌檔案的大小
- 修改Oracle重做日誌檔案的大小Oracle
- 線上修改redo.log檔案的大小
- 監聽視窗大小改變,同時根據視窗大小修改某個元素的大小
- git提交時支援檔名大小寫的修改Git
- phpmyadmin匯入資料庫大小限制修改PHP資料庫