文章目录
- 一、备份还原
- 1、数据备份
- 1.1、前言
- 1.2、版本备份
- 1.3、数据备份
 
- 2、数据恢复
- 2.1、版本恢复
- 2.2、数据恢复
 
 
- 二、问题处理
- 1、ERROR: SQLSTATE[HY000] [2002] Connection refused
 
 
一、备份还原
1、数据备份
1.1、前言
禅道系统从10.6版本以后,新增数据备份设置功能,允许管理员可以按自己实际需求来备份指定文件和目录。
-  定时任务 
 访问入口:后台–系统–定时
 注:默认情况下,每天凌晨00:30定时进行备份任务操作(备份数据和附件),可根据实际情况配置定时任务启动时间
-  任务列表 
| 分 | 小时 | 天 | 月 | 周 | 命令 | 备注 | 最后执行 | 状态 | 操作 | 
|---|---|---|---|---|---|---|---|---|---|
| 30 | 0 | * | * | * | moduleName=backup&methodName=backup | 备份数据和附件 | 20-07-07 00:30:07 | 运行中 | 禁用 编辑 | 
- 备份配置
 访问入口:后台–数据–备份
 注:默认情况下,每天定时将数据备份到/opt/zbox/app/zentao/tmp/backup/目录下,可根据实际情况配置备份目录和保留时间
1.2、版本备份
当禅道进行数据恢复时,需要搭建相同版本禅道环境(保证网页可正常访问),之后方可进行数据导入恢复操作,此处记录两种版本恢复方法
 –官方下载版本:从官方下载相同禅道版本
 –人为备份版本:人为手动备份当前禅道版本
- 官方下载版本
禅道 12.0.stable 版本发布,新增年度总结,将版本库部分功能移植到开源版,修复Bug
示例环境使用禅道12.0 开源版版本环境,Linux一键安装包64位下载地址详见官方下载源
- 人为备份版本
停止zbox服务进程,对/opt/zbox/整个目录进行全量备份
/opt/zbox/zbox stop
tar zcf /mnt/zbox_system_backup/`date "+%Y-%m-%d"`-zbox.tar /opt/zbox
/opt/zbox/zbox start
1.3、数据备份
- 预先将备份空间备份到挂载到/mnt/zbox_system_backup/目录下
- 设置备份目录为/mnt/zbox_system_backup/,备份时间为14天

[root@node40 ~]# ll /mnt/zbox_system_backup/
total 187468
drwxr-xr-x 10 nobody nogroup       160 Oct 26 16:38 202010261638031.code
drwxr-xr-x  5 nobody nogroup        68 Oct 26 16:38 202010261638031.file
-rw-r--r--  1 nobody nogroup  81509397 Oct 26 16:38 202010261638031.sql.php
2、数据恢复
官方提供两种备份方案如下,示例使用方案二
.
禅道后台-备份 备份还原操作步骤:
方案一:
1、搭建相同版本号的禅道,保证网页可以正常访问;
2、拷贝备份文件到新禅道相同目录,分配读写权限;
3、网页登录新禅道 后台-备份 点击还原按钮进行还原。
方案二:
1、搭建相同版本号的禅道,保证网页可以正常访问;
2、将备份文件 sql.php 用文本编辑器打开删除开头的 ,然后重命名去掉.php,然后导入禅道数据库中;
3、将附件文件 file.zip.php 用文本编辑器打开删除开头的 ,然后重命名去掉.php,然后解压放到新禅道 www/data/upload/ 下面。
2.1、版本恢复
[root@node41 ~]# tar -zxvf ZenTaoPMS.12.0.stable.zbox_64.tar.gz -C /opt/
[root@node41 ~]# /opt/zbox/zbox -ap 8001 -mp 3307
[root@node41 ~]# /opt/zbox/zbox start
[root@node41 ~]# lsof -i:8001
[root@node41 ~]# curl -i http://127.0.0.1:8001/zentao/
注:
 1、修改apache端口为8001(-ap 8001),修改mysql端口为3307(-mp 3307)
 2、禅道环境搭建成功后,检查端口启动及网页是否可以正常访问
2.2、数据恢复
预先将最新的备份文件拷贝到目标禅道系统下
[root@node41 zbox_system_backup]# ll
total 79600
drwxr-xr-x 10 root root      160 Oct 26 17:17 202010261638031.code
drwxr-xr-x  5 root root       68 Oct 26 17:17 202010261638031.file
-rw-r--r--  1 root root 81509397 Oct 26 17:17 202010261638031.sql.php
- 代码文件恢复
1)、将代码文件覆盖到禅道系统目录下/opt/zbox/app/zentao/
[root@node41 zbox_system_backup]# \cp -rf /mnt/zbox_system_backup/202010261638031.code/* /opt/zbox/app/zentao/
- 数据库恢复
1)、重命名数据库文件xx.sql.php,去掉.php后缀
 [root@node41 zbox_system_backup]# cp 202010261638031.sql.php 202010261638031.sql
2)、修改数据库文件xx.sql.php,删除第一行信息<?php die();?>
[root@node41 zbox_system_backup]# sed -i -e '/<?php die();?>/d' 202010261638031.sql
3)、导入禅道zentao数据库内
[root@node41 zbox_system_backup]# /opt/zbox/bin/mysql -u root -P 3306 -p zentao < 202010261638031.sql
注:禅道默认用户名为root,默认密码为空或者123456
4)、检查数据库导入情况,默认情况下,禅道数据库文件存放于/opt/zbox/data/mysql/zentao/目录下
[root@node41 ~]# ls -la /opt/zbox/data/mysql/zentao/zt_* | wc -l
198
- 附件恢复
[root@node41 zbox_system_backup]# \cp -rf  202010261638031.file/* /opt/zbox/app/zentao/www/data/
二、问题处理
本篇主要记录在使用禅道过程中出现的一些问题及对应处理措施
1、ERROR: SQLSTATE[HY000] [2002] Connection refused
- **问题描述:**访问http://127.0.0.1:8001 可以访问成功,但访问http://127.0.0.1:8001/zentao 时访问失败

- **原因分析:**查看mysql服务进程启动端口为3307(mysql.sock --port=3307),但zentao配置文件记录的访问端口却是3308(config->db->port = ‘3308’;),zentao访问mysql端口与实际mysql端口不一致,导致zentao访问失败
[root@node41 ~]# ps -ef | grep mysql
mysql      10606       1  0 Oct10 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql      11419   10606  1 Oct10 ?        06:00:32 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root     2395121       1  0 09:09 pts/0    00:00:00 /bin/sh /opt/zbox/run/mysql/mysqld_safe --defaults-file=/opt/zbox/etc/mysql/my.cnf
nobody   2395367 2395121  0 09:09 pts/0    00:00:01 /opt/zbox/run/mysql/mysqld --defaults-file=/opt/zbox/etc/mysql/my.cnf --basedir=/opt/zbox/run/mysql --datadir=/opt/zbox/data/mysql --plugin-dir=/opt/zbox/run/lib/mysql/plugin --user=nobody --log-error=/opt/zbox/logs/mysql_error.log --pid-file=/opt/zbox/tmp/mysql/mysqld.pid --socket=/opt/zbox/tmp/mysql/mysql.sock --port=3307
root     2423575 2378263  0 09:22 pts/0    00:00:00 grep --color=auto mysql
[root@node41 ~]# cat /opt/zbox/app/zentao/config/my.php 
<?php
$config->installed       = true;
$config->debug           = false;
$config->requestType     = 'PATH_INFO';
$config->db->host        = '127.0.0.1';
$config->db->port        = '3308';
$config->db->name        = 'zentao';
$config->db->user        = 'zentao';
$config->db->password    = '123456';
$config->db->prefix      = 'zt_';
$config->webRoot         = getWebRoot();
$config->default->lang   = 'zh-cn';
- **处理措施:**修改/opt/zbox/app/zentao/config/my.php配置文件,将zentao访问端口改为3307
 重启zentao服务进程,再次访问可正常访问
[root@node41 ~]# cat /opt/zbox/app/zentao/config/my.php | grep port
$config->db->port        = '3307';
[root@node41 ~]# /opt/zbox/zbox restart