2011-10-06 17 views
9

वर्तमान में हम memcached में हमारे उपयोगकर्ता सत्र संग्रहीत कर रहे हैं, हमारे वेब ऐप्स PHP 5.3.6 और अपाचे 2.2.3 के साथ चल रहे हैं।एक मेमकैड सर्वर से दूसरे स्थान पर डेटा स्थानांतरित करें

हम अपने memcached सर्वर को बदल देंगे, मैं सोच रहा हूं कि एक तरीका है कि हम डेटा को एक memcached सर्वर से दूसरे स्थानांतरित कर सकते हैं ताकि उपयोगकर्ता सत्र अभी भी वहां हों। (डाउनटाइम को कम करने के लिए)

हालांकि मैंने अक्सर पूछे जाने वाले प्रश्न http://code.google.com/p/memcached/wiki/FAQ#How_can_you_dump_data_from_or_load_data_into_memcached से पढ़ा है? यह संभवतः ऐसा करना संभव नहीं है ... लेकिन मुझे उम्मीद है कि अगर किसी को यह हासिल करने के लिए कुछ टूल या कामकाज है।

धन्यवाद!

सादर

+0

इतने सारे डाउनवॉट क्यों? –

+0

:(सुनिश्चित नहीं है कि मैंने गलत अनुभाग पर पोस्ट किया है? – forestclown

+2

+1 अच्छे प्रश्न के लिए – servermanfail

उत्तर

3

आपका सबसे अच्छा शर्त शायद आपके सिस्टम है कि, जब कोई उपयोगकर्ता, दोनों नए सर्वर और पुराने एक में सत्र लिखते में कुछ कोड जोड़ने के लिए, और फिर उनके लिए समानांतर में चलाने के लिए है थोड़ी देर के बाद, पुराने सर्वर को बंद करें। इस तरह आप वास्तव में इसके आधार पर नए सर्वर को "गर्म" कर सकते हैं, और उसके बाद अधिकतर सत्रों को स्थानांतरित होने के बाद स्वैप कर सकते हैं।

आप अभी भी कुछ सत्र खो देंगे, लेकिन सबसे अधिक बार आने वाले आगंतुकों को कुछ भी नहीं दिखाई देगा क्योंकि उनके सत्रों को स्थानांतरित कर दिया जाएगा।

+0

धन्यवाद एम्बर, एक अच्छा सुझाव है। लेकिन मुझे संदेह है कि हम इस बिंदु पर हमारे कोड को ट्यून करने में सक्षम हैं। – forestclown

+1

फिर आप ' शायद इसे सिर्फ स्वैप करना होगा। मेमकैच को लगातार स्टोर होने के लिए डिज़ाइन नहीं किया गया है - अपनी वेबसाइट को डिज़ाइन करना सबसे अच्छा है ताकि आप memcache की सामग्री खोने को संभालने में सक्षम हो सकें (या यदि नहीं, तो बहु-मशीन मेमकैच क्लस्टर चलाएं ताकि आप पूरे क्लस्टर को खोए बिना व्यक्तिगत सर्वर को अंदर और बाहर घुमा सकते हैं) – Amber

+1

आप टीसीपीपीपी (http://code.google.com/p/tcpcopy/) को देखना चाहेंगे, यह आपको एक टीसीपी स्ट्रीम को विभाजित करने की अनुमति देगा आपके दोनों memcached सर्वर, नए और पुराने। – mikewied

12

यह memcached-tool के साथ संभव है।

memcached-tool 10.1.2.30:11211 dump | nc 127.0.0.1 11211 
+1

यदि आपको इसे ढूंढने की आवश्यकता है, तो memcached-tool डेबियन पर '/ usr/share/memcached/स्क्रिप्ट्स 'में पाया जाता है। – phirschybar

+0

मैंने कुछ स्कैन लिखा systemd का उपयोग कर स्टार्टअप पर इस प्रक्रिया को स्वचालित करने के लिए ripts। https://github.com/ticpu/tools/tree/master/memcached-replicate – TiCPU

+0

यह काम करता है, मैंने सफलतापूर्वक अपने memcache डेटा किसी भी मुद्दे के बिना किसी नए सर्वर पर स्थानांतरित कर दिया। – rayhan

संबंधित मुद्दे