Восстановление курсов и категорий.

Восстановление курсов и категорий.

от Александр А -
Количество ответов: 6

Добрый день!

Произошло по неосторожности удаление курсов и категорий в декабре 2019. Настроено автоматическое резервное копирование, резервные копии созданы только до апреля 2019 года. Бэкапы курсов перестали создаваться по причине обновления среды с версии 3.2 до версии 3.6. Cron не запускался после обновления. 

Имеется информация о удаленных ID курсов и категорий (лог действий). Функция корзины включена. Есть копия жесткого диска за октябрь 2019. Бэкапы базы данных не имеются. 

Существует ли возможность восстановить курсы из базы данных или еще каким-либо еще способом? Если настроить запуск cron через планировщик задач windows не потеряется ли окончательно удаленная информация? 

Просим оказать содействие в решение данного вопроса. Благодарю за понимание.  

Moodle 3.6.3
Windows Server 2008r2
XAMPP Control Panel v3.2.3 (Apache, MySQL)
PHP Version 7.2.16
mariadb 10.1.38


В ответ на Александр А

Re: Восстановление курсов и категорий.

от Vadim Tabunshchik -
Изображение пользователя Developers
Невозможно восстановить курсы, не имея резервной копии базы данных.
«Есть копия жесткого диска за октябрь 2019» - что на этом жестком? Только файлы Мудл и moodledata? Базы данных на нем нет?
В ответ на Vadim Tabunshchik

Re: Восстановление курсов и категорий.

от Александр А -
Получилось восстановить часть курсов.
О удаленной категории:
Была категория (2 уровень), а в ней около 2-х десятков категорий с курсами (3 уровень). После удаления половина курсов из категорий 3-его уровня оказались в самой верхней категории (1 уровень), а половина исчезла.
При удалении категории система спрашивает: Переместить курсы в данную категорию. Если удалять категорию 3-его уровня, курсы переносятся в выбранную резервную категорию. Получается, если удалять категорию 2-го уровня с вложенными категориями 3-го уровня, курсы не переносятся?  Или что еще может быть?
Поиск (через поисковую строку) потерянных курсов не дал результата.
Копия жесткого диска на котором установлен Moodle имеется, базу специально не выгружали (экспорт), просто скопированные файлы. 
Можно ли редактировать базу данных? Обсуждалась тема о восстановлении удаленного пользователя https://moodle.org/mod/forum/discuss.php?d=321807 или данная информация к удаленным курсам не применима?

В ответ на Vadim Tabunshchik

Re: Восстановление курсов и категорий.

от Александр А -
Может ли помочь в восстановлении удаленных курсов элемент "Корзина"? 
Например, адрес "Мой сайт/admin/tool/recyclebin/index.php?contextid=1480" выдает сообщение "Ошибка. Не удается найти данную запись в таблице context базы данных. "
Как отыскать данные об этих курсах в таблицах MySQL и можно ли что-то восстановить оттуда? (https://moodle.org/mod/forum/discuss.php?d=199860
Все еще не запускаю cron, что бы хоть что-то восстановить. 
В ответ на Александр А

Re: Восстановление курсов и категорий.

от Vadim Tabunshchik -
Изображение пользователя Developers

Ещё раз: если у вас нет резервной копии базы данных по состоянию сайта ДО удаления по неосторожности курсов и категорий в декабре 2019, то вы ничего не восстановите. Потому что в базе данных удаляются все записи об удалённых категориях/курсах, модулях курсов, о файлах, использовавшихся в курсах, пользователях, записанных в эти курсы, результатах их деятельности и т. д, и т. п. Сейчас, после удаления категорий/курсов, искать что-то в базе данных с целью восстановления - бесполезно, всё, что вы там найдете - это только логи событий.

И ошибка по адресу "Мой сайт/admin/tool/recyclebin/index.php?contextid=1480" - это подтверждение выше сказанного, потому что не существует корзины в данном контексте 1480, это был курс или категория, которые удалены.

То, что часть курсов удалось восстановить, - это случайность, потому что при удалении категории система спрашивает, что делать с подкатегорями и курсами, кот. она содержит. Есть 2 варианта: «Переместить содержимое в другую категорию» или «Удалить все - действие не может быть отменено». Один раз при удалении какой-то категории выбрали перемещение, при следующем удалении - всё удалили. И всё это «по неосторожности».

Не допускайте таких неосторожных к управлению сайтом. И настройте автоматическое резервное копирование курсов и базы данных.

В ответ на Vadim Tabunshchik

Re: Восстановление курсов и категорий.

от Александр А -
Отладчик показал ошибку (Мой сайт/admin/tool/recyclebin/index.php?contextid=1480):
Debug info: SELECT * FROM {context} WHERE id = ?
[array (
0 => 1480,
)]
Error code: invalidrecord

Stack trace:
line 1546 of \lib\dml\moodle_database.php: dml_missing_record_exception thrown
line 1522 of \lib\dml\moodle_database.php: call to moodle_database->get_record_select()
line 5186 of \lib\accesslib.php: call to moodle_database->get_record()
line 31 of \admin\tool\recyclebin\index.php: call to context::instance_by_id()