Skip to content

Maintenance

Outvi V edited this page Feb 15, 2020 · 2 revisions

This page is written in Chinese in consideration of main audiences.

SchOJ 企划是一个基于 DMOJ 的 Docker Compose 项目。由三部分组成:

额外数据目录

data/site:网站端源代码。在更新 site 镜像后请清空或删除此文件夹。 首次运行网站端容器时,构建容器时的网站端源码会被复制至此,便于调试和后续维护。

data/problems1, 2):题目文件库。此目录由网站端和所有评测端共享。

data/database:数据库。由于 InnoDB,强行停止数据库容器时,数据库文件可能发生损坏。

备份策略

通常需要备份的文件:

  • 数据库(建议使用 mysqldump 备份。可以热备份。)
  • 网站端的配置文件 dmoj/local_settings.py (包含用户密码加密密钥 SECRET_KEY,不应丢失或泄露。可以热备份。)
  • 题目文件库 (可以热备份。)

你可能还想备份的文件:

  • 网站的 SSL 证书公私钥

升级策略

对网站端 (site) 的升级

网站端的操作不当可能造成数据的永久丢失。请在升级网站端前完整备份 OJ 服务。

通常可以直接更新 data/site 而无需更新 site 所使用的镜像。

对评测端 (judge) 的升级

升级评测端时不需停止网站端,通常升级失败也不会造成数据损失。只需确保站点上有不少于一个的活动评测端,网站即可正常工作。对于有多个评测端的站点,建议先升级部分评测端,确定稳定后再升级全部评测端。

对数据库 (db) 的升级

可能可以直接更新所使用的数据库镜像。建议更新前备份数据库。

Clone this wiki locally