SQLite3 को एम्बेड करने वाले एप्लिकेशन में और इन-मेमोरी डेटाबेस का उपयोग करता है, क्या यह एप्लिकेशन के दो चल रहे उदाहरणों के बीच डेटाबेस को दोहराना संभव है? मैं इसे अपने सभी डीबी एक्सेसों को डुप्लिकेट करने वाले होमब्रू प्रोटोकॉल के साथ हाथ से कर सकता हूं, लेकिन ऐसा लगता है कि डीबी परत के अंदर कुछ किया जाना चाहिए।SQLite समर्थन प्रतिकृति करता है?
उत्तर
ब्रूट फोर्स दृष्टिकोण: डेटा का टेक्स्ट प्रस्तुति बनाने के लिए इसे ".dump" कमांड भेजें। उस डेटा को दूसरे डेटाबेस में पढ़ें। सुनिश्चित नहीं है कि आप इसका उपयोग कर सकते हैं।
आप एक ठीक छोटाबीजवाला अद्यतन (अन्य प्रतिलिपि तक प्रत्येक की प्रतिलिपि भेजने) की जरूरत है, sqlite3_update_hook
पर एक नजर है लेकिन आप कैसे त्रुटियों को संभालने के लिए योजना बनाई है? उदाहरण के लिए, क्या होता है जब ऐप 2 में डीबी की प्रति किसी कारण से अपडेट नहीं कर सकती है?
इसे हल करने के लिए, डेटाबेस को सर्वर प्रक्रिया में ले जाएं और दो ऐप्स इससे बात करें।
नहीं, ऐसा इसलिए नहीं है क्योंकि परियोजना का दायरा एक सरल इन-प्रोसेस डेटाबेस है। लेकिन चूंकि डेटाबेस केवल एक फ़ाइल है, इसलिए आप सादा फ़ाइल कॉपी ऑपरेशंस, rsync या कुछ समान के आधार पर अपनी खुद की प्रतिकृति स्क्रिप्ट लिख सकते हैं।
यदि आप वास्तव में एक SQLite आधारित क्लाइंट/सर्वर प्रकार आरडीबीएमएस चाहते हैं, तो आप SQLiteDBMS पर एक नज़र डाल सकते हैं।
यदि आप इन-मेमोरी डेटाबेस में प्रतिकृति चाहते हैं तो आपको berkeley DB (BDB) पर देखने की आवश्यकता है। हालांकि बीडीबी के लिए डेटा मॉडल स्ट्रिंग-स्ट्रिंग डिक्शनरी है, इसलिए आप एसक्यूएल की लचीलापन खो देते हैं। इसके अलावा इसमें तीन क्लॉज लाइसेंस हैं, इसलिए यदि आपकी परियोजना वाणिज्यिक है तो आपको लाइसेंस प्राप्त करने की आवश्यकता है।
यूनिसन? सबसे अच्छा आप गर्म स्पेयर था हालांकि कर सकते थे, क्योंकि एक monolithic फ़ाइल में SQLite डीबी। आप दो "उदाहरण" के बीच राउंड-रॉबिन नहीं कर सके। हॉट स्पेयर बुरा नहीं है, आप बस बिना किसी परेशानी के अन्य ऐप + डीबी उठाते हैं, MySQL मास्टर-गुलाम या सक्रिय-निष्क्रिय की तुलना करें जहां कुछ मैन्युअल हस्तक्षेप है जो आसान नहीं है। MySQL प्रतिकृति एसक्यूएल के आसपास गुजरती है, न कि सिर्फ एकजुट/rsync की तरह diffs। लेकिन एकजुट होने के साथ आपके पास मास्टर-मास्टर है।
Lsyncd - Live Syncing (Mirror) Daemon यहां उपयोग किया जा सकता है। यह फ़ाइल स्तर पर निरंतर प्रतिकृति करने के लिए rsync का उपयोग करता है।
यह संभवतः लाइव चलने वाले डेटाबेस के लिए एक अच्छा विचार नहीं है। इसके परिणामस्वरूप दास डेटाबेस दूषित हो सकता है यदि यह लेनदेन के दौरान प्रतिकृति करता है। –
वहाँ 2 विकल्प डीबी परत के अंदर कार्यान्वित कर रहे हैं:
litereplica (एक दिशा प्रतिकृति, वास्तविक समय वृद्धिशील बैकअप)
{ Characteristics: [
"replica db is binary equivalent of main db when synchronized",
"replica db is read-only",
"all the db is replicated" ],
Split Brain: "not applicable, as it is single master",
Additional Features: "Point-in-time recovery, encryption using ChaCha",
Interface: "native SQLite. Existing wrappers for SQLite can be used",
Notes: "does not support WAL",
License: "commercial" }
litesync (बहु मास्टर प्रतिकृति और तुल्यकालन)
{ Characteristics: [
"can write to the db even when it is off-line",
"fast (first write to local db, then synchronize using a worker thread)",
"avoids insert id collisions using modified rowids" ],
Split Brain: "does not occur because it uses a star topology",
Additional Features: "encryption using ChaCha",
Interface: "native SQLite. Existing wrappers for SQLite can be used",
Notes: "use attached db for replication of only some tables",
License: "commercial" }
आपके उत्तर के लिए धन्यवाद। मैंने आपके द्वारा लिटेरेप्लिका के बारे में उल्लेख किए गए लिंक को पढ़ा और इसे डाउनलोड किया। हालांकि, मास्टर गुलाम को स्थापित करने के बारे में पर्याप्त जानकारी नहीं है (ईमानदारी से, मैंने इसे पहले कभी नहीं किया है, इसलिए मैं थोड़ा उलझन में हूं) .. क्या आपके पास इसके बारे में कुछ और जानकारी है या इसके बारे में एक ट्यूटोरियल है? धन्यवाद – mOna
वेबसाइट पर वीडियो की जांच करें। – malhal
बॉक्स के बाहर, नहीं।
SQLite सिंक: https://ampliapps.com/sqlite-sync/ यह एक आकर्षक लगता है, क्योंकि यह अन्य डेटाबेस के साथ-साथ SQLite को दोहराने कर सकते हैं, और SQLite इंजन संशोधित नहीं करता तीसरे पक्ष के विकल्पों में से एक छोटा सा संख्या में हैं। मैंने अभी तक कोशिश नहीं की है।
लाइट्रेप्लिका: http://litereplica.io/ केवल एक ही रास्ता। ऐसा लगता है कि थोड़ा सा रहा है।
लाइटसिंक: http://litesync.io/ दो-तरफा प्रतिकृति। बहुत नया, लेकिन Litereplica का एक विकास शायद यह दिखाई देने से अधिक परिपक्व है।मैंने इसे थोड़ा सा करने की कोशिश की है और यह कुछ बग्स के साथ आसानी से काम करता प्रतीत होता है जो डेवलपर देख रहा है। आपको डेवलपर के संशोधित SQLite इंजन का उपयोग करना होगा, जो एक संबंधित निर्भरता जैसा प्रतीत होता है। आपको भी ज्यादा नियंत्रण नहीं मिलता है, उदा। आप डेटाबेस को फिर से खोलने के बिना अभी दोहराना नहीं कह सकते हैं।
- 1. SQLite समर्थन SCOPE_IDENTITY करता है?
- 2. क्या एकाधिक डेटाबेस में SQLite समर्थन लेनदेन करता है?
- 3. SQLite समर्थन स्टोर प्रक्रिया
- 4. एसओआरएम में SQLite समर्थन?
- 5. प्रतिकृति
- 6. SQLite समर्थन में क्या शामिल है?
- 7. लॉगबैक समर्थन log4j appenders समर्थन करता है?
- 8. क्या कोई अच्छा ओआरएम (अधिमानतः जेपीए कार्यान्वयन) है जो SQLite (एंड्रॉइड पर) का समर्थन करता है?
- 9. github समर्थन precommithooks करता है?
- 10. स्क्वाक समर्थन नामस्थान करता है?
- 11. टाइपस्क्रिप्ट समर्थन नेमस्पेस करता है?
- 12. एंड्रॉइड समर्थन jquery करता है?
- 13. SQLite समर्थन में डेटाटाइप क्या हैं एंड्रॉइड
- 14. एसक्यूएल एज़ूर प्रतिकृति
- 15. SQLite
- 16. जावा समर्थन और ऑटोबॉक्सिंग का समर्थन क्यों नहीं करता है?
- 17. जीसीसी समर्थन नग्न कार्यों का समर्थन क्यों नहीं करता है?
- 18. क्या tryhaskell.org समर्थन परिभाषाओं का समर्थन करता है?
- 19. क्या स्कैला समर्थन पूंछ रिकर्सन ऑप्टिमाइज़ेशन का समर्थन करता है?
- 20. SQLite ब्रैकेट "काम नहीं करता"
- 21. क्लोजरस्क्रिप्ट प्रतिकृति
- 22. क्या एसक्यूएलकेमी कैशिंग का समर्थन करता है?
- 23. क्या फैंटॉमजेएस कुकीज़ का समर्थन करता है?
- 24. क्या मोनो एक्सएएमएल का समर्थन करता है?
- 25. क्या OpenRasta मोनो का समर्थन करता है?
- 26. एंड्रॉइड 3.0 वेबसाकेट का समर्थन करता है?
- 27. क्या हेरोोकू PHP का समर्थन करता है?
- 28. रूबी एकाधिक विरासत का समर्थन करता है
- 29. एंड्रॉइड समर्थन क्या क्रिप्टो एल्गोरिदम करता है?
- 30. क्या cocos2d एआरसी का समर्थन करता है?
ठीक है, तो sqlite3_update_hook एक पंक्ति-दर-पंक्ति स्तर पर लेयरिंग के लिए मेरा प्रारंभिक बिंदु होगा। यह बहुत उपयोगी है, धन्यवाद। अन्य बिंदुओं के जवाब में, मैं उन चीजों से बचता हूं जिन्हें आवेदन के कुछ जादू गुणों द्वारा सम्मिलित नहीं किया जा सकता है। केंद्रीय डीबी की बजाय दो अलग-अलग उदाहरणों की इच्छा एक मजबूती से वितरण की आवश्यकता से प्रेरित होती है, और स्क्लाइट सिस्टम संसाधन सीमा द्वारा संचालित होता है। – kdt
ठीक है। बस सुनिश्चित करें कि दोनों प्रतियां एक ही समय में स्मृति/डिस्क स्थान से बाहर हो जाती हैं, आदि –
यह एक गंभीर उत्तर की तरह प्रतीत नहीं होता है। हां आप अंततः इसे स्वयं बना सकते हैं, लेकिन यह विश्वसनीय बनाने के लिए एक बड़ा उपक्रम होगा। –