Recent trouble with backups and restores. Backups for large courses take very long. Restores are failing if the question bank is included. No other trouble with the site. Very responsive for general navigation, quiz taking, etc.. No other performance issues observed. Seems to be related to growth of question bank for over a decade of usage. Discovered issue when staging a new course. Normal operation is to backup our old course and restore into new ones for new semester/year activities. We include all content such as blocks, activities, quizzes, files, and question bank in backups. If we exclude question bank during backup, we are able to restore. It fails if use the import feature of moodle as well if targeting anything related to question bank.
We’ve been using Moodle for over a decade as our LMS
Moodle 3.11
Vmware infrastructure
Application server:
Windows Server
IIS web server
PHP8
MS ODBC driver 17
24gb Ram
4vCpu
Database server:
Windows server
MSSQL 2019
Latest patches
48GB Ram
6vCPU
When restore is happening, CPU usage skyrockets on DB server.
Error message during restore on screen with Debugging turned on (there are thousands of these):
Did you remember to make the first column something unique in your call to get_records? Duplicate value 'www.my.domain.edu+191125170853+YbzElN www.my.domain.edu+191125170853+m3Wi6q' found in column ''.
line 985 of \lib\dml\sqlsrv_native_moodle_database.php: call to debugging()
line 1595 of \lib\dml\moodle_database.php: call to sqlsrv_native_moodle_database->get_records_sql()
line 681 of \backup\util\dbops\restore_dbops.class.php: call to moodle_database->get_records_sql_menu()
line 518 of \backup\util\dbops\restore_dbops.class.php: call to restore_dbops::prechek_precheck_qbanks_by_level()
line 1717 of \backup\util\dbops\restore_dbops.class.php: call to restore_dbops::precheck_categories_and_questions()
line 1537 of \backup\moodle2\restore_stepslib.php: call to restore_dbops::process_categories_and_questions()
line 34 of \backup\util\plan\restore_execution_step.class.php: call to restore_process_categories_and_questions->define_execution()
line 181 of \backup\util\plan\base_task.class.php: call to restore_execution_step->execute()
line 191 of \backup\util\plan\base_plan.class.php: call to base_task->execute()
line 168 of \backup\util\plan\restore_plan.class.php: call to base_plan->execute()
line 408 of \backup\controller\restore_controller.class.php: call to restore_plan->execute()
line 219 of \backup\util\ui\restore_ui.class.php: call to restore_controller->execute_plan()
line 143 of \backup\restore.php: call to restore_ui->execute()
Browser shows progress spinning then eventually just
times out after like 25 minutes. When I refresh the page, I get this
series of errors:
error/restore_not_executable_awaiting_required
More information about this error
Debug info:
Error code: restore_not_executable_awaiting_required
$a contents: 800
Stack trace:
line 165 of \backup\util\plan\restore_plan.class.php: restore_controller_exception thrown
line 408 of \backup\controller\restore_controller.class.php: call to restore_plan->execute()
line 219 of \backup\util\ui\restore_ui.class.php: call to restore_controller->execute_plan()
line 143 of \backup\restore.php: call to restore_ui->execute()
I click continue and then this:
A required parameter (contextid) was missing
More information about this error
Debug info:
Error code: missingparam
Stack trace:
line 497 of \lib\setuplib.php: moodle_exception thrown
line 574 of \lib\moodlelib.php: call to print_error()
line 35 of \backup\restore.php: call to required_param():