ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

青岛OJ(QingdaoU/OnlineJudge)的开发与使用(4)——备份与恢复

2022-01-30 18:02:41  阅读:238  来源: 互联网

标签:题目 postgres 数据库 然后 QingdaoU OnlineJudge backup 备份 OJ


原文链接:这里
0.前言

前面一篇文章中,我们手动导入题目,也可以按照预先设定好的部分导入题目,这篇文章我们尝试备份与恢复操作。

1.本机的备份与恢复

我这里创建了几个用户,和一些题目。然后我们删除这些用户和题目看能不能恢复数据。

在我们一键安装的版本中,在backup文件下有个官方写好的备份脚本。我们只需要切换到bakcup目录下,然后执行

sh db_backup.sh

然后就在此目录下生成了一份备份数据。

然后我们把本机的用户数据,题目数据都删除。

#拷贝数据到数据库所在容器
docker cp db_backup_xxxxxxx.sql oj-postgres:/root

#进入数据库所在容器
docker exec -it oj-postgres bash

#登录数据库
psql -U postgres   

#删除原有数据库
drop database onlinejudge;

#退出
\q

#复制数据库,执行sql语句
psql -f /root/db_backup_xxxxxxx.sql -U postgres

如果在登录数据库过程中遇到:psql: FATAL: role “postgres” does not exist,请点击这里查看解决办法。


然后我们发现,用户和题目数据都回来了。

2.机器与机器之间的迁移与恢复

假如一个新机器需要同步数据。
第一种方法是:要保证已经新部署了一套 OnlineJudge,然后需要恢复数据和测试用例文件。测试用例存储在 data/backend/test_case 文件夹中,覆盖即可,然后就是跟上面的类似,恢复数据库即可。

第二种方法更简单。直接把原来的OnlineJudgeDeploy 文件夹整体复制到新机器上,然后docker-compose up -d 即可。

我们做下简单测试,先把整个online文件夹打包压缩,然后删除所有的容器,连镜像一块删除。

然后再把我们打包的压缩包解压,cd 到我们解压的目录下,重新执行docker-compose up -d

然后我们发现,执行完后重新访问前端,发现还是熟悉的界面。

3.总结

不论怎样,一定要做好备份,不要随便乱折腾。

 

标签:题目,postgres,数据库,然后,QingdaoU,OnlineJudge,backup,备份,OJ
来源: https://www.cnblogs.com/longkui-site/p/15857301.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有