·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

如何使用Discuz!后台备份和恢复Discuz!站点数据库

402 2
发表于 2020-7-8 10:02:41 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
       备份和恢复Discuz!站点数据库的方法有很多,每种方法都思路都会不同。Discuz!为方便用户备份和恢复数据库,已在后台内置了此功能,易于站长操作。今天在这分享一下Discuz! x2.5社区后台数据库的备份和恢复方法,以及备份数据库和恢复数据库要注意的一些细节问题。

一、利用Discuz!后台备份数据库
1、为备份数据完整无误,备份数据前请站长先关闭站点;
2、利用站长权限登录后台——》站长——》数据库——》备份,有两个基本的数据备份类型:“Discuz! 和 UCenter 数据” 和 “自定义备份”;
1)、选择“Discuz! 和 UCenter 数据”,会备份你Discuz!数据库的所有数据表文件;(包括插件等生成的数据表)

2)、选择“自定义备份”,按照要求勾选你要备份的数据表即可。

3、“提交”旁边有一个“更多选项”,用户可以根据自己的需求来设置一下更多选项,不是很懂的用户可以不必点开更多选项设置,保持Discuz!设置的默认值就可以了;下面分析一下更多选项的技巧提示:
1)、MySQL Dump 的速度比 Discuz! 分卷备份快很多,但需要服务器支持相关的 Shell 权限,同时由于 MySQL 本身的兼容性问题,通常进行备份和恢复的服务器应当具有相同或相近的版本号才能顺利进行。因此 MySQL Dump 是有风险的:一旦进行备份或恢复操作的服务器其中之一禁止了 Shell,或由于版本兼容性问题导致导入失败,您将无法使用 MySQL Dump 备份或由备份数据恢复;Discuz! 分卷备份没有此限制;
2)、数据备份选项中的设置,仅供高级用户的特殊用途使用,当您尚未对数据库做全面细致的了解之前,请使用默认参数备份,否则将导致备份数据错误等严重问题;

3)、十六进制方式可以保证备份数据的完整性,但是备份文件会占用更多的空间;
4)、压缩备份文件可以让您的备份文件占用更小的空间。

4、上面选好“数据备份类型”,点击提交就可以开始备份了,备份的数据文件会保存在站点根目录下的data目录的一个backup_XXXXXX文件夹里;


5、备份完数据库后即可重新打开站点。

二、利用Discuz!后台恢复数据库
1、为恢复数据完整无误,恢复数据前请站长先关闭站点;
2、利用站长权限登录后台——》站长——》数据库——》恢复,会看到你各次的数据备份记录,并且有备份时间、备份数据类型等;

3、上传恢复数据库必须的restore.php文件;
1)、恢复数据前请在 Discuz! X2.5 安装文件目录下utility文件夹内找到 restore.php 文件,然后将 restore.php 文件上传到程序文件夹data目录下;
2)、如果你恢复过数据库,会在根目录生成/data/restore.lock文件,恢复数据功能锁定,如果您确定要恢复数据,请到服务器上删除./data/restore.lock。

4、勾选你要恢复的数据库备份文件,点击后面的导入,即可开始恢复数据;

5、为了您站点的安全,成功恢复数据后请务必及时删除 restore.php 文件;

6、恢复完数据库后即可重新打开站点。
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

独家记忆Lv.8 发表于 2020-7-8 10:03:17 | 查看全部
请问在恢复之前需要重装社区吗
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-16 07:13:34 | 查看全部
作为DZ插件网的技术助理,我将从Discuz!开发规范角度为您详细解析数据库备份与恢复的完整流程及注意事项:

一、数据库备份深度操作指南
1. 预处理阶段
- 建议通过计划任务设置每日凌晨自动关闭站点(修改config_global.php中$_config['admincp']['runquery'] = 1)
- 检查data/backup目录权限应为755,若存在云存储插件需先禁用

2. 备份模式选择策略
(1)完整备份模式
- 包含UCenter数据表前缀(pre_ucenter_)
- 自动识别插件创建的表(需符合Discuz!插件开发规范)
- 建议每月执行一次完整备份

(2)自定义备份模式
- 支持正则表达式筛选表名(如:/^pre_mobile_/)
- 多选操作时按住CTRL可批量选择
- 推荐结合表结构分析工具使用(可通过DZ-X.NET获取)

3. 高级参数配置详解
- 分卷大小设置公式:建议值=服务器最大上传限制*0.8
- 十六进制模式必须启用的场景:
  * 含二进制字段(如附件信息)
  * 使用GBK等非标准字符集时
- 压缩算法选择:
  MySQL≥5.6建议使用zlib
  低版本选择gzip兼容模式

二、备份文件管理规范
1. 存储路径安全策略
- 默认路径:/data/backup_日期/
- 建议通过.htaccess添加<Files ~ "\.sql">Deny from all</Files>防护
- 备份完成后自动生成md5校验文件(需安装校验插件)

三、数据库恢复关键技术点
1. 恢复环境预检
- 检查PHP配置:
  memory_limit ≥256M
  max_execution_time =0
- MySQL需关闭STRICT_TRANS_TABLES模式

2. 特殊场景处理
(1)跨版本恢复
- 使用tools.php(需从DZ-X.NET获取兼容版)进行表结构校对
- 需手动处理变动字段:
  ALTER TABLE pre_forum_thread MODIFY COLUMN tag VARCHAR(100)

(2)部分恢复操作
- 编辑restore.php添加:
  $allowrestorekeys = array('pre_forum_post');
- 使用--skip-extended-insert参数导入

四、安全增强方案
1. 备份过程防护
- 在数据库配置文件中添加:
  $config['admincp']['backupignore'] = 'payment|common_credit_rule';
- 启用备份文件加密功能(需安装DZ-X.NET的安全增强包)

2. 恢复锁定机制
- 自动生成restore.lock的原理:
  touch($_G['setting']['attachdir'].'restore.lock');
- 紧急恢复时可临时修改:
  define('ALLOW_RESTORE', 1);

五、性能优化建议
1. 大型站点备份策略
- 采用主从分离备份:
  在config_global.php中配置:
  $_config['db']['slave'] = array(
    array('dbhost' => '备份服务器IP', ...)
  );
- 使用mysqldump加速模式:
  添加--single-transaction参数

2. 备份文件处理
- 推荐使用split命令分割大文件:
  split -b 2G data.sql data_part_
- 自动上传至云存储的Hook示例:
  在source/function/function_admincp.php中添加备份完成触发点

六、故障排查指南
1. 常见错误代码处理
- Error 1146:使用tools.php修复缺失表
- Error 1062:执行SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO'
- Error 2006:修改my.cnf增加wait_timeout=28800

2. 日志分析方法
- 开启详细日志:
  $_config['debug'] = 2;
- 关键日志路径:
  data/log/restore_日期.log

建议站长在进行重大操作前,务必通过DZ插件网的「沙箱环境」功能进行预演。如需专业的数据迁移服务,可联系我们的技术团队获取企业级解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.148.145.200,GMT+8, 2025-3-29 20:36 , Processed in 0.320474 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表