एक गैर-अमेज़ॅन होस्ट के लिए RDS-MySQL दोहराएं?


16

मेरे पास अमेज़ॅन में आरडीएस उदाहरण के रूप में एक काफी बड़ा MySQL (5.1) डेटाबेस चल रहा है। मैं इसे अमेज़ॅन से बाहर स्थानांतरित करने पर काम कर रहा हूं। ऐसा करने के लिए, मैं नए हार्डवेयर को RDS उदाहरण की केवल पढ़ने वाली प्रतिकृति के रूप में सेट करना चाहूंगा।

मुझे पता है कि आरडीएस आरडीएस के भीतर प्रतिकृति का समर्थन करता है। क्या होस्ट को दोहराने के लिए इसे कॉन्फ़िगर करने का कोई तरीका है जो आरडीएस में नहीं है?


क्या आपका सारा डाटा InnoDB ???
RolandoMySQLDBA

मान लीजिए कि "हाँ, यह सब अंतरंग में है" - इस मंच के लिए पर्याप्त सत्य के करीब है। ;)
लियोपड

जवाबों:



8

ऐसा लगता है कि अमेज़ॅन ने इसे अभी के लिए मना किया है:

https://forums.aws.amazon.com/thread.jspa?threadID=46377&tstart=0


थ्रेड का अंत पुष्टि करता है कि 5.6 के साथ यह संभव है और इस ब्लॉग पोस्ट को इंगित करता है: ruempler.eu/2013/07/07/…
डिएगो एफ। डुरान

3

यदि आपके पास निम्न परिदृश्य है

  • आपका सारा डेटा निर्दोष है
  • आपके पास 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';

यह संभव है कि आरडीएस में प्रतिकृति दास भी आरडीएस होना चाहिए।


जब रूट के रूप में लॉग इन किया जाता है, तो GRANT REPLICATION SLAVEपरिणामERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
Leopd

कृपया चलाएं SHOW GRANTS। क्या आपके पास सभी विशेषाधिकार हैं ? ?
रोलैंडमाइसीडीडीबीए

यह आरडीएस रूट उपयोगकर्ता के रूप में चल रहा है, जिसमें सभी विशेषाधिकार हैं जो संभव हैं GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <snip> WITH GRANT OPTION:। ऐसा लगता है कि अमेज़ॅन बस इसकी अनुमति नहीं देता है।
दिसंबर को Leopd

आपके आखिरी कमेंट के आधार पर मेरा जवाब अपडेट किया गया ...
RolandoMySQLDBA

1
@ मूल पोस्टर (ओपी) ने 23 मार्च को इसका जवाब दिया: dba.stackexchange.com/a/15492/877
RolandoMySQLDBA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.