जैसा कि प्रश्न सभी को समन्वयित करने के लिए कहता है एक सर्वर से दूसरे सर्वर पर डेटा, मुझे लगता है कि आप अपेक्षाकृत सरल समाधान का उपयोग कर सकते हैं, जिसमें mysqldump
शामिल है ।
मुझे लगता है कि आप यह सब समर्पित सर्वर से कर सकते हैं:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
बदलें <username>
, <password>
, <port>
और <server 1 hostname>
सर्वर के लिए कनेक्शन विवरण के साथ 1. सर्वर 1 पर डेटाबेस के नाम से बदलें जिसे आप सर्वर 2 पर कॉपी करना चाहते हैं। यदि आप सभी डेटाबेस की प्रतिलिपि बनाना चाहते हैं, तो --all-डेटाबेस विकल्प से बदलें।
इससे dump.sql
नाम की एक फाइल बन जाएगी वर्तमान निर्देशिका में। फिर आप इसे सर्वर 2 में लोड कर सकते हैं:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
बदलें <username>
, <password>
, <port>
और <server 2 hostname>
सर्वर 2 के लिए कनेक्शन विवरण के साथ।
यह डंप.एसक्यूएल फ़ाइल लेगा, और इसे सर्वर 2 पर डेटाबेस में लोड करेगा। यह डेटाबेस को सर्वर 2 पर छोड़ देगा - इसलिए सभी मौजूदा डेटा को इसके साथ dump.sql
में बदल दिया जाएगा। ।
mysqldump के विकल्पों की जाँच करें (ड्रॉप डेटाबेस, ड्रॉप टेबल आदि के संबंध में) और उपरोक्त कमांड को अपनी स्थिति के लिए उपयुक्त बनाने के लिए तैयार करें। मुझे लगता है, अगर आप चीजों को सही तरीके से जोड़ते हैं, तो आप इंटरमीडिएट फ़ाइल को भी बायपास कर सकते हैं और सर्वर 1 पर mysqldump को सर्वर 2 पर एक सॉकेट का उपयोग करके MySQL से कनेक्ट कर सकते हैं।
इस प्रश्न के 'स्वचालित' भाग को कवर करने के लिए, आप उपरोक्त आदेशों को क्रॉन के तहत चला सकते हैं और उन्हें उपयुक्त समय पर हर महीने के पहले दिन चलाने के लिए शेड्यूल कर सकते हैं।