Як збільшити швидке резервне копіювання та відновлення бази даних 500 ГБ за допомогою mysqldump?


10

Є база даних розміром 500 Гб. Таблиці в базі даних A містять таблиці MyISAM та INNODB. Таблиці MyISAM - це основні таблиці, а таблиці Innodb - основні таблиці транзакцій.

Резервне копіювання та відновлення за допомогою mysql-дампа, який триває тривалий час або дні.

  • max_allowed_packet = 1G
  • Foreign_key_checks = 0
  • auto_commit = вимкнено

1
Я просто хочу переконатися, що ви використовуєте --opt з утилітою mysqldump. Це ВЕЛИЧЕЗНА ЗАГАЛЬКА часу при перезавантаженні. без нього mysqldump створює файл sql рядок за рядком. --opt робить: додає блокування, скидання та відтворення з увімкненими усіма параметрами створення, тимчасово вимикає клавіші для швидкого перезавантаження, а потім вмикає клавіші в кінці для відновлення індексів після написання. Він об'єднує декілька рядків разом у вставках, щоб зменшити розмір файлів І час розбору кожного оператора (до 70%) і дозволяє - швидко зменшити навантаження на демпінгову БД під час роботи. скорочує час завантаження на 80%
ppostma1

Відповіді:


5

Але посилання також рекомендує XtraBackup від Percona, який швидше, без блокувань таблиць, які вже використовуються, і не отримує часу на відновлення. Для 500 ГБ даних я вважаю за краще Percona XtraBackup бути швидким та ефективним, якщо ви не хочете конвертувати їх у модель innodb_file_per_table, якщо вона не була з існуючого сервера БД. Нижче посилання пояснює, як діяти.

http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html


1
Проблема з Percona Xtrabackup полягає в тому, що для відновлення бази даних mysqld потрібно зупинити .
dr_

2

Ознайомтеся зі мною. Це набагато швидше, ніж mysqldump: Новий випуск mydumper 0.6.1 пропонує функції продуктивності та зручності використання

Завантажити можна тут: https://github.com/maxbube/mydumper

Що таке мідумпер? Чому?

  • Паралелізм (отже, швидкість) та продуктивність (уникає дорогих процедур перетворення набору символів, ефективного коду в цілому)
  • Легше керувати результатами (окремі файли для таблиць, дамп-метадані тощо), легко переглядати / аналізувати дані)
  • Послідовність - підтримує знімок у всіх потоках, забезпечує точну позицію головного і веденого журналу тощо
  • Керованість - підтримує PCRE для визначення включень та виключень бази даних і таблиць

1

Я думаю, що питання полягає в тому, як швидше відновити файли з дампами файлів mysqldump, а не іншим рішенням резервного копіювання.

Один із способів зробити це - це створити групи таблиць у вашій схемі та створити окремий користувач БД для кожної групи та використовувати дозволи MySQL, щоб заборонити вставляти таблиці для використання всіх, крім одного користувача БД.

Це перевірена, швидка, майже паралельна методика, але не на 100% впевнена, скільки часу знадобиться для відновлення з 500G. Але imho, вам потрібно щось паралельне. Для прикладу див. Посилання нижче.

Швидке, паралельне відновлення з дампів SQL (mysqldump) для MySQL


1

Спробуйте скористатись нижче:

innobackupex --parallel=7 --rsync  /var/mysql/backup

Ви можете змінювати паралельний номер процесу за своїм бажанням. Оскільки ви згадали, що у вас є таблиці myisam, параметр "rsync" допоможе пришвидшити створення резервних копій.

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