В настоящее время у нас есть одна мощная база данных MySQL, на которой работают несколько сайтов с большим трафиком на Django, а также несколько сайтов электронной коммерции приличного размера. В результате мы имеем достаточно большое количество больших баз данных, использующих таблицы InnoDB и MyISAM.
К сожалению, мы недавно попали в стену из-за объема трафика, поэтому я настроил другой главный сервер, чтобы облегчить чтение / резервное копирование.
Сейчас я просто использую mysqldump с несколькими аргументами, и это хорошо ... до сих пор. Очевидно, что mysqldump - медленный и быстрый метод, однако я считаю, что мы переросли его использование. Теперь мне нужна хорошая альтернатива, и я изучал возможность использования утилиты Maatkits mk -rallel -dump или решения для создания снимков LVM.
Краткая короткая версия:
- У меня довольно большие базы данных MySQL, мне нужно сделать резервную копию
- Текущий метод, использующий mysqldump, неэффективен и медленен (вызывает проблемы)
- Рассматривая что-то вроде снимков mk -rallel-dump или LVM
Буду признателен за любые рекомендации или идеи - так как я должен заново делать то, что мы делаем, я скорее делаю это правильно / наиболее эффективно :).
источник
xtrabackup - хотя бы для innodb.
источник
Наиболее распространенным способом решения этой проблемы является настройка другого сервера MySQL, который может даже находиться на той же машине, и запуск репликации master / slave. Затем вы можете выполнить резервное копирование на ведомом устройстве, с нулевым воздействием на ведущее устройство.
источник
На EC2 EBS я сейчас использую xfs_freeze. Я рассматриваю возможность переключения на xtrabackup в какой-то момент, но когда я дал ему первый тестовый запуск, он был очень и очень жадным к процессору.
источник
Если вы выполняете репликацию базы данных, которая совместно используется приложениями, возникает очевидный вопрос: можно ли повысить производительность многих вещей, в том числе резервных копий, путем выделения серверов баз данных для приложений. Общий доступ это хорошо, пока это не так.
источник
Если вы храните свои таблицы MyISAM только по унаследованным причинам (вы не потрудились изменить их), вот что я использую, чтобы легко это исправить:
Вы можете исключить и включить базы данных с регулярным выражением awk, например, только dbs, начинающиеся со строчной буквы в моем примере выше. Это, конечно, заблокирует таблицы во время изменения.
Затем с помощью xtrabackup скопируйте всю базу данных прямо на другой сервер, не блокируя таблицы или не используя слишком много дискового ввода-вывода (после настройки ключей ssh rsa):
и затем вы можете полностью выполнить этап применения журнала и сохранить дисковое пространство, ввод-вывод и ЦП на рабочем сервере.
Percona Howto для использования xtrabackup
источник