如何备份


# 如何备份

# 1. 单体部署

请到~/hoj-deploy/standAlone的目录下,即是与docker-compose.yml的文件同个目录下,该目录下有个叫hoj的文件夹,里面的文件夹介绍如下:

hoj
├── file   		# 存储了上传的图片、上传的临时题目数据、markdown引用的文件等文件
├── judge  		# 存储了每个提交题目的评测过程产生的数据
├── log    		# 存储了hoj-backend项目的运行日志
├── testcase    # 存储了题目的评测数据
└── data        
    ├── mysql
    │   ├── data # 存储了MySQL数据库的数据
    ├── redis
    │   ├── data # 存储了redis产生的快照数据
1
2
3
4
5
6
7
8
9
10

那么,如果需要备份,只需将该hoj文件夹复制一份即可,在新的机器上重新部署新的hoj的时候,将该文件夹放置与docker-compose.yml一个目录下,使用docker-compose up -d即可启动恢复原来的数据。

Tips

注意:在新机器上启用备份的数据的操作顺序如下:

  1. 先将hoj文件夹先复制到~/hoj-deploy/standAlone目录里面(保证该目录无hoj文件夹,干净!)
  2. 然后修改.env文件的配置,主要是Redis,Nacos,MySQL等的密码配置,与原先备份hoj文件夹时的老机器的配置一致!
  3. 最后再使用docker-compose up -d启动!

# 2. 分布式部署

  • 主服务器(运行hoj-backend的服务器)

    请到~/hoj-deploy/distributed/main的目录下,即是与docker-compose.yml的文件同个目录下,该目录下有个叫hoj的文件夹,里面的文件夹介绍如下:

    hoj
    ├── file   		# 存储了上传的图片、上传的临时题目数据、markdown引用的文件等文件
    ├── log    		# 存储了hoj-backend项目的运行日志
    ├── testcase    # 存储了题目的评测数据
    └── data        
        ├── mysql
        │   ├── data # 存储了MySQL数据库的数据
        ├── redis
        │   ├── data # 存储了redis产生的快照数据
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • 判题服务器(运行hoj-judgeserver的服务器)

    请到~/hoj-deploy/distributed/judgeserver的目录下,即是与docker-compose.yml的文件同个目录下,该目录下有个叫judge的文件夹,里面的文件夹介绍如下:

    judge
    ├── run  		# 存储了每个提交题目的评测过程产生的数据
    ├── log    		# 存储了hoj-judgeserver项目的运行日志
    ├── test_case   # 存储了题目的评测数据(每100s从主服务器同步)
    ├── spj         # 存储了SPJ的代码
    
    1
    2
    3
    4
    5

那么,主要要备份的还是主服务器的数据,只需将该hoj文件夹复制一份即可,在新的机器上重新部署新的hoj的时候,将该文件夹放置与docker-compose.yml一个目录下,使用docker-compose up -d即可启动恢复原来的数据。

Tips

注意:在新机器上启用备份的数据的操作顺序如下:

  1. 先将hoj文件夹先复制到~/hoj-deploy/distributed/main目录里面(保证该目录无hoj文件夹,干净!)
  2. 然后修改.env文件的配置,主要是Redis,Nacos,MySQL等的密码配置,与原先备份hoj文件夹时的老机器的配置一致!
  3. 最后再使用docker-compose up -d启动!
Last update: June 1, 2022 22:25
Contributors: Himit_ZH