Гаряче резервне копіювання за допомогою Percona XtraBackup у додатку WordPress одним кліком

Зміст

  • Вступ
  • Передумови
  • Крок 1. Створіть користувача системи без права root
  • Крок 2. Перевірте механізм зберігання
  • Крок 3: Створіть користувача бази даних для резервного копіювання
  • Крок 4: Встановіть Percona XtraBackup
  • Крок 5. Створіть каталоги зберігання резервних копій
  • Крок 6. Створіть першу повну резервну копію
  • Крок 7. Створіть наступні додаткові резервні копії
  • Крок 8: Підготуйте файли резервної копії для відновлення бази даних
  • Крок 9: Відновіть базу даних
  • Подальші кроки

Вступ

Percona XtraBackup — це безкоштовна програма на основі MySQL, яка використовується для створення гарячих резервних копій. Він також відкритий. За допомогою Percona XtraBackup ви можете робити гарячі резервні копії запущених баз даних MySQL, MariaDB або Percona Server, не зупиняючи службу баз даних або роблячи її доступною лише для читання. Це важлива функція для багатьох онлайн-бізнесів.

Для баз даних, які використовують механізми зберігання InnoDB, XtraDB і HailDB, Percona XtraBackup може виконувати неблокуючі резервні копії. Для баз даних, які використовують механізми зберігання MyISAM, Merge та Archive, Percona XtraBackup також може виконувати резервне копіювання, коротко призупиняючи запис наприкінці процедури резервного копіювання.

У цій статті я покажу вам, як встановити та використовувати Percona XtraBackup для виконання повного та поступового гарячого резервного копіювання на сервері Vultr на основі програми WordPress One-Click. Ми виконаємо повне резервне копіювання та дві додаткові резервні копії, а потім відповідно відновимо базу даних до стану кожної з трьох резервних копій.

Передумови

Я припускаю, що ви розгорнули екземпляр сервера WordPress Vultr одним клацанням миші з нуля і ввійшли як root, використовуючи SSH.

Крок 1. Створіть користувача системи без права root

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

1) Створіть нового користувача. Замініть sysuserна власне ім’я користувача.

useradd sysuser

2) Встановіть пароль для нового користувача. Замініть sysuserна власне ім’я користувача.

passwd sysuser

3) Надайте права root для вашого нового користувача.

visudo

Знайдіть абзац нижче.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

Додайте рядок безпосередньо під цим абзацом, замініть sysuserйого власним іменем користувача.

sysuser     ALL=(ALL)     ALL

Збережіть і вийдіть.

:wq

4) Перейдіть на новий обліковий запис користувача.

logout

Потім скористайтеся обліковими даними нового користувача, щоб увійти з вікна терміналу.

Крок 2. Перевірте механізм зберігання

За замовчуванням логін користувача root MySQL зберігається на VPS у форматі /root/.my.cnf. Відобразіть пароль у своєму терміналі за допомогою наступної команди.

sudo cat /root/.my.cnf

Використовуйте облікові дані, що відображаються на екрані, щоб увійти в консоль MySQL.

mysql -u root -p

В оболонці MySQL виконайте наступне.

SHOW DATABASES;

Усі бази даних MySQL будуть відображені на екрані. База даних з назвою like wp5273512— це база даних WordPress, яку ми хочемо створити резервну копію. У наступній команді замініть wp5273512власною командою :

USE wp5273512;

Перевірте механізм зберігання для кожної таблиці:

SHOW TABLE STATUS\G

Ви побачите, що всі таблиці у вашій базі даних WordPress MySQL використовують механізм зберігання InnoDB, який ідеально підходить для виконання гарячого резервного копіювання за допомогою Percona XtraBackup.

Для будь-яких інших баз даних MySQL, які використовують механізм зберігання MyISAM, ми все ще можемо створити їх резервну копію за допомогою Percona XtraBackup, коротко призупинивши запис.

Крок 3: Створіть користувача бази даних для резервного копіювання

Перебуваючи в оболонці MySQL, використовуйте наступні команди, щоб створити виділеного користувача бази даних для резервного копіювання. Не забудьте замінити ім’я користувача xbuserта пароль бази даних xbpasswdсвоїми власними:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Надані вище привілеї необхідні для повної функціональності Percona XtraBackup. Ви можете видалити деякі з них для меншої функціональності та кращої безпеки. Для отримання додаткової інформації див. офіційний веб-сайт Percona XtraBackup .

Крок 4: Встановіть Percona XtraBackup

Ви можете досить легко встановити Percona XtraBackup із репозиторію Percona RPM:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

Крок 5. Створіть каталоги зберігання резервних копій

Спочатку вам потрібно додати користувача sysuserдо mysqlгрупи. Замініть sysuserна власне ім’я користувача.

sudo gpasswd -a sysuser mysql

Створіть каталог для зберігання повних резервних копій.

sudo mkdir -p /dbbackup/full/

Створіть інший каталог для зберігання додаткових резервних копій.

sudo mkdir -p /dbbackup/inc/

Змініть власника цих каталогів на користувача sysuserта групу sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Вийдіть, щоб ввести ці зміни в дію.

logout

Потім увійдіть sysuserзнову.

Крок 6. Створіть першу повну резервну копію

XtraBackup складається в основному з програми XtraBackup і innobackupexсценарію perl. Зазвичай ви можете використовувати innobackupexсценарій perl для виконання різних операційних процедур для зручності.

Введіть таку команду, щоб створити першу повну резервну копію. Не забудьте замінити ім’я користувача xbuserбази даних, пароль користувача бази даних xbpasswdі повний каталог резервної копії /dbbackup/full/своїми власними.

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

Якщо ця команда буде виконана правильно, ви побачите повідомлення підтвердження "innobackupex: завершено OK!" в останньому рядку виводу.

Усі щойно створені файли цієї повної резервної копії будуть зберігатися в каталозі з міткою часу під /dbbackup/full/. Наприклад, /dbbackup/full/2015-05-22_05-45-54.

Крок 7. Створіть наступні додаткові резервні копії

Введіть таку команду, щоб створити першу інкрементальну резервну копію. Відповідно замініть змінні в команді.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

Знову ви побачите "innobackupex: завершено OK!" в кінці виводу, коли команда успішно виконується. Файли резервної копії зберігатимуться в каталозі з міткою часу під /dbbackup/inc/.

Введіть таку команду, щоб створити другу інкрементальну резервну копію. Відповідно замініть змінні в команді.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

Після успіху ви побачите повідомлення "innobackupex: завершено OK!" повідомлення ще раз. Перевірте /dbbackup/inc/папку ще раз, щоб побачити файли резервної копії.

Крок 8: Підготуйте файли резервної копії для відновлення бази даних

Усі файли резервної копії бази даних необхідно підготувати, перш ніж їх можна буде використовувати для відновлення бази даних.

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

У кожному каталозі резервного копіювання є файл із назвою, xtrabackup_checkpointsякий містить тип резервної копії та порядкові номери журналу початку та кінця ( from_lsnі to_lsn). Ви можете використовувати ці цифри, щоб уточнити стратегію відновлення бази даних. Подивіться на приклади нижче.

У xtrabackup_checkpointsфайлі першої повної резервної копії я маю:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

У xtrabackup_checkpointsфайлі першої інкрементальної резервної копії я маю:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

У xtrabackup_checkpointsфайлі другої інкрементальної резервної копії я маю:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

Коротше кажучи, ви повинні виконувати кожну резервну копію зі збільшенням порядку lsn. Якщо послідовність lsn неповна або невпорядкована, ви можете втратити дані.

Примітка . Наступні команди містять три каталоги, замініть їх своїми.

Щоб відновити базу даних до стану першої повної резервної копії, потрібно підготувати файли резервної копії за допомогою такої команди:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Щоб відновити базу даних до стану першої інкрементальної резервної копії, потрібно підготувати файли резервної копії за допомогою таких команд:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Щоб відновити базу даних до стану другої інкрементальної резервної копії, необхідно підготувати файли резервної копії за допомогою таких команд:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Примітки :

Для інкрементного резервного копіювання ви повинні використовувати --redo-onlyпараметр для всіх, крім останньої інкрементної резервної копії. Тим не менш, використання цієї опції для останнього інкрементного резервного копіювання все ще нешкідливо для узгодженості ваших даних - це спричинить лише деяку затримку через відкат бази даних.

Остання команда кожного інкрементного сценарію необов’язкова, але рекомендована, оскільки вона прискорить відновлення.

Після підготовки зміни, записані у файлах інкрементного резервного копіювання, будуть додані до підготовлених базових файлів повної резервної копії, тому ви завжди повинні використовувати підготовлені файли повної резервної копії для відновлення вашої бази даних, незалежно від того, чи ви виберете повну резервну копію чи додаткову резервну копію.

Крок 9: Відновіть базу даних

Перш ніж ви зможете відновити свою базу даних, вам потрібно зупинити службу бази даних.

sudo service mysqld stop

Вам також потрібно очистити каталог бази даних. Ви можете перемістити поточні файли бази даних в інше місце для обережності.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

Відновіть свою базу даних за допомогою підготовлених файлів «повної резервної копії».

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

Оскільки процедура відновлення змінить власника каталогу бази даних, вам потрібно повернути його назад, mysql:mysqlщоб зробити його працездатним.

sudo chown -R mysql:mysql /var/lib/mysql

Перезапустіть службу бази даних.

sudo service mysqld start

Це воно. На цьому етапі ви можете відвідати свій сайт WordPress, щоб переконатися, що процес відновлення пройшов успішно.

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

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

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше