Confluence 6 尝试从 XML 备份中恢复时解决错误
错误可能是因为数据库突然不可访问而产生。也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份:
- 在实例开始恢复的时候,请按照下面的指南来禁用批量更新(针对简单的问题解决),启用 SQL 日志和SQL 查询日志,通过在 Enabling Detailed SQL Logging 页面中描述的参数(with parameters)。
- 一旦上面 3 个修改都完成了后,重启 Confluence。
- 尝试另外一次恢复。
- 当你在恢复的时候失败了,检查你的日志文件找到不能用 XML 转换为记录的地方。针对使用 Confluence 分发包的用户,检查你 Confluence 的安装目录下的
/logs/
目录,检查atlassian-confluence.log
和catalina.out
文件。正确的文件应当包含有 SQL 的调试日志输出。 - 滚动到文件的最下端,找到相关的错误信息,这个信息应该是与数据库有关了,例如下面的错误信息:
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 的记录有一个空的标题。
- 进入到你服务器创建的备份文件中,你应该有你数据库使用的备份。如果你没有这个的话,使用DBA 数据库管理工具创建一个数据库备份。
- 打开一个 DBA 数据库管理工具,然后连接到原始的数据库实例,在数据库中找到需要的表。你需要修改这个表中的一些记录。
- 希望找到数据库中是哪个表的那个对象,下面对应了内容存储的表:
- 页面,博客页面,评论(Pages, blogposts, comments) --> CONTENT 表
- 附件(attachments )--> ATTACHMENTS 表
- 希望跟着上面示例中出现的错误,进入到附件表中,找到对象的 ID 为 38 的记录。这个记录应该是一个 null 的标题。使用其他附件中使用的标题为指南,你可能还会遇到其他的问题,请根据问题进行修改。
- 一旦上面的修改完成了,重新创建 XML 备份。
- 导入备份到新的版本中。
- 如果导入成功了,你需要将你 SQL 修改的日志(SQL logging)重新改回来,你可以重新启用 批量更新(针对简单的问题解决),禁用 SQL 日志和SQL 查询日志。
- 重启 Confluence
https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python:用numpy+OpenCV快速实现矫正图像的功能
透视变换是一个很实用的功能,当用手机去拍证件或者名片时,经常会拍歪,或者有边框。如果你使用过类似“扫描全能王”的软件,你应该知道,他们会自动把证件矫正并除边框,它就是通过透视变换实现的,和numpy中的仿射变换一样。 左图为原图,右图为矫正后的图 1.运行环境 Python3.6.5 pycharm win10 安装oponcv, numpy 库安装教程链接 2.代码 import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('E:\\card2.jpg') rows, cols = img.shape[:2] # 原图中书本的四个角点 pts1 = np.float32([[69, 163], [704, 62], [162, 675], [970, 411]]) # 变换后分别在左上、右上、左下、右下四个点 pts2 = np.float32([[0, 1000], [0, 0], [750, 1000], [750, 0]]) # 生成透视变换矩阵 M = cv2.getPersp...
- 下一篇
Spark2.1.0之内置RPC框架
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80799622 在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通、用户文件与Jar包的上传、节点间的Shuffle过程、Block数据的复制与备份等。在Spark 0.x.x与Spark 1.x.x版本中,组件间的消息通信主要借助于Akka[1],使用Akka可以轻松的构建强有力的高并发与分布式应用。但是Akka在Spark 2.0.0版本中被移除了,Spark官网文档对此的描述为:“Akka的依赖被移除了,因此用户可以使用任何版本的Akka来编程了。”Spark团队的决策者或许认为对于Akka具体版本的依赖,限制了用户对于Akka不同版本的使用。尽管如此,笔者依然认为Akka是一款非常优秀的开源分布式系统,我参与的一些Java Application或者Java Web就利用Akka的丰富特性实现了分布式一致性、最终一致性以及分布式事务等分布式环境面对的问题。在Spark 1.x.x版本中,用户文件与Jar包的上...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7设置SWAP分区,小内存服务器的救世主
- Linux系统CentOS6、CentOS7手动修改IP地址
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装