Горячие резервные копии с Percona XtraBackup в приложении WordPress One-Click

Содержание

  • Вступление
  • Предпосылки
  • Шаг 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 One-Click с нуля и вошли в систему как 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 из 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 и innobackupexсценария perl. Обычно innobackupexдля удобства вы можете использовать скрипт perl для выполнения различных рабочих процедур.

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

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

При правильном выполнении этой команды вы увидите подтверждающее сообщение "innobackupex: выполнено ОК!" в последней строке вывода.

Все вновь созданные файлы этой полной резервной копии будут храниться в каталоге с меткой времени в /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: завершено ОК!" в конце вывода, когда команда выполняется успешно. Файлы резервной копии будут храниться в каталоге с меткой времени в /dbbackup/inc/.

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

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

В случае успеха вы увидите «innobackupex: завершено ОК!» сообщение снова. Проверьте /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, чтобы убедиться, что процесс восстановления прошел успешно.



Leave a Comment

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

Как установить платформу интернет-магазина LiteCart в Ubuntu 16.04

LiteCart является бесплатной платформой для покупок с открытым исходным кодом, написанной на PHP, jQuery и HTML 5. Это простой, легкий и простой в использовании софтвар для электронной коммерции.

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как установить Matomo Analytics на Fedora 28

Как установить Matomo Analytics на Fedora 28

Используете другую систему? Matomo (ранее Piwik) - это аналитическая платформа с открытым исходным кодом, открытая альтернатива Google Analytics. Источник Matomo размещен o

Как установить PHP 7.3 на веб-сервере Arch Linux

Как установить PHP 7.3 на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер с доступом Apache или Nginx Sudo. Команды требуют

Настройте сервер TeamTalk в Linux

Настройте сервер TeamTalk в Linux

TeamTalk - это система конференц-связи, которая позволяет пользователям вести высококачественные аудио / видео-беседы, текстовый чат, передавать файлы и обмениваться экранами. Это я

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Как получить доступ к Vultr VPS

Как получить доступ к Vultr VPS

Vultr предоставляет несколько различных способов доступа к вашему VPS для настройки, установки и использования. Учетные данные для доступа Учетные данные для доступа к вашему VPS по умолчанию

Как установить Ranger Terminal File Manager в Linux

Как установить Ranger Terminal File Manager в Linux

Ranger - это файловый менеджер на основе командной строки с привязками клавиш VI. Он предоставляет минималистичный и приятный интерфейс curses с видом на иерархию каталогов.

Как использовать HTTPS на веб-сервере Arch Linux

Как использовать HTTPS на веб-сервере Arch Linux

Предварительные условия Сервер Vultr, работающий до последней версии Arch Linux (см. Эту статью). Работающий веб-сервер, доступ к Apache или Nginx Sudo Требуются команды t

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Как собрать Brotli из исходного кода на Ubuntu 18.04 LTS

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем GZIP. Его исходный код размещен на этом Githu

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Отключить или ограничить root-вход через SSH в Linux

Отключить или ограничить root-вход через SSH в Linux

Разрешение входа в систему через SSH обычно считается плохой практикой безопасности во всей индустрии технологий. Вместо этого вы можете выполнять чувствительные административные

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Как установить Subrion 4.1 CMS на Ubuntu 16.04 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить DokuWiki на Ubuntu 16.04 LTS

Как установить DokuWiki на Ubuntu 16.04 LTS

Используете другую систему? DokuWiki - это вики-программа с открытым исходным кодом, написанная на PHP, для которой не требуется база данных. Хранит данные в текстовых файлах. DokuWik

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Создание внешнего интерфейса HTML 5 RDP / SSH с использованием гуакамоле в Ubuntu 16.04 LTS

Введение Цель этого руководства - избавиться от общедоступных соединений SSH и общедоступных RDP. Поместив все это за очень удобный клиент HTML5

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

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

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

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

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

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

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

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

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