Другая сложность с переносом обычно сопряжена с необходимостью "подобрать" нужный набор опций резервного копирования: архивировать ядро, публичку, базу, установить время шага.
В связи с ростом популярности
В ближайших обновлениях функционал резервного копирования и восстановления будет существенно улучшен.
[spoiler]
Главная цель - дать пользователю возможность нажать на кнопку и получить результат без изучения документации. Вот как это будет выглядеть теперь:
После выбора одного из режимов выставляется необходимый набор параметров для полного резервного копирования и переноса. Вкладка "Расширенные" позволяет сделать тонкую настройку.
Но самые значительные изменения внутри: с нуля переписан класс архивации. Это позволило сделать проверку целостности архива и дробление архива на фрагменты. Значит теперь практически нет ограничений на совокупный объём данных (до сих пор было системное ограничение 2 Гб).
Система восстановления (restore.php) будет уметь последовательно скачивать все фрагменты архива и их распаковывать. В новой версии виртуальной машины этот функционал будет задействован.
Общий список доработок в порядке их значимости выглядит так:
- добавлена проверка целостности архива после создания (происходит попытка фиктивной распаковки без создания файлов и папок);
- архив автоматически будет разбиваться на части когда размер сжимаемых данных превысит 1 Гб (значение можно менять пока скрытой опцией главного модуля: dump_archive_size_max);
- создание архива прерывается если что-то пошло не так (теперь не должны появляться "битые" архивы с сообщением "успешно завершено");
- при восстановлении проверяется соответствие параметров mbstring (func_overload и internal_encoding) текущей кодировке сайта: однобайтовая или UTF-8, выводится предупреждение в случае несоответствия;
- при восстановлении выводится предупреждение, если в настройках одного из сайтов указан путь к корневой папке (в этом случае могут быть проблемы с доступом к публичной части);
- если настроена многосайтовость на разных доменах, можно выбрать сайт, публичная часть которого попадёт в архив. В этом случае имя архива будет содержать ID сайта;
- при создании дампа базы данных вырезается collation таблиц чтобы после восстановления все поля таблиц имели общее значение collation базы;
- можно установить шаг 5 секунд, при этом будут создаваться корректные резервные копии (со старым классом архивации могли возникать проблемы);
- можно принудительно отключить сжатие архива чтобы сделать архив на хостинге, где катастрофически ограничены ресурсы процессора (на таком хостинге следует делать бэкап только для последующего переноса на другой );
- улучшено информирование о текущей стадии в процессе создания бэкапа.
Всё это сделано для того чтобы вам как можно меньше нюансов требовалось знать для создания бэкапа и переноса на другой сервер.
Алгоритм переноса сегодня простой: открываем страницу резервного копирования, выбираем свой профиль, жмём "Архивировать", получаем архив (или несколько, если размер данных больше 1 Гб).
Забираем копии скрипт восстановления (restore.php) и кладём по ftp в корневую папку сайта на сервере, где будем восстанавливать. Если это виртуальная машина, надо просто выбрать пункт "Восстановление проекта".
Если получилось несколько фрагментов архива, то надо поочерёдно скачать и положить рядом с restore.php их все. Но гораздо удобнее будет воспользоваться функцией загрузки:
При этом надо будет указать имя первого фрагмента (без цифр). Скрипт скачает все части архива, распакует их, спросит данные подключения к БД.
Для нашей машины VMBitrix нужное значение будет выбрано по умолчанию, жмём "Восстановить". Через несколько минут получаем полную копию сайта.
Кроме этого обсуждается идея выделить часть функционала в отдельные файлы, затем подключать их в отдельном скрипте, наподобие такого, что
Фото:
а с ближнего можно?
Но вообще, отлично, что проверку целостности добавили.
2-3Гб потянет?
имею ввиду распаковку архива
Значит 2^31 * 512 = 2147483648 * 512 = 1 Тб
Будет мало, изменим на double
А учтено ли то, что при многосайтовости бекап создаётся в папке bitrix_personal ?
Путь к файлу-то другой будет!
Все архивы будут создаваться в папке "bitrix_personal" (которая определена в $ENV['BX_PERSONAL_ROOT']) текущего сайта.
Зря только время потратил на ожидание заливки гигабайтного архива на удаленный сайт по мегабитному каналу..
"Extracted file ... have incorrect file size ... Archive may be corrupted"
PS: Опция "Проверить целостность архива после завершения" была включена..
Используйте restore.php с последней обновленной версии продукта.