Восстановление базы

26.09.2013

Если база данных большая, инфоблоки содержат много элементов и разделов, тогда восстановление базы данных из бекапа, сделанного битриксом, будет идти очень и очень долго!

Так происходит, потому что, стандартными средствами битрикса бекап базы делается так: 1 строка таблицы - один запрос в базу.

Решение

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

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

Комментарии:

Марина

06.10.2016 17:50:06

Добрый день. Скажите, есть ли возможность восстановить после падения сайта данные о заказах. Все остальное восстановили, но боимся вытянуть ячейку с заказами. Сейчас информация о заказах с 3 числа по сегодняшний день есть, нет заказов, поступивших до 3 числа. Если будем объединять заказы из бэкапа с работающей сейчас базой не получится ли так, что какие-то заказы затрутся или создадутся под новыми номерами и текущей датой, ведь каждой записи в БД присваивается уникальный номер по порядку.

Максим

07.10.2016 05:06:53

Здравствуйте, Марина. В вашем случае какого либо универсального решения нет. Нужно только вручную смотреть базы и анализировать что можно сделать. Скорее всего номера заказов с 3-го числа дублируют номера, которые были в потерянной базе, поэтому при простом "накатывании" одной базы на другую, заказы либо перепишутся либо потеряются.
Нужно посмотреть последний id заказа в бекапе, и сравнить с id в текущей базе. Если в текущей базе счет id продолжается (не повторяется) - то можно аккуратно сливать, но делать это на уровне базы (а не через импорт с 1с например), не забывать также про связанные таблицы - таблица корзины, таблица свойств заказа на вскидку все не назову, нужно анализировать.
А если id дублируются, то нужно в текущей базе сдвинуть инкремент id вперед, чтобы новые id не дублировали старые, также оставить запас номеров под задвоенные номера, ну и решать что делать с дублями.
Резюмируя скажу, что простого способа слить заказы нет, восстановления это кропотливая работа программиста/сис-админа.
Главное экспериментируйте на тестовом сервере, как найдете решение - применяйте на боевом. Удачи вам и все получится.

Марина

07.10.2016 13:54:11

Спасибо за ответ и оперативность)

Оставить комментарий:

Представьтесь пожалуйста:
Электронная почта:
Электронный адрес не публикуются
Текст сообщения:
Для подсветки кода, оборачивайте ваш код в теги <code></code>
Введите 5 цифр с картинки:

Рекомендую:

Поделюсь промокодами для хостинга TimeWeb!

Поддержать проект: