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

Гаряче резервне копіювання за допомогою 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, щоб переконатися, що процес відновлення пройшов успішно.


Встановіть Plesk на CentOS 7

Встановіть Plesk на CentOS 7

Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних

Установіть Lets Encrypt SSL у програму WordPress одним клацанням миші

Установіть Lets Encrypt SSL у програму WordPress одним клацанням миші

Вступ Lets Encrypt — це служба центру сертифікації, яка пропонує безкоштовні сертифікати TLS/SSL. Certbot спрощує процес встановлення,

Як налаштувати сервер Tekkit Classic на Ubuntu 16.10

Як налаштувати сервер Tekkit Classic на Ubuntu 16.10

Використання іншої системи? Що таке Tekkit Classic? Tekkit Classic — це модпак для гри, яку всі знають і люблять; Майнкрафт. Він містить деякі з вер

Як встановити та налаштувати PHP 7.0 або PHP 7.1 на Ubuntu 16.04

Як встановити та налаштувати PHP 7.0 або PHP 7.1 на Ubuntu 16.04

PHP та пов’язані з ним пакети є найбільш часто використовуваними компонентами під час розгортання веб-сервера. У цій статті ми дізнаємося, як налаштувати PHP 7.0 або PHP 7.1 o

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити

Три безкоштовні панелі керування сервером (швидке встановлення)

Три безкоштовні панелі керування сервером (швидке встановлення)

1. Virtualmin/Webmin Virtualmin — це потужна та гнучка панель керування веб-хостингом для систем Linux та UNIX на основі відомої веб-бази з відкритим вихідним кодом.

Налаштування програми Yii на Ubuntu 14.04

Налаштування програми Yii на Ubuntu 14.04

Yii — це PHP-фреймворк, який дозволяє розробляти програми швидше та легше. Установка Yii на Ubuntu проста, як ви дізнаєтеся

Використання Screen в Ubuntu 14.04

Використання Screen в Ubuntu 14.04

Screen — це програма, яка дозволяє багаторазово використовувати термінальні сеанси в одному вікні. Це дозволяє моделювати декілька вікон терміналу, де це ma

Використання Logrotate для керування файлами журналу

Використання Logrotate для керування файлами журналу

Вступ Logrotate — це утиліта для Linux, яка спрощує адміністрування файлів журналів. Зазвичай він запускається раз на день через завдання cron і керує базою журналів

Як встановити Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Як встановити Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої

Як встановити Vanilla Forum на Ubuntu 16.04

Як встановити Vanilla Forum на Ubuntu 16.04

Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд

Як встановити Kanboard на Ubuntu 18.04 LTS

Як встановити Kanboard на Ubuntu 18.04 LTS

Використання іншої системи? Вступ Kanboard — це безкоштовна програма з відкритим вихідним кодом для управління проектами, яка призначена для полегшення та візуалізації

Як встановити Gitea на Ubuntu 18.04

Як встановити Gitea на Ubuntu 18.04

Використання іншої системи? Gitea — це альтернативна система контролю версій із відкритим вихідним кодом, яка працює на базі git. Gitea написана на Голанг і є

Встановлення Docker CE на Ubuntu 16.04

Встановлення Docker CE на Ubuntu 16.04

Використання іншої системи? Docker — це програма, яка дозволяє розгортати програми, які запускаються як контейнери. Це було написано в популярному програмі Go

Виправлення експлойту Dirty Cow на CentOS

Виправлення експлойту Dirty Cow на CentOS

Що таке Dirty Cow (CVE-2016-5195)? Уразливість Dirty Cow використовується через те, як Linux обробляє код. Це дозволяє непривілейованому користувачеві використовувати gai

Налаштуйте користувача без права root за допомогою Sudo Access в Ubuntu

Налаштуйте користувача без права root за допомогою Sudo Access в Ubuntu

Наявність лише одного користувача, який є root, може бути небезпечним. Тож давайте це виправимо. Vultr надає нам свободу робити з нашими користувачами та нашими серверами, що нам заманеться

Встановіть Adminer на Debian/Ubuntu

Встановіть Adminer на Debian/Ubuntu

Adminer — це легка альтернатива phpMyAdmin. Для порівняння, його загальний розмір пакета становить 400 КБ проти 4,2 МБ phpMyAdmin. На відміну від phpMyAdmin, який

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться

Як встановити Nextcloud на Ubuntu 17.04

Як встановити Nextcloud на Ubuntu 17.04

У цьому посібнику ви навчитеся інсталювати програмне забезпечення NextCloud. Ми будемо використовувати Caddy для потреб нашого веб-сервера, оскільки це спрощує налаштування

Як встановити GoAccess на Ubuntu 16.04

Як встановити GoAccess на Ubuntu 16.04

Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або

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

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

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

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. Прочитайте цю статтю, щоб дізнатися більше