यदि आपके पास निम्न परिदृश्य है
- आपका सारा डेटा निर्दोष है
- आपके पास RDS पर बाइनरी लॉगिंग सक्षम है
आप इस तरह से RDS में एक उपयोगकर्ता बना सकते हैं
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
यदि अमेज़न होस्ट नाम के लिए '%' की अनुमति नहीं देता है, तो आपको एक सार्वजनिक आईपी पते की आवश्यकता होगी
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
इसके बाद, mysqldump डेटा को RDS से एकल लेन-देन के रूप में करता है
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
उपयोगकर्ता के रूप में leopd@'xxx.xx.xx.xxxx 'का उपयोग करके कमांड को चलाने के लिए चलाएँ (xxx.xx.xx.xxxx RDS का IP पता है)
CHANGE MASTER TO
master_host = 'xxx.xx.xx.xxxx',
master_port = 3306,
master_user = 'leopd',
master_passwowrd = 'repl_pass'
master_log_file='slsnbj',
master_log_pos=1;
डेटा को एक नए सर्वर में लोड करें। Master_log_file = 'slsnbj' और master_log_pos = 1 के बारे में चिंता न करें। डंप की लाइन 22 में सही लॉग फ़ाइल और स्थिति होगी।
स्टार्ट SL; नए सर्वर पर
यह काम करना शुरू कर देना चाहिए। आपको फ़ायरवॉल विचारों के बारे में चिंता करनी पड़ सकती है।
कोशिश करो !!!
अद्यतन 2012-03-23 17:11 EDT
आपके पास केवल एक मौका बचा है। देखें कि क्या आप इसके साथ अंतिम विशेषाधिकार सेट कर सकते हैं:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
शायद यह उन उपयोगकर्ताओं के लिए अवरुद्ध किया जा रहा है जिनके पास mysql.user के होस्ट कॉलम में% है।
जैसा कि मैंने पहले सुझाव दिया था, आपको एक कठिन सार्वजनिक आईपी के साथ एक और उपयोगकर्ता बनाने की आवश्यकता हो सकती है
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
यह संभव है कि आरडीएस में प्रतिकृति दास भी आरडीएस होना चाहिए।