OpenProject使用過程當中出現了問題,某個task中的功能沒法使用,使用者協商後準備恢復至歷史版本。mysql
OpenProject存在備份文件,OpenProject自帶備份命令(openproject run backup
),備份好的文件位於/var/db/openproject/backup
目錄下。其中:git
mysql-dump-20190521032002.sql.gz爲數據庫dump conf-20190521032002.tar.gz 爲各類配置文件,包括數據庫鏈接,服務等信息 attachments-20190521032002.tar.gz 爲全部有關附件文件的備份
2.一、關閉服務sql
關閉openproject服務,命令爲systemctl stop openproject
。數據庫
注:關閉openproject服務會關閉一系列Openproject有關的服務app
2.二、恢復數據ide
2.2.一、恢復MySQL數據memcached
使用命令「zcat mysql-dump-20190521032002.sql.gz | mysql -u openproject -h 127.0.0.1 -p
」,以後輸入mysql數據庫用戶openproject的密碼,執行恢復命令。svn
zcat mysql-dump-20190521032002.sql.gz | mysql -u openproject -h 127.0.0.1 -prest
zcat能夠不解壓壓縮文件的前提下,查看壓縮包內容
mysql-dump-20190521032002.sql.gz備份的mysql dump文件;code| 表明管道;
「mysql -u openproject -h 127.0.0.1 -p」:
使用openproject用戶鏈接127.0.0.1主機中的mysql數據庫,openproject用戶的密碼能夠在備份的文件中查詢,本例中爲「
conf-20190521032002.tar.gz
」中的database文件,以下圖所示。
2.2.二、恢復配置文件
將歸檔的配置文件(conf-20190521032002.tar.gz
)中的內容解壓後拷貝到「/etc/openproject/conf.d/」目錄並覆蓋原文件。
2.2.三、恢復附件文件的備份
將歸檔文件(attachments-20190521032002.tar.gz
)中的內容解壓後拷貝到「/var/db/openproject/files/」目錄下,覆蓋原內容。
注:這裏是Openproject各個Project或者Task中上傳的附件,根據實際狀況,能夠自由選擇恢復與否。
2.三、啓動服務
使用「systemctl start openproject
」命令啓動openproject服務
下面是恢復過程當中不一樣階段執行的命令記錄及說明。
3.一、準備備份文件
# 查看當前路徑 [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.二、中止服務
# 關閉openproject服務 [root@localhost tmp]# systemctl stop openproject [root@localhost tmp]#
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: # 輸入安照**2.2.1節**中方法查詢**database**文件獲得的密碼。 [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.四、啓動服務
使用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.