My3 / Amazon RDS डेटाबेस को S3 में बैकअप करने के लिए अनुशंसित तरीका क्या है?


31

मेरे पास इसके लिए दो उद्देश्य हैं:

  1. अमेज़ॅन वेब सेवाओं के साथ क्षेत्र की व्यापक समस्या के मामले में एक ऑफसाइट बैकअप होना।
  2. उत्पादन डेटा को उत्पादन बिलिंग खाते से बीटा बिलिंग खाते में कॉपी करना।

वर्तमान में ऐसा प्रतीत नहीं होता है कि अमेज़न इन दोनों में से किसी एक मामले का समर्थन करता है।

मैंने mysqldump और xtrabackup ( फॉर्म पोस्ट देखें ) देखा है।

मैंने और भी जटिल प्रक्रिया देखी है ( यहाँ प्रलेखित है )

  1. स्रोत बिलिंग खाते (ठेस) में एक नया आरडीएस सर्वर हाल ही में बैकअप बंद हो गया है।
  2. एक नया EC2 उदाहरण सामने आया है जिसमें चरण 1 में RDS सर्वर तक पहुंच है।
  3. mysqldump का उपयोग इस डेटाबेस का बैकअप बनाने के लिए किया जाता है।
  4. बैकअप को ऑफसाइट लोकेशन (S3?) में कॉपी किया जाता है।
  5. एक अलग खाते और / या क्षेत्र में, एक नया आरडीएस सर्वर का उपयोग किया जाता है।
  6. डेटाबेस डंप आयात किया जाता है।

सुझावों और सुझावों की सराहना की है।

जवाबों:


22

RDS का बैकअप लेने का अनुशंसित तरीका स्वचालित बैकअप और DB स्नैपशॉट है । DB स्नैपशॉट मूल रूप से EBS स्नैपशॉट के समान होते हैं, जो पर्दे के पीछे S3 में संग्रहीत होते हैं, लेकिन केवल उसी क्षेत्र के भीतर उपलब्ध होते हैं।

यदि आपको क्रॉस-रीजन फ़ॉल्ट टॉलरेंस (अच्छी योजना!) की आवश्यकता है, तो किसी अन्य क्षेत्र में अपने डेटा को पुनर्स्थापित करने का कोई तरीका नहीं है, बिना किसी माइस्पेसडम्प के "कठिन रास्ता" के। आपके विकल्प mysqldump (किसी भी उचित आकार के डेटासेट के लिए धीमा और भयानक), या किसी अन्य क्षेत्र में अपने EC2- आधारित दास को सेट करने और किसी भी उपलब्ध विधि (xtrabackup, EBS स्नैपशॉट, आदि) का उपयोग करके वापस करने के लिए हैं। हालाँकि, फिर आप अपने खुद के MySQL इंस्टेंस को प्रबंधित करने के लिए वापस आ गए हैं, इसलिए आप RDS को पूरी तरह से छोड़ सकते हैं।

मेरे पैसे के लिए, आरडीएस वास्तव में किसी भी तरह से कोई लाभ नहीं प्रदान करता है और प्रदर्शन, लचीलेपन और विश्वसनीयता में कई नुकसान हैं। मैं खुद से पूछूंगा कि आरडीएस आपको क्या मूल्य प्रदान करता है।


मेरी वर्तमान जरूरतों के लिए mysqldump ठीक काम कर सकता है। मैं बड़े पैमाने पर डेटासेट की उम्मीद नहीं कर रहा हूं और मुझे आमतौर पर बहुत जल्दी स्थानांतरित होने वाले डेटा की आवश्यकता नहीं है। मुझे उम्मीद है कि RDS एक नए सर्वर को दूसरे खाते में स्नैपशॉट बंद करने के लिए एक सुविधा का समर्थन करेगा। एक अन्य उपयोगी विशेषता S3 या उनके आयात / निर्यात सर्वर का उपयोग करके अमेज़न से स्नैपशॉट को आयात / निर्यात करना होगा। वैसे भी, उत्तर के लिए धन्यवाद।
पीटर स्टीफंस

4
RDS स्नैपशॉट को अब अन्य क्षेत्रों में कॉपी किया जा सकता है। देखें इस घोषणा और इस दस्तावेज़ जानकारी के लिए।
शिला

9

मेरी भी यही समस्या थी। मेरा समाधान एक सरल बैश स्क्रिप्ट लिखना था । यह हालांकि एक ही क्षेत्र तक सीमित है।

यहाँ प्रश्न में स्क्रिप्ट है:

#!/bin/bash
NOWDATE=`date +%Y-%m-%d`
BACKUPNAME="$NOWDATE.sql.gz"

echo "Creating backup of database finances to $BACKUPNAME"
mysqldump user=user password=password database_name | gzip -9 > $BACKUPNAME

echo "Succesfully created database backup"

echo "Uploading backup to Amazon S3 bucket…"
s3cmd put $BACKUPNAME s3://path/to/file/$BACKUPNAME

echo "Successfully uploaded backup to S3"

echo "Deleting backup file…"
rm $BACKUPNAME

echo "Done"

जब मैं mysqldump
user1250

7

AWS RDS अब स्नैपशॉट के क्रॉस-क्षेत्र और क्रॉस-अकाउंट कॉपी का समर्थन करता है जो आपको RDS का उपयोग करके अपने लक्ष्यों को पूरा करने की अनुमति देगा।

आपको इस बिंदु पर S3 का बैकअप लेने के लिए अभी भी एक डंप स्क्रिप्ट विधि का उपयोग करना है। S3-IA या ग्लेशियर का उपयोग करने की क्षमता लागत बचत के संदर्भ में अच्छी होगी क्योंकि RDS बैकअप लागत S3 मानक या उच्चतर (db द्वारा भिन्न) हैं।


1
प्रति खाते में प्रति क्षेत्र 100 मैनुअल स्नैपशॉट की एक नरम सीमा है।
जूड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.