QingdaoU OnlineJudge 数据备份与恢复
平台本身提供了数据库的备份,还挺方便的。不过,发现只导入数据库的备份文件,还是有问题。就折腾了好一会。
Online Judge平台数据备份与恢复
1.数据备份
1).数据库备份(postgresql)
进入OnlineJudgeDeploy/backup目录,运行以下命令就会此目录下生成一个.sql数据库备份文件。
1 | sh db_backup.sh |
比如我得到了 db_backup_2022_12_16_13_51_41.sql 文件
2).data目录下的public和test_case文件夹备份
如果只用一个数据库文件,没有导入这两个目录,判题时会显示编译错误,点击会显示测试用例不存在。所以需要把这两个目录也从容器中复制出来。
因为直接用ftp工具发现不行,test_case目录都没有读的权限。所以,就直接从容器中把这两个目录复制出来。
比如我就在当前目录下新建一个temp_data目录,然后把public和test_case目录都复制到这个目录下:
1 | docker cp oj-backend:/data/public ./temp_data/ |
2.数据恢复
必须先恢复数据库,再复制public和test_case目录。
不管是本机,还是换了一台新的机子,都可以用以下方法恢复数据,因为是很彻底的删除了数据库的。
1).数据库导入(postgresql)
先查看docker-compse.yml配置文件中配置的数据库容器、数据库名和数据库使用用户名:
- 数据库容器:oj-postgres
- 数据库名:onlinejudge
- 数据库使用用户名:onlinejudge
1 | # 1.拷贝数据(.sql)到数据库容器oj-postgres |
2).public和test_case目录导入
1 | docker cp ./temp_data/public/ oj-backend:/data/ |
再登录,发现所有的数据都恢复过来了。
- 本文标题:QingdaoU OnlineJudge 数据备份与恢复
- 本文作者:HDUZN
- 创建时间:2022-12-16 22:36:39
- 本文链接:http://hduzn.cn/2022/12/16/QingdaoU-OnlineJudge数据备份与恢复/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论