Назад | Перейти на главную страницу

Создание экземпляра локальной базы данных из моментального снимка RDS

Я использую большой экземпляр AWS RDS для производства. Я принимаю mysqldump каждый день в полночь. Но получение дампа mysql занимает слишком много времени, и веб-сайт не отвечает во время процесса дампа mysql. Вместо того, чтобы делать дамп mysql, теперь я делаю снимок БД каждый день.

Мой вопрос

Есть ли другой способ скопировать моментальный снимок дампа БД в локальный ящик, чтобы у меня была его резервная копия каждый день?

Я бы посоветовал проверить Percona XtraBackup (innobackupex). Убедитесь, что все ваши таблицы данных относятся к типу движка InnoDB, потому что MyISAM не поможет вам приблизиться к решению без блокировки всех таблиц.

XtraBackup может делать онлайн-резервную копию работающей базы данных с минимальным влиянием на производительность и минимальным временем блокировки. Прочтите документацию перед тем, как начать.

Если вам нужна полная резервная копия / моментальный снимок без каких-либо последствий, вы можете рассмотреть вариант установки главный-подчиненный с этими резервными копиями, сделанными на подчиненной машине. Однако немного сложнее и болезненнее настроить.

Вы также можете положиться на восстановление после сбоя InnoDB и сделать снимок EBS. Затем вы можете смонтировать эту файловую систему и восстановить с ней журналы транзакций InnoDB. Однако я не могу рекомендовать такой подход.

Обычный способ гарантировать, что вы получаете хорошие резервные копии, не мешая работе базы данных MySQL, - это использовать конфигурацию главный / подчиненный и принимать резервные копии с подчиненного устройства. Это могут быть даже два экземпляра MySQL на одной машине. В такой ситуации удар по производительности получает ведомый, а не ведущий.