Moodle为何不能备份大课程

2018-11-07 07:15
网络安全和信息化 2018年9期
关键词:备份调试错误

故障现象

笔者在备份Moodle课程时,发现有些课程能正常备份,有些课程不能够正常备份,不能正常备份时出现“写入数据库时发生错误”的提示。

故障处理

1.为了让课程备份出现错误提示时,显示更详细的提示信息,以方便查找问题原因,我用下面的方法打开Moodle调试开关并显示调试信息:网站管理→开发→调试,将调试信息设置为“标准:显示错误、警告和注意”,将显示调试信息设置为“是”(如图1所示)。

注意,在问题修复处理好后,将“显示调试信息”关闭。

修改调试信息显示设置后,对不能正常备份的课程进行备份,页面最下面出现如下调试信息提示:

图1 将显示调试信息设置为“是”

图2 修改max_allowed_packet值

根据提示,说明在发送查询数据包(QUERY packet)时出错。

2.在备份时,有些能够正常备份,有些不能够正常备份,而且课程中内容较多的课程备份出现问题,问题应该与查询QUERY

packet的大小有关。

本案例安装的是MariaDB数据库,与MySQL完全兼容,可修改/usr/local/etc/my.cnf配置,将“max_allowed_packet”的值修改为100M,数据库系统默认的max_allowed_packet值为 1M,如果修改为100M后仍然出现“写入数据库时出错”的提示,可试着加大“max_allowed_packet”的值,直到能正常备份时为止。

本案例中,我们用命令“nano /usr/local/etc/my.cnf”来将原来“max_allowed_packet=1M” 改成“max_allowed_packet=100M”(如图2)。

3.修改max_allowed_packet数值后,用命令“service mysqlserver restart”重启数据库,原来不能正常备份的课程也能正常进行备份,至此问题已得到解决。

将“网站管理→开发→调试→显示调试信息”关闭,调试信息也设置为:“无:不显示任何错误或警告”,以优化Moodle的访问速度。

经验总结

本Moodle系统的环境是FreeBSD+Nginx+MariaDB+PHP,在安装MariaDB数据库时,没有修改数据库配置文件my.cnf中max_allowed_packet的大小,当课程内容较大时,备份数据库的容量超过max_allowed_pachet的 默认值1M,在备份课程时便出现“写入数据库时发生错误”的提示。只要修改max_allowed_pachet的值,使其超过课程备份时产生的最大备份数据库大小,即可解决问题。

猜你喜欢
备份调试错误
VSAT卫星通信备份技术研究
在错误中成长
创建vSphere 备份任务
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用
核电厂主给水系统调试
无线通信中频线路窄带临界调试法及其应用
旧瓶装新酒天宫二号从备份变实验室
不犯同样错误
基于3G的VPDN技术在高速公路备份链路中的应用