Бэкап (резервное копирование) базы данных сайта необходим для восстановления всех информационных данных на сайте - товары, инфо страницы, настройки шаблонов и модулей, права пользователей, заказы и др.

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

Перечислю здесь три простых метода бэкапирования базы данных:

Итак, начнем с самого простого, но не очень стабильного способа.

Резервное копирование стандартными средствами Opencart 3

Инструмент находится в административной панели в разделе Система — Обслуживание — Бэкап и восстановление.

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

В окошке Таблицы для экспорта данных в файл .sql по умолчанию отмечены все таблицы, находящиеся в вашей БД, если разбираетесь, то после установки дополнительных расширений стоит проверить наличие новых таблиц в этой выгрузке. Для выгрузки нужно нажать кнопку Экспорт и копия базы сохранится на вашем компьютере в виде файла с расширением «sql», открыть его можно любым текстовым редактором.

Не обязательно выгружать все подряд, опять же, если разбираетесь, то можно отметить только необходимые таблицы, в которых проводятся изменения. Я рекомендую выгружать все подряд, потому что зависимости в таблицах не всегда очевидны и если сохранять не все таблицы, то можно упустить из виду таблицу, которая хранит некую зависимость и тогда восстановление может провалиться.

На вкладке Восстановление можно восстановить базу данных, загрузив скачанный на предыдущей вкладке дамп. Для этого нужно нажать кнопку Импорт и выбрать на своем компьютере сохраненный файл «sql», загрузка отобразится в поле Процесс.

Данный способ уступает следующим по своей стабильности, может перестать работать при очень большом количестве установленных расширений и при очень большом количестве товаров (встречал такую проблему на сайтах с 10000+ товаров). В этой ситуации нужно вносить корректировки в саму базу данных через phpMyAdmin, а также дополнительно настраивать сервер на прием больших дампов. Напишу об этом позже в разделе Решение проблем.


Резервное копирование базы данных вручную через phpMyAdmin

Этот способ наиболее кардинален, но доставит вам хлопот, т.к. все происходит вручную.

Идем в phpMyAdmin, попасть туда всегда можно из панели управления хостингом, на разных панелях по-разному, но с наибольшей вероятностью присутствует на всех хостингах на которых работает сервер баз данных MySQL. Рекомендую сохранить адрес панели в закладках, чтобы не заходить каждый раз на хостинг и в панель управления. Для входа используется имя пользователя и пароль, которые используются сайтом для подключения к БД. (подмотреть можно в файле config.php в корне сайта на сервере).

Внутри phpMyAdmin выбираем нашу базу данных

Идем во вкладку Эспорт и выбираем способ экспорта Быстрый — этот способ включает в себя настройки по умолчанию, их нам будет достаточно.

Экспортируем дамп нашей БД нажатием кнопки ОК, на локальный компьютер сохранится файл с резервной копией базы данных в уже знакомом нам формате SQL.

После этого нужно очистить от значений таблицы в существующей базе данных

ВНИМАНИЕ! Перед очисткой существующей базы убедитесь в том что ее копия экспортирована на локальный компьютер и проверьте целостность скачанного файла с помощью любого текстового редактора (например, Notepad++).

Для очистки данных идем во вкладку Структура и выделив все таблицы нажатием кнопки «Отметить все», выбираем в списке действий «Очистить» и жмем OK, как на скрине ниже

Подтверждаем операцию, если всплывет соответствующее уведомление.

Теперь мы можем импортировать дамп обратно.

Для этого переходим во вкладку Импорт и загружаем свой файл SQL, который хотим восстановить.


Обратите внимание, что по-умолчанию объем загружаемого на сервер файла установлен 2МБ. Если в вашем магазине уже есть товары, то скорее всего ваша база данных уже больше чем 2МБ.

Что делать?

Самый простой способ это написать хостерам и попросить увеличить php параметр upload_max_filesize до нужного размера, например 32МБ.

О том как самостоятельно увеличить допустимый объем загружаемого файла я расскажу в разделе Решение проблем.

Второй способ, это загрузить дамп через файловый менеджер на хостинге в папку /var/lib/phpMyAdmin/upload/, это путь из корня файловой системы, поэтому для доступа к этой папке нужен root-доступ, что не проблема, если вы используете выделенный VPS-сервер. Когда файл загружен, нужно выбрать его на вкладке Импорт и отметить соответствующий чекбокс


Третий способ, пожалуй, самый предпочтительный и надежный — Резервное копирование на хостинге.

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

Как правило все простые тарифы имеют включенную панель резервного копирования. На VPS-сервере такую опцию нужно подключать отдельно через личный кабинет (с выбором требуемого дискового пространства), но это обязательно нужно делать, если боитесь потерять данные сайта и его работоспособность.

На примере одной из самых популярных панелей ISP Manager

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

Думаю, тут даже объяснять не стоит все преимущества данного метода. Единственный недостаток, это то что если на сайте осуществлялось много действий, то бэкап может откатиться слишком далеко и кроме вредных изменений затрутся и все поленые. Решается просто — перед действиями, к которых не уверены, нужно зайти в панель резервного копирования и нажать «Сформировать архив» напротив нужного компонента хостинга (аккаунт, файлы, база данных).


P.S. Для Opencart существуют специальные модули для полного и частичного резервного копирования, о них я постараюсь написать в разделе Модули и расширения.

Post a comment