Работа с резервными копиями в Битрикс24

Обновлено Обновлено: Опубликовано Опубликовано:

Мы рассмотрим процесс создания резервной копии как средствами веб-интерфейса, так и вручную (дамп базы данных и копирование файлов). Также мы выполним восстановление работы Битрикс24 с помощью созданных архивов.

Подразумевается, что у нас уже развернут портал Битрикс24. Иначе, читаем инструкцию Установка CRM Битрикс24 на Linux CentOS.

Резервное копирование

Мы рассмотрим два варианта создания резервной копии для портала Битрикс24 — посредством графического веб-интерфейса и с помощью командной строки Linux.

Веб-интерфейс

Входим в панель управления и переходим в разделы Рабочий стол - Настройки - Инструменты - Резервное копирование - Создание резервной копии. На вкладке Резервное копирование:

Переходим к вкладке Резервное копирование

... выбираем размещение копии и кликаем по Создать резервную копию:

Настраиваем размещение резервной копии и создаем ее

Начнется процесс:

Начало резервирования

Ждем его завершения. После, части архива будут помещены в каталог /home/bitrix/www/bitrix/backup.

Для автоматического резервного копирования переходим в разделы Рабочий стол - Настройки - Инструменты - Резервное копирование - Регулярное резервное копирование и включаем его. В настройках также можно выбрать хранение бэкапа на локальном компьютере или в облаке Битрикс.

Ручное резервное копирование

Чтобы сделать резерв Битрикс24, необходимо скопировать файлы портала Битрикс, а также создать дамп базы данных. Рассмотрим оба процесса по очереди.

1. Копирование файлов. Нам нужно скопировать содержимое каталога /home/bitrix/www, где /home/bitrix — базовый каталог установки Битрикс.

Ниже приведем различные примеры копирования.

а) простое копирование файлов:

cp -R /home/bitrix/www/* /backup/bitrix/www/

* в данном примере мы копируем содержимое каталога /home/bitrix/www в папку /backup/bitrix/www.

б) синхронизация файлов с помощью rsync:

rsync -avv /home/bitrix/www/ /backup/bitrix/www/

* в данном примере мы будем поддерживать в актуальном состоянии каталог /home/bitrix/www, копия которого будет храниться в папке /backup/bitrix/www.

в) создание архива:

tar -zcvf /backup/bitrix/archive.tar.gz /home/bitrix/www

* данная команда создаст архивный файл archive.tar.gz, сжав содержимое каталога /home/bitrix/www.

2. Создание дампа базы данных. Для начала, посмотрим имя базы данных:

cat /home/bitrix/www/bitrix/php_interface/dbconn.php | grep DBName

* где /home/bitrix — базовый каталог, куда установлен битрикс.

В моем примере строка вернула имя для базы bitrix_52, значит команда для создания дампа будет:

mysqldump -uroot -p bitrix_52 > /backup/bitrix/mysql.sql

* команда потребует ввести пароль от пользователя root (после установки веб-окружения битрикс24, пароль для суперпользователя был сохранен в файл /root/.my.cnf).

Подробнее о создании дампа mysql/mariadb.

3. Скрипт для резервного копирования. Для примера, приведем следующий скрипт:

  1. #!/bin/sh
  2. PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
  3.  
  4. fdate=`date +%Y-%m-%d`
  5. my_user='backup'
  6. my_password='backup123!'
  7. my_base='bitrix_52'
  8. path_backup='/backup/bitrix'
  9.  
  10. mysqldump -u$my_user -p$my_password $my_base | gzip > $path_backup/mysql/my_$fdate.sql.gz
  11. tar -zcf $path_backup/archive/ar_$fdate.tar.gz /home/bitrix/www

* где:

  • fdate — текущая дата. Подставляется в название файлов резервных копий.
  • my_user — пользователь для подключения к СУБД.
  • my_password — пароль для подключения к СУБД.
  • my_base — имя базы данных.
  • path_backup — путь до каталога, куда складываем резервные копии.

Данный скрипт выполнит архивирование файлов и создания дампа базы данных.

Восстановление

Прежде чем выполнить восстановление портала, необходимо установить веб-окружения Битрикс. Для этого можно воспользоваться инструкцией Установка CRM Битрикс24 на Linux (первый подраздел).

Мы рассмотрим процесс восстановления с помощью веб-интерфейса и с помощью командной строки Linux.

Веб-интерфейс

Резервные копии хранятся в каталоге <путь установки битрикс>/www/bitrix/backup. В нашем примере это /home/bitrix/www/bitrix/backup. Переносим все файлы резервных копий в данную папку.

Переходим в панель управления по адресу https://<IP-адрес битрикс>/bitrix/admin. Затем в Рабочий стол - Настройки - Инструменты - Резервное копирование - Список резервных копий. Среди списка находим ту, которую перенесли на сервер, кликаем по значку меню слева от нее и выбираем Восстановить:

Выбираем резервную копию для восстановления

В следующем окне нажимаем ДАЛЕЕ для начала восстановления:

Продолжаем восстановление данных

Начнется процесс:

Начало восстановления из резервной копии

После распаковки файлов, мастер предложит ввести данные для восстановления базы данных — по умолчанию он подставит значения из файла dbconn.php:

Переход к восстановлению базы данных

Начнется процесс восстановления базы данных:

Начало восстановления базы данных

Ручное восстановление

Ручное восстановление, как и создание резервной копии, делается в два этапа — копирование файлов портала и восстановление базы данных. Рассмотрим эти процессы.

1. Восстановление файлов. Необходимо восстановить содержимое каталога /home/bitrix/www — для этого переносим в него содержимое одного из архивов.

Если мы взяли архив, созданный с помощью веб-интерфейса, то он будет разбит на части, при этом, не совсем корректно для Linux или некоторых программ для работы с архивами (например, 7zip) — номера частям архива присваиваются 1, 2, 3 ... 200 ... N. Необходимо переименовать части таким образом, чтобы они могли правильно сортироваться по имени, то есть 1 в 001, 2 — 002, 22 — 022 и так далее. В название первого архива (который заканчивается на tar.gz) добавляем 000 — получим ...tar.gz.000. Теперь мы можем распаковывать архив, например, командой:

cat full_e92a233e.tar.gz* | tar -zxv -C /home/bitrix/

Если мы просто копируем данные, стоит обратить внимание, что в каталоге есть скрытые файлы, которые начинаются со знака точки. Команды переноса или копирования файлов, при использовании знака *, не учитывают скрытые данные — их нужно переносить отдельно. Поэтому если вы использовали именно такой подход для переноса данных, учитывайте данный нюанс.

После переноса данных, задаем права:

chown -R bitrix:bitrix /home/bitrix/www

* мы указали, что владелец каталога и всего его содержимого должен быть bitrix.

2. Восстанавливаем базу данных. Сначала смотрим содержимое файла dbconn.php:

cat /home/bitrix/www/bitrix/php_interface/dbconn.php

* где /home/bitrix — базовый каталог, куда был установлен битрикс24.

Нам интересны следующие значения:

  • $DBLogin — пользователь, под которым идет подключение к базе.
  • $DBPassword — пароль для подключения к базе.
  • $DBName — имя базы данных.

Подключаемся к базе:

mysql -uroot -p

* напоминаю, что после установки среды окружения битрикс24, пароль для суперпользователя mysql можно посмотреть командой cat /root/.my.cnf.

Создаем базу данных:

> CREATE DATABASE bitrix_52 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci;

* где bitrix_52 — имя базы, которая указана в переменной $DBName (файл выше).

Создаем пользователя для доступа к базе:

> CREATE USER 'bitrix0'@'localhost' IDENTIFIED BY 'rqHWvA1tepbFhu9G';

> GRANT ALL PRIVILEGES ON bitrix_52.* TO 'bitrix0'@'localhost';

* данные команды создадут пользователя bitrix0 с паролем rqHWvA1tepbFhu9G для доступа к базе bitrix_52. Какие именно данные вводить мы должны увидеть в файле dbconn.php выше.

Выходим из sql-оболочки:

> quit

Теперь переносим дамп на новый сервер и выполняем восстановление базы данных, например, командой:

mysql -u root -p bitrix_52 < /backup/bitrix/mysql.sql

* в данном примере мы восстановим базу bitrix_52 из дампа /backup/bitrix/mysql.sql.

Подробнее о восстановлении mysql или mariadb.

Возможные ошибки

Mysql query error: (1298) Unknown or incorrect time zone

Ошибка появляется в браузере при попытке открыть восстановленный портал.

Причина: при попытке выполнить команду SET GLOBAL time_zone в MySQL система не может найти в своей базе используемый часовой пояс.

Решение: загружаем информацию о часовых поясах в СУБД. Для этого просто выполним команду:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p

Мы можем получить предупреждения:

Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.

... игнорируем их.

После выполнения команды проблема должна исчезнуть.

# Linux # Резервное копирование # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет