Як я можу створити резервну копію багатогігабайтних баз даних у MySQL? Бонусні бали за швидше відновлення


11

У мене в MySQL база даних 4 Гб. Як я можу створити резервну копію? Крім того, чи є спосіб я прискорити процес відновлення у випадку, якщо мені потрібно відновитись?

В даний час я щовечора використовую роботу з кроном, яка вимагає mysqldumpскинути все, і я зберігаю 3 дні резервного копіювання.

Відповіді:


14

У MySQL у нас близько 90 Гб, тому ось кілька пропозицій:

  • Ви можете спробувати наступний дзвінок: mysqldump -u USER -pPASS --single-transaction -Q --databases foo bar(Використовуйте документи, щоб перевірити, чи працюють ці комутатори для вас.)
  • Якщо ви використовуєте тільки таблиці MYISAM, то копіювання бази даних на інший диск та націлення на нього також може бути альтернативою. Це не працюватиме з INNODB, оскільки він зберігає додатковий файл. Також вам потрібно це ретельно перевірити.
  • Увімкніть бінарні журнали та створіть резервну копію. (Це, напевно, мій улюблений!)
  • Установіть реплікацію та зробіть резервну копію на одному з ваших рабів, а потім нехай це наздогнає решту. Це досить приємно, коли він працює, але проблема в тому, щоб запустити його. Реплікація - це не задоволення від MySQL. :(
  • Чи підтримує вашу файлову систему знімки? Якщо це так, то це чудова можливість їх використовувати.
  • Використовуйте комерційне рішення, наприклад, Amanda .

10

Найкращим способом було б, не перериваючи нормальної роботи. Для високонадійних, стійких до відмов систем у вас є 2 БД, які зберігаються синхронізовано, і ви створюєте резервну копію вторинної. (наприклад, ця стаття як )

В іншому випадку прочитайте посібник : використовуйте myseldump, як зараз, або використовуйте сценарій mysqlhotcopy (використовуйте так само, як mysqldump), або зупиняйте БД і просто скопіюйте файли frm, MID, MYI (використовуючи rsync).

Я думаю, що механізм зупинки + копіювання файлів - це найшвидший процес, який ви збираєтеся отримати.


3

Якщо деякі ваші бази даних є лише для читання або модифіковані, вони рідко виділяють її як менш частий крон.


2

Щоб відповісти на ваше запитання - розширений_інсертний варіант працює добре для мене. Якщо у вас є достатньо ресурсів для відновлення, extension_insert вставить величезні шматки даних в один запит, що зробить відновлення швидше.


1

Ви дійсно повинні врахувати Xtrabackup Percona

Сценарій обгортки "inabackupex" може працювати з MyISAM, але для неблокуючої / онлайн резервної копії всі ваші таблиці повинні бути InnoDB.

Ура

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