Який рекомендований спосіб резервного копіювання бази даних MySQL / Amazon RDS на S3?


31

Я маю для цього дві цілі:

  1. Для створення резервного резервного копіювання у випадку проблем із веб-сервісами Amazon в масштабі регіону.
  2. Щоб скопіювати виробничі дані з рахунку для виставлення рахунків на бета-рахунковий рахунок.

В даний час не видається, що Amazon підтримує будь-який із цих двох випадків використання поза коробкою.

Я бачив згадування mysqldump та xtrabackup (див. Пост форми ).

Я також бачив складніший процес ( тут задокументовано )

  1. Новий сервер RDS в обліковому записі джерела рахунків (prod) відключений недавньою резервною копією.
  2. Запускається новий екземпляр EC2, який має доступ до сервера RDS на кроці 1.
  3. mysqldump використовується для створення резервної копії цієї бази даних.
  4. Резервне копіювання копіюється в місце розташування (S3?).
  5. В окремому обліковому записі та / або регіоні запускається свіжий сервер RDS.
  6. Імпортується дамп бази даних.

Поради та рекомендації високо оцінені.

Відповіді:


22

Рекомендований спосіб резервного копіювання RDS - це автоматичне резервне копіювання та знімки БД . Знімки БД в основному такі ж, як і знімки EBS, які зберігаються в S3 поза кадром, але доступні лише в одному регіоні.

Якщо вам потрібна міжрегіональна відмова від помилок (хороший план!), Немає можливості відновити свої дані в іншому регіоні, не роблячи це "важким шляхом" з mysqldump. Ваші альтернативи - створити резервну копію, використовуючи mysqldump (повільний і жахливий для будь-якого набору даних розумного розміру) або налаштувати власний підлеглий на базі EC2 в іншому регіоні та створити резервну копію, використовуючи будь-який доступний метод (xtrabackup, знімки EBS тощо). Однак тоді ви повернетесь до керування власними екземплярами MySQL, тож ви можете повністю відмовитися від RDS.

Щодо моїх грошей, RDS не дає абсолютно жодних переваг і безліч недоліків у роботі, гнучкості та надійності. Я б запитав себе, яке значення надає вам RDS.


Для моїх поточних потреб mysqldump може працювати добре. Я не чекаю масових наборів даних, і я взагалі не потребую переміщення даних занадто швидко. Я сподіваюся, що RDS підтримає функцію відкручувати новий сервер із знімка в іншому обліковому записі. Ще однією корисною особливістю буде імпорт / експорт знімків з Amazon за допомогою S3 або їх сервера імпорту / експорту. У будь-якому випадку, дякую за відповідь.
Пітер Стівенс

4
Знімки RDS тепер можна скопіювати в інші регіони. Докладніше див. У цьому оголошенні та в цій документації .
Шеллі

9

У мене було те саме питання. Моє рішення полягало в тому, щоб написати простий сценарій bash . Однак він обмежений одним регіоном.

Ось сценарій, про який йдеться:

#!/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"

Я настійно рекомендую --sele-транзакцію під час запуску mysqldump
user1250

7

Тепер AWS RDS підтримує копіювання знімків міжрегіональних та між облікових записів, що дозволить вам виконати цілі, просто використовуючи RDS.

Ви все ще повинні використовувати метод дамп-скрипту, щоб отримати резервні копії на S3 в цей момент. Можливість використання S3-IA або Glacier була б хорошою з точки зору економії витрат, оскільки витрати на резервну копію RDS є на рівні S3 Standard або вище (змінюються залежно від db).


1
Існує м'який ліміт - 100 ручних знімків на один регіон, на рахунок.
Джуд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.