Горещи архиви с 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 с едно щракване. Ще извършим пълно архивиране и две инкрементални архиви и след това ще възстановим базата данни до състоянието на всяко от трите архива съответно.

Предпоставки

Предполагам, че сте разположили екземпляр на сървър на 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: Проверете механизма за съхранение

По подразбиране входът на MySQL root се записва на VPS в /root/.my.cnf. Покажете паролата във вашия терминал със следната команда.

sudo cat /root/.my.cnf

Използвайте идентификационните данни, показани на екрана, за да влезете в MySQL конзолата.

mysql -u root -p

В обвивката на MySQL изпълнете следното.

SHOW DATABASES;

Всички MySQL бази данни ще бъдат показани на екрана. Базата данни, наречена като, 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 от RPM хранилището на Percona доста лесно:

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 и innobackupexperl скрипта. Обикновено можете да използвате innobackupexperl скрипта за изпълнение на различни операционни процедури за удобство.

Въведете следната команда, за да създадете първото пълно архивиране. Не забравяйте да замените потребителското име 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, за да проверите дали процесът на възстановяване е бил успешен.


Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате 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

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате 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 е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече