Каков рекомендуемый способ сделать резервную копию базы данных MySQL/Amazon RDS в S3?
-
16-10-2019 - |
Вопрос
У меня есть две цели для этого:
- Иметь резервную копию за пределами места в случае проблемы с широким регионом с веб -сервисами Amazon.
- Скопировать данные производства с производственного выставления счета на бета -биллинговый счет.
В настоящее время не кажется, что Amazon поддерживает любой из этих двух вариантов использования из коробки.
Я видел MySqldump и Xtrabackup (см. форма сообщение) упомянуто.
Я также видел более сложный процесс (документирован здесь)
- Новый RDS -сервер в исходной биллинговой учетной записи (PROD) вычеркнул недавнюю резервную копию.
- Развернут новый экземпляр EC2, который имеет доступ к серверу RDS на шаге 1.
- MySQldump используется для резервного копирования этой базы данных.
- Резервное копирование копируется в место за пределами места (S3?).
- В отдельной учетной записи и/или регионе завораживается свежий сервер RDS.
- Дамп базы данных импортируется.
Советы и предложения ценятся.
Решение
Рекомендуемый способ резервного копирования RDS с автоматические резервные копии а также Снимки БД. Анкет Снимки DB в основном такие же, как и снимки EBS, которые хранятся в S3 за кулисами, но доступны только в том же регионе.
Если вам нужна устойчивость к перекрестному региону (хороший план!), Невозможно восстановить ваши данные в другой регион не делая этого «трудного пути» из MySQldump. Ваши альтернативы-резервное копирование с использованием MySQldump (медленное и ужасное для любого набора данных разумного размера), или настроить собственный подчинен на основе EC2 в другом регионе и обратно, используя любой доступный метод (xtrabackup, снимки EBS и т. Д.). Тем не менее, тогда вы вернулись к управлению своими собственными экземплярами MySQL, так что вы можете полностью отказаться от RDS.
За мои деньги RDS не дает абсолютно никаких преимуществ в действительности и во многих недостатках в производительности, гибкости и надежности. Я бы спросил себя, какую ценность предоставляет вам RDS.
Другие советы
Я была такая же проблема. Моим решением было написать простой скрипт. Анкет Однако он ограничен одним регионом.
Вот сценарий, о котором идет речь:
#!/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"
AWS RDS теперь поддерживает перекрестную региону и перекрестный аккунт Копирование снимков что позволит вам выполнить свои цели просто с помощью RDS.
Вам все еще нужно использовать метод сценария дамп, чтобы получить резервное копирование на S3 на данный момент. Способность использовать S3-IA или Glacier была бы хорошей с точки зрения экономии затрат, поскольку затраты на резервное копирование RDS соответствуют стандарту S3 или выше (варьируются в зависимости от DB).