Confluence 6 尝试从 XML 备份中恢复时解决错误

错误可能是因为数据库突然不可访问而产生。也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份:

  1. 在实例开始恢复的时候,请按照下面的指南来禁用批量更新(针对简单的问题解决),启用 SQL 日志和SQL 查询日志,通过在 Enabling Detailed SQL Logging 页面中描述的参数(with parameters)
  2. 一旦上面 3 个修改都完成了后,重启 Confluence。
  3. 尝试另外一次恢复。
  4. 当你在恢复的时候失败了,检查你的日志文件找到不能用 XML 转换为记录的地方。针对使用 Confluence 分发包的用户,检查你 Confluence 的安装目录下的 /logs/ 目录,检查 atlassian-confluence.logcatalina.out 文件。正确的文件应当包含有 SQL 的调试日志输出。
  5. 滚动到文件的最下端,找到相关的错误信息,这个信息应该是与数据库有关了,例如下面的错误信息:
    2006-07-13 09:32:33,372 ERROR [confluence.importexport.impl.ReverseDatabinder] endElement net.sf.hibernate.exception.ConstraintViolationException:
      could not insert: [com.atlassian.confluence.pages.Attachment#38]
    net.sf.hibernate.exception.ConstraintViolationException: could not insert: [com.atlassian.confluence.pages.Attachment#38]
    ...
    Caused by: java.sql.SQLException: ORA-01400: cannot insert NULL into ("CONFUSER"."ATTACHMENTS"."TITLE")
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)

    上面的示例标记了在你附件表中 ID = 38 的记录有一个空的标题。

  6. 进入到你服务器创建的备份文件中,你应该有你数据库使用的备份。如果你没有这个的话,使用DBA 数据库管理工具创建一个数据库备份。
  7. 打开一个 DBA 数据库管理工具,然后连接到原始的数据库实例,在数据库中找到需要的表。你需要修改这个表中的一些记录。
  8. 希望找到数据库中是哪个表的那个对象,下面对应了内容存储的表:
    • 页面,博客页面,评论(Pages, blogposts, comments) --> CONTENT 表
    • 附件(attachments )--> ATTACHMENTS 表
  9. 希望跟着上面示例中出现的错误,进入到附件表中,找到对象的 ID 为 38 的记录。这个记录应该是一个 null 的标题。使用其他附件中使用的标题为指南,你可能还会遇到其他的问题,请根据问题进行修改。
  10. 一旦上面的修改完成了,重新创建 XML 备份。
  11. 导入备份到新的版本中。
  12. 如果导入成功了,你需要将你 SQL 修改的日志(SQL logging)重新改回来,你可以重新启用 批量更新(针对简单的问题解决),禁用 SQL 日志和SQL 查询日志。
  13. 重启 Confluence

https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore

原文地址:http://blog.51cto.com/ossez/2133003

时间: 2024-11-08 12:58:20

Confluence 6 尝试从 XML 备份中恢复时解决错误的相关文章

Confluence 6 从一个 XML 备份中导入一个空间

有下面 2 中方法可以导入一个空间--通过上传一个文件,或者从你 Confluence 服务器上的一个目录中导入.上传文件仅仅是针对一个小站点的情况.为了取得最好的导入结果,我们推荐你从服务器上的目录上进行恢复. 希望删除和导入一个小空间: 进入  > 基本配置(General Configuration) > 备份和恢复(Backup and Restore). 选择 选择文件(Choose File)然后在本地磁盘上浏览空间导出文件. 取消选择 重构索引(Build Index)如果你希望

Confluence 6 找到在创建 XML 备份的时候出现的错误

错误可能是因为数据库突然不可访问而产生.如果你在你的日志中看到了错误  'Couldn't backup database data' ,这个指南将会帮助你更正这个错误.我们强烈推荐你备份 Confluence 数据库和 Confluence 的 home 目录这种备份方式来备份你的 Confluence 服务器.你可以使用 Restoring Data from other Backups 的方法来恢复你的备份,如果需要的话.如果你对数据库 SQL 并不熟悉的话,我们建议你联系你的数据库管理员

从MySQL全库备份中恢复某个库和某张表【转】

从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [[email protected] backup]#mysqldump -uroot -p123456 --default-character-set=utf8 --single-transaction --extended-insert=false --hex-blob --master-data=2 --log-error=/tmp/test.err --routines --triggers --events --quick -

JBPM在Eclipse中运行时页面错误ProcessEngine cannot be resolved to a type

JBPM在Eclipse中运行时页面错误ProcessEngine cannot be resolved to a type 从网上找了一些杂七杂八的回答,比如在Java EE Module Dependencies设置中添加依赖的jar 但是这个设置是以前旧版本的Eclipse所有的.新版的已经没有这个设置. 归根结底是因为我自己创建了一个UserLibrary.引入了jbpm依赖的所有jar 结果无法发布到tomcat中. 干脆把这个引用删掉,直接复制所有jar到项目的lib文件夹下. 一切

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复. 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如果你能提供下面 2 个备份的话: 一个有关 home 目录的所有备份. 一个有关你数据库的备份(如果你使用的是外部数据库的话). 有关恢复备份的方法基于你使用的是内部数据库还是外部数据库会有些不同.外部数据库主要像 Oracle, MS SQL Serve

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话.你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现在的版本,然后使用这个临时的实例导出空间的备份文件. 下载与你 Confluence 导出文件相同的 Confluence 安装实例(你可以通过 Confluence Downloads Archive 中的链接找到 Confluence 的历史归档安装

Confluence 6 用户提交的备份和恢复脚本

下面的代码是用户提交的,在使用的时候需要小心,因为 Atlassian 不提供这些代码的技术支持.如果你在使用或者修改这些代码的时候有任何问题,请粘贴到 post them to Atlassian Answers. 删除老的备份 -- Windows 的 Wscript 脚本 这个脚本将会检查备份文件然后删除他们(必要的话),下面的代码可能需要一些编辑. 'If you want 3 day old files to be deleted then insert 3 next to Date

mysqldump备份中恢复单张表

⒈mysqldump备份中导出单张表很多时候我们需要从mysqldump备份文件中恢复出一张表,通常的做法可能是先把sql 文件恢复到一个测试数据库,然后再使用mysqldump导出一张表,再恢复到生产环境,这样,如果数据量不大这方法是可行的,但是你依然需要有一个测试机器或者临时创建一个库,不是很方便,可以利用awk/sed解决相关问题:①在原数据库中使用show tables;②利用sed或者awk,将数据导入文件中(注意表之间的排序)# awk '/^-- Table structure f

web.xml文件中的7个错误的安全配置

关于Java的web.xml文件中配置认证和授权有大 量 的 文章.本文不再去重新讲解如何配置角色.保护web资源和设置不同类型的认证,让我们来看看web.xml文件中的一些常见的安全错误配置. (1) 自定义的错误页面没有配置 默认情况下,Java Web应用在发生错误时会将详细的错误信息展示出来,这将暴露服务器版本和详细的堆栈信息,在有些情况下,甚至会显示Java代码的代码片段.这些信息对为他们的病毒需找更多信息的黑客来说是一种恩惠.幸运的是,通过配置web.xml文件来展示自定义的错误页面