प्रतिकृति प्रक्रिया विफल हो जाती है भले ही आप द्वितीयक पर एक नए dbpath से खरोंच शुरू करते हैं। तो बात यह है कि oplog में कुछ बदलाव करने हैं । ओप्लोग का आकार एक इष्टतम मूल्य पर सेट किया जाना चाहिए, ताकि यह उस में लिखे गए सभी एप्लिकेशन को संभालने में सक्षम हो।
बढ़ती हुई अफीम का आकार:
प्राथमिक सर्वर को बंद करें
use admin
db.shutdownServer()
स्टैंडअलोन के रूप में प्राथमिक शुरू करें और 37017 अलग-अलग पोर्ट पर चलाएं
37017 पोर्ट में मोंगो में लॉगिन करें
mongo --port 37017
स्थानीय डेटाबेस में पुरानी सामग्री निकालें
सुरक्षा के लिए छोड़ने से पहले पुराने ओप्लॉग का बैकऑप करें
mongodump --db local --collection 'oplog.rs' --port 37017
स्थानीय डेटाबेस में पुरानी सामग्री छोड़ें
use local
db.oplog.rs.drop()
db.me.drop()
db.replset.election.drop()
db.replset.minvalid.drop()
db.startup_log.drop()
संकलन संग्रह को छोड़ा नहीं जा सकता, इसलिए इसे आवश्यक आईडी से हटा दें:
db.system.replset.remove({ "_id" : "your_replsetname"})
50 GB का कहना है कि आवश्यक आकार का एक नया oplog बनाएँ
db.runCommand( { create: "oplog.rs", capped: true, size: (50 * 1024 * 1024 * 1024) } )
इसके अलावा आप mongod.conf फ़ाइल में MB में ओप्लोग का आकार निर्दिष्ट कर सकते हैं, 50 GB के लिए 429496 MB कह सकते हैं
replication:
oplogSizeMB: 429496
उम्मीद है की यह मदद करेगा !!!
संपादित करें:
जैसा कि निकोलस टोले कॉटरेल ने टिप्पणियों में उल्लेख किया है। MongoDB संस्करण 3.6 में हम बिना पुनरारंभ किए रनटाइम आकार में अफीम का आकार बदल सकते हैं।
वर्तमान oplog आकार की जाँच करें
use local
db.oplog.rs.stats().maxSize
अफीम के आकार को 10 जीबी में बदलने के लिए
db.adminCommand({replSetResizeOplog: 1, size: 10000})