OpenProject的一次還原記錄

OpenProject的一次還原記錄


​ OpenProject使用過程中出現了問題,某個task中的功能無法使用,使用者協商後準備恢復至歷史版本。

一、前提:

​ OpenProject存在備份文件,OpenProject自帶備份命令(openproject run backup),備份好的文件位於/var/db/openproject/backup目錄下。其中:

mysql-dump-20190521032002.sql.gz爲數據庫dump
conf-20190521032002.tar.gz 爲各種配置文件,包括數據庫連接,服務等信息
attachments-20190521032002.tar.gz 爲所有有關附件文件的備份

二、還原流程

2.1、關閉服務

​ 關閉openproject服務,命令爲systemctl stop openproject

注:關閉openproject服務會關閉一系列Openproject有關的服務

2.2、恢復數據

2.2.1、恢復MySQL數據

使用命令“zcat mysql-dump-20190521032002.sql.gz | mysql -u openproject -h 127.0.0.1 -p”,之後輸入mysql數據庫用戶openproject的密碼,執行恢復命令。

zcat mysql-dump-20190521032002.sql.gz | mysql -u openproject -h 127.0.0.1 -p

zcat可以不解壓壓縮文件的前提下,查看壓縮包內容

| 代表管道

“mysql -u openproject -h 127.0.0.1 -p”,使用openproject用戶連接127.0.0.1主機中的mysql數據庫,openproject用戶的密碼可以在備份的文件中查詢,本例中是“conf-20190521032002.tar.gz”中的database文件。

OpenProject的一次還原記錄

2.2.2、恢復配置文件

​ 將歸檔的配置文件(conf-20190521032002.tar.gz)中的內容解壓後拷貝到“/etc/openproject/conf.d/”目錄並覆蓋原文件。

2.2.3、恢復附件文件的備份

​ 將歸檔文件(attachments-20190521032002.tar.gz)中的內容解壓後拷貝到“/var/db/openproject/files/”目錄下,覆蓋原內容。

注:這裏是Openproject各個Project或者Task中上傳的附件,根據實際情況,可以自由選擇恢復與否。

2.3、啓動服務

​ 使用“systemctl start openproject”命令啓動openproject服務


三、操作過程及命令記錄

​ 下面是恢復過程中不同階段執行的命令記錄及說明。

3.1、準備備份文件

# 查看當前路徑
[root@localhost backup]# pwd
/var/db/openproject/backup
# 創建/home/tmp文件夾
[root@localhost backup]# mkdir /home/tmp
# 拷貝備份文件至新創建的文件夾
[root@localhost backup]# cp mysql-dump-20190521032002.sql.gz /home/tmp/
[root@localhost backup]# cp conf-20190521032002.tar.gz /home/tmp/
[root@localhost backup]# cp attachments-20190521032002.tar.gz /home/tmp/
[root@localhost backup]# cp svn-repositories-20190521032002.tar.gz git-repositories-20190521032002.tar.gz /home/tmp/
# 切換至新創建的文件夾
[root@localhost backup]# cd /home/tmp/
# 列出文件夾下的文件夾
[root@localhost tmp]# ls -lha
total 168M
drwxr-xr-x  2 root root  213 May 24 10:34 .
drwxr-xr-x. 6 root root  104 May 24 10:33 ..
-rw-r-----  1 root root 167M May 24 10:34 attachments-20190521032002.tar.gz
-rw-r-----  1 root root  773 May 24 10:34 conf-20190521032002.tar.gz
-rw-r-----  1 root root  124 May 24 10:34 git-repositories-20190521032002.tar.gz
-rw-r-----  1 root root 253K May 24 10:33 mysql-dump-20190521032002.sql.gz
-rw-r-----  1 root root  110 May 24 10:34 svn-repositories-20190521032002.tar.gz

3.2、停止服務

# 關閉openproject服務
[root@localhost tmp]# systemctl stop openproject
[root@localhost tmp]# 

3.3、 恢復數據

# 查詢文件下的文件
[root@localhost tmp]# ls
attachments-20190521032002.tar.gz       mysql-dump-20190521032002.sql.gz
conf-20190521032002.tar .gz                svn-repositories-20190521032002.tar.gz
git-repositories-20190521032002.tar.gz
# 恢復數據庫數據
[root@localhost tmp]# zcat mysql-dump-20190521032002.sql.gz | mysql -u openproject -h 127.0.0.1 -p openproject
Enter password: 
[root@localhost tmp]#
# 解壓配置文件
[root@localhost tmp]# gunzip conf-20190521032002.tar.gz 
[root@localhost tmp]# tar -xvf conf-20190521032002.tar 
./
./other
./database
./server
./memcached
# 查看解壓了配置文件後,文件夾中內容
[root@localhost tmp]# ls
attachments-20190521032002.tar.gz       mysql-dump-20190521032002.sql.gz
conf-20190521032002.tar                 other
database                                server
git-repositories-20190521032002.tar.gz  svn-repositories-20190521032002.tar.gz
memcached
# 拷貝解壓後的配置文件覆蓋Openproject系統中的配置文件
[root@localhost tmp]# cp database memcached other server /etc/openproject/conf.d/
cp: overwrite ‘/etc/openproject/conf.d/database’? y
cp: overwrite ‘/etc/openproject/conf.d/memcached’? y
cp: overwrite ‘/etc/openproject/conf.d/other’? y
cp: overwrite ‘/etc/openproject/conf.d/server’? y
# 本例中需要恢復的時間和當前時間沒有變化,遂未恢復。

3.4、啓動服務

​ 使用systemctl start openproject啓動openproject服務。

# 啓動openproject服務
[root@localhost tmp]# systemctl start openproject
# openproject也是一個二進制的命令,用法如下:
[root@localhost ~]# openproject 
Usage:
  openproject run COMMAND [options]
  openproject scale TYPE=NUM
  openproject logs [--tail|-n NUMBER]
  openproject config:get VAR
  openproject config:set VAR=VALUE
  openproject configure
  openproject reconfigure
  openproject restart

Details:
  openproject configure [-f FILE|-]
    * If using an installer:
      This command will launch the installer wizard.
      You can pass the installer seed file as argument or on STDIN.
   * Without installer:
      This will execute the configure script at /opt/openproject/packaging/scripts/configure (if any).
      A file containing environment variables can be given as argument or on STDIN (-f -), and will be saved in the /etc/openproject/conf.d folder.

  openproject reconfigure
    This command allows to reconfigure the application. Only useful if using an installer.

  openproject restart [process]
    This will restart the application (or the given process), in a distribution-independent manner.

OpenProject的一次還原記錄
OpenProject的一次還原記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章