Posts

Showing posts from June, 2018

Confluence 6 找到未使用的空间

有时候,你希望找到你系统中 没有 使用的内容。有时候你也希望能够对这些内容进行更多的关注,但是如何找到一些有关长期不更新的页面,或者长期不使用的空间? View Space Activity 页面中的内容能够为你提供一些帮助,但是却没有提供足够的细节。有时候你可以从数据库中找到更多的相关信息。 下面的查询能够返回每一个 Confluence 安装实例中的每一个空间的的内容最后更新的时间: SELECT spaces.spacename, MAX( content.lastmoddate) FROM content, spaces WHERE content.spaceid = spaces.spaceid GROUP BY spaces.spacename; 这个查询将会返回空间名字的列表和这个空间的任何内容被添加和修改的最后更新的时间。 可选的,这个查询将会返回从一个特定的时间开始,找到系统中有没有被修改内容的空间的。 SELECT spaces.spacename, spaces.spacekey FROM content, spaces WHERE content.spaceid = spaces.spaceid GROUP BY spaces.spacename, spaces.spacekey HAVING MAX( content.lastmoddate) < '2006-10-10' ; 这个查询结果的返回比较简单,为空间的名字和空间对应的唯一标识(key)。 https://www.cwiki.us/display/CONF6ZH/Finding+Unused+Spaces

Confluence 6 数据库表-杂项(Miscellaneous)

这些部分是一些其他的表格,这些表格有必要在这里提及下能帮你更好的了解系统。 os_propertyentry 有关实体和属性相关的特性。 bandana 所有的持久层。这个表格包含的的内容有用户设置和空间,全局基本配置的数据和插件使用的存储,例如插件 Dynamic Task List plugin. Essentially,有关存储的特性并不在其他地方适用。 extrnlnks 参考链接。 hibernate_unique_key 被用作为 高/低 ID 生成器 —— 这是被用来生成我们主键的一个子系统。 如果你调整这个表格的话,你将没有办法在 Confluence 创建对象。 indexqueueentries 管理所有的 —— 全系统内容索引。这个表格通常包括有最近 12 小时(大致时间)的更新,允许在集群节点之间重启后进行重新同步。 keystore 为信任的 app 框架使用,存储了服务器的私钥(private key)和其他服务器的公钥(public keys)。 links 跟踪服务器内的连接(这个连接用于跨空间连接)。 notifications 存储页面和空间级别的关注(watches)。 trackbacklinks 方向链接。 confancestors 通过快速查看所有页面的上级祖先来提高权限检查的速度。   https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model  

Confluence 6 数据库表-展现(Appearance)

这部分存储了有关你 Confluence 的外观和布局使用的信息。 decorator 使用自定义 Velocity 布局显示的自定义模板。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表-空间(Spaces)

这个表格与空间的管理有关。 spaces 有关空间使用的信息:key,空间的名称和数字 ID。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表-系统信息(System information)

这些表格有存储数据相关的状态和 Confluence 站点的相关配置信息。 confversion 被用来在升级系统的时候确定那个数据库的版本应该使用,这个表格只对数据库升级有影响。 plugindata 记录系统安装所有的插件的版本和时间。 data 是一个 blob 字段,是插件使用的 JAR 文件,这个通常在集群使用的时候存储。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表-集群(Clustering)

下面的表格包含了 Confluence 站点使用集群的信息。 clustersafety 在通常的情况下,这个表格只有一条记录。 safetynumber 的值是 Confluence 被用来如何找到其他的 Confluence 站点,这些站点是共享数据库但是又不在同一个集群里面。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表-内容(Content)

这部分的内容描述了有关 Confluence 存储内容所使用的表格。内容是用户在 Confluence 存储和分享的信息。 attachmentdata 附件文件的二进制数据。当 Confluence 配置使用数据库保存附件文件的时候,这个表格是唯一使用的表格。否则的话,Confluence 将会将附件存储到本地文件系统中。 attachments Confluence 页面中的附件文件的元数据(Metadata )。 bodycontent Confluence 页面中存储的的内容。版本信息和其他元数据不会存储到这里,这些内容都在 content 表中。 content 为 ContentEntityObject 类提供的持久化对象。其子类通过  contenttype 列进行定义。 content_label 有关内容的文本属性标签。 label content_label 系统中存储的另一部分内容。 content_perm 对象权限的内容级别。 content_perm_set 内容项目和内容项目权限的一对多(one-to-many)映射,这部分是在添加元数据后的。 pagetemplates 后台使用的模板特性。 likes 特定用户赞(liked)过的页面和其他内容。 follow_connections 一个用户关注(following)其他用户的映射列表。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表-授权(Authentication)

下面的表格对用户授权有关的信息进行存储,这部分是通过嵌入到 Confluence 中的  Atlassian Crowd 框架实现的。 cwd_user Confluence 中每一个用户的信息。 cwd_group 每一个用户所属的用户组。 cwd_membership 用户和用户组的映射关系。 cwd_directory Confluence 站点中的用户目录。比如说 Confluence 使用的内部目录或者一个 LDAP 目录。 cwd_application 在授权框架中定义的应用程序(JIRA,Confluence 等)。 https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据库表和参考

扩展下面的链接来显示主要的表格和每一个表格的外键。   单击这里来显示/隐藏表格... AO_9412A1_AOUSER ID AO_9412A1_USER_APP_LINK USER_ID fk_ao_9412a1_user_app_link_user_id AO_9412A1_AOUSER_pkey attachments attachmentid attachmentdata attachmentid fk9dc3e34d34a4917e attachments_pkey attachments attachmentid attachments prevver fk54475f9017d4a070 attachments_pkey attachments attachmentid content_label attachmentid fkf0e7436e34a4917e attachments_pkey attachments attachmentid imagedetails attachmentid fka768048734a4917e attachments_pkey content contentid attachments pageid fk54475f908c38fbea content_pkey content contentid bodycontent contentid fka898d4778dd41734 content_pkey content contentid confancestors ancestorid fk9494e23c37e35a2e content_pkey content contentid confancestors descendentid fk9494e23cc45e94dc content_pkey content contentid content prevver fk6382c05917d4a070 content_pkey content contentid content parentid fk6382c05974b18345 content_pkey content contentid content parentcommenti...

Confluence 6 数据库结构图

Image
结构图细节 下面的 SVG 图片(可缩放矢量图)包括了 Confluence 数据库中使用的所有表。单击下面的连接在你的浏览器中打开图片连接,你也可以随后将图片下载到本地。你可以使用浏览器的缩放快捷键(Ctrl++ 或 Cmd++)来在图片中查看更多细节。 ConfluenceTables-KeysOnly.svg – 显示了所有的表,并且为每一个表只显示了主键(PK)。 ConfluenceTables-AllColumns.svg – 显示了所有表的每一列。 结构图概述 下面的图片显示了核心的表。请注意,这个图片非常大,你需要下载这个图片(右键图片后单击保存)然后在图片浏览器中进行查看。可选的,你可以使用前面提供的 SVG 图片链接来查看 SVG 图片。   单击这里来显示/隐藏图片... https://www.cwiki.us/display/CONF6ZH/Confluence+Data+Model

Confluence 6 数据模型

本文档提供了 Confluence 的数据结构视图(schema )和数据模型概念上的的概述。 备注: Hibernate 的映射文件是针对 Confluence 数据模型的直接描述。在系统中的 Confluence 主 JRA 中你可以找到  *.hbm.xml 文件,JRA 位于() <CONFLUENCE-INSTALLATION>\confluence\WEB-INF\lib\confluence-5.1.1.jar )。 数据库的表,列和其他的属性可能随着 Confluence 的主要发行版本的变化而有所变化。希望找到你 Confluence 站点的数据库定义语言(DDL),请在 Confluence 安装后运行查询。 https://www.cwiki.us/display/CONFLUENCEWIKI/Confluence+Data+Model

Confluence 6 附件存储提取文本文件

当基于文本的文件上传到 Confluence(例如,Word,PowerPoint 等),这些文件中的文本是可以提取并且添加到索引中的,用户可以通过索引来搜索这些文件中的文本内容,不仅仅是搜索文件名。当文件需要被重新索引的时候,我们存储提取后的文本,我们不需要对文本中的内容重新进行索引。 提取后的文本文件,通常是以版本号进行命名的,例如 2.extracted_text , 同时还会存储文件自己的版本(如上面第八级目录中描述的)。我们只保存提取后文件的最新的版本,而不是和文件一样同时还保存了早期的版本。 https://www.cwiki.us/display/CONF6ZH/Hierarchical+File+System+Attachment+Storage

Confluence 6 附件存储文件系统的分级

Image
从 Confluence 3.0 开始,附件的存储方式有了重大的改变和升级。如果你是从 Confluence 2.10 及其早期版本升级上来的,请参考 Upgrading Confluence 页面中推荐的升级路径,同时请阅读 Confluence 3.0 文档中 Hierarchical File System Attachment Storage 页面来获得新系统文件存储结构的相关信息。 Confluence 存储附件,例如文件和图片在文件系统中。Confluence 的附件存储布局设计基于以下的考虑: 限制任何单一目录级别结构中的文件数量(在一些文件系统中,可能有限制每一个目录中可以存储的文件数量)。 针对空间对附件进行分区,这样能够让系统管理对空间进行备份的时候能够针对特定的空间备份附件。 Confluence 的附件有一个数字用来定义属性: 文件自己的内容 id 和 文件所在页面中的内容 id 。这个意思是文件在逻辑上是属于内容的,通常内容又是属于空间(不是所有的内容都属于空间)。Confluence 中的空间文件,目录结构通常有 8 个级别,每一个目录级别的名字通常基于下面的算法。 1 (top) 总是为 'ver003' 这个定义为 Confluence 版本 3 的文件存储格式 2 最小的 3 个数字,这个数字为 空间 id 取模 250 3 下一个最小的 3 个数字,这个数字为 空间 id 取模 250 4 完整的 空间 id 5 附件所附加在 页面的 ID 取模 250 后的最小 3 个数字 6 附件所附加在 页面的 ID 取模 250 后的下一个最小 3 个数字 7 附件所在页面的完整的 content id 8 附件所在完整的 content id 9 这个是文件,这个文件是按照版本号进行命名的,例如:1, 2, 6。 modulo 计算被用来计算整除后的余数,例如 800 modulo 250 = 50. 例如: 希望找到一个特定空间中所有附件存储的目录,进入 <confluence url>/admin/findspaceattachments.jsp 然后输入空间的 Key,这个将会返回这个空间所存储文件系统中的目录附件。 上面...

Confluence 6 附件是如何被索引的

当一个文件被上传到 Confluence 后,Confluence 将会尝试对文件进行解压,然后对文件中的内容进行索引。这样系统就能够允许用户对文件中的内容进行搜索,而不仅仅是搜索文件名。这个过程对系统的内存要求比较高,如果你上传的附件比较大的时候还会导致内存溢出。Confluence 有下面的一些配置被用来避免出现内存溢出的错误: 如果你上传的文件大小大于 100 MB,Confluence 将不会尝试对文件进行解压和内容进行索引。你只能在 Confluence 中对文件名进行查找。 如果你上传的文件为下面的一些文件类型,Confluence 仅仅对不超过大小的文件类型进行解压: 1 MB Excel 的文本(.xlsx) 8 MB PDF 的文本(.pdf) 10 MB Text 文件的文本(包括 .txt, .xml, .html, .rtf 等) 16 MB Word  的文本(.docx) 当从上面的文件类型中解压出来的文件超过 1MB,那这个内容就是可以在系统中进行查找,但是 Confluence 将不会在快速查找中显示结果。 如果 Confluence 停止解压文本,那么这个文本文件中只有部分内容可以进行查找。 Confluence 只会对文件进行解压和索引一次,如果在这个过程中失败了,Confluence 不会再出尝试进行解压和索引。 一些变量是可以通过 system properties 的参数进行配置的。如果你在附近进行索引的过程中遇到内存错误,你可能希望对系统进行调整,调整可以使用的参数如下: atlassian.indexing.attachment.maxsize officeconnector.excel.extractor.maxlength officeconnector.textextract.word.docxmaxsize atlassian.indexing.contentbody.maxsize https://www.cwiki.us/display/CONF6ZH/Configuring+Attachment+Size

Confluence 6 配置附件大小

Image
你可以限制上传到 Confluence 的附件的大小。 配置可以上传到 Confluence 的附件所允许的大小: 进入  >  基本配置( General Configuration) . 选择 编辑(Edit) 。 在 最大附件允许大小(Attachment Maximum Size) 的边上输入你允许上传的附件最大的大小。 默认的值为 100MB。 选择 保存(Save) 。 https://www.cwiki.us/display/CONF6ZH/Configuring+Attachment+Size

Confluence 6 整合到支持的附件存储选项

Image
如果你现在正在存储附件到 WebDav 或者你的数据库中。你可以整合附件的存储到文件系统中。当你的附件从数据库中被合并到文件系统后,你存储在数据库中的附件数据就可以从数据库中删除了。 当附件合并进行的时候,所有使用 Confluence 的用户将会被禁止访问 Confluence 实例。这样配置的原因是避免在合并的时候出现数据库错误。当合并完成后,用户就可以继续使用 Confluence 了。 希望让日志在数据库合并的时候能够输出更多的内容,添加  com.atlassian.confluence.pages.persistence.dao 为 DEBUG 级别。请参考  Configuring Logging 页面中的内容。 希望对附件进行合并,请按照下面的步骤进行: 进入   >  基本配置( General Configuration)  > 附件存储(Attachment storage) 。 单击 编辑( Edit )来修改配置。 选择 Confluence home 目录中的本地存储(Locally in Confluence home directory) 。 单击 保存(Save ) 来保存修改。 下面的界面将会出现,询问你确定你的修改。单击 'Migrate' 将会带你进入到修改合并进程显示的界面中。 屏幕截图:合并警告 下面的外部链接提供了有关从数据库中合并附件到本地文件系统中的一些有用的信息,这些信息可能能帮到你,请参考 -  https://www.scandio.de/blog/de/2013/05/confluence-attachment-migration-the-safe-way-2 . https://www.cwiki.us/display/CONF6ZH/Attachment+Storage+Configuration

Confluence 6 附件存储选项

在早期的 Confluence 版本中,我们允许存储附件到 WebDav 或者 Confluence 数据库中。针对新的 Confluence 安装,我们不再支持这 2 种存储了。 本地文件系统 在默认的情况下,Confluence 存储附件到 Confluence 配置的 home 目录下的 attachments 目录中。 数据库(已弃用) 在 Confluence 5.4 及其早期的版本,我们给了系统管理员存储附件到数据库中的选项,系统管理员可以在这些版本中配置附件的存储。 存储附件到数据库中可以带来一些好处(例如,可以更加容易的进行备份,避免文件系统中出现的字符集不支持的错误),但是请注意这种存储方式将会大大加大数据库空间的使用,随着时间的推移,你的数据库可能需要更多的存储空间。 WebDav(已弃用) WebDav 在现在的存储中已经不是一个存储选项了,已经完全启用了。 这个对你使用 WebDav 访问 Confluence 的空间,页面或者附件不会产生影响,请参考页面  Configuring a WebDAV client for Confluence 中的具体配置内容。 https://www.cwiki.us/display/CONF6ZH/Attachment+Storage+Configuration

Confluence 6 附件存储配置

Image
在默认的情况下 Confluence 的附件存储在 home 目录中(例如,在文件系统)。 希望对 Confluence 的附件存储进行配置: 在屏幕的右上角单击  控制台按钮  ,然后选择  General Configuration 链接。 选择 附件存储(Attachment Storage) 。 https://www.cwiki.us/display/CONF6ZH/Attachment+Storage+Configuration

Confluence 6 "net.sf.hibernate.PropertyValueException: not-null" 相关问题解决

如果你遇到了下面的错误信息,例如: ERROR [Importing data task] [confluence.importexport.impl.ReverseDatabinder] endElement net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.user.impl.hibernate.DefaultHibernateUser.name 这个意思是在表中有一个不因为为 null 的地方的值为 null 了。在上面的例子中,这个在 USERS 表中的 name 列有记录为 null。有时候这个问题也会出现在 ATTACHMENTS 表中。 删除上面为 null 的记录,然后重新进行 xml 导出和导入。 https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore

Confluence 6 "Duplicate Key" 相关问题解决

如果你遇到了下面的错误信息,例如: could not insert: [bucket.user.propertyset.BucketPropertySetItem#bucket.user.propertyset.BucketPropertySetItem@a70067d3]; SQL []; Violation of PRIMARY KEY constraint 'PK_OS_PROPERTYENTRY314D4EA8'. Cannot insert duplicate key in object 'OS_PROPERTYENTRY'.; nested exception is java.sql.SQLException: Violation of PRIMARY KEY constraint 'PKOS_PROPERTYENTRY_314D4EA8'. Cannot insert duplicate key in object 'OS_PROPERTYENTRY'. 这个错误信息说的是定义为'PK_OS_PROPERTYENTRY_314D4EA8' 的主键在表 'OS_PROPERTYENTRY' 中重复了。 你可以在 'OS_PROPERTYENTRY'  表中找到 'PK_OS_PROPERTYENTRY_314D4EA8' 中定义的主键,然后找到重复的值后删除重复的值。需要确定  "PRIMARY KEY" 必须保持不重复。一个可以找到 'OS_PROPERTYENTRY' 表中是否有重复主键的 SQL 如下: SELECT ENTITY_NAME,ENTITY_ID,ENTITY_KEY,COUNT(*) FROM OS_PROPERTYENTRY GROUP BY ENTITY_NAME,ENTITY_ID,ENTITY_KEY HAVING COUNT(*)>1 https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore

Confluence 6 针对 key "cp_" 或 "cps_" 的 "Duplicate Entry" 问题解决

如果你遇到了下面的错误信息,例如: com.atlassian.confluence.importexport.ImportExportException: Unable to complete import because the data does not match the constraints in the Confluence schema. Cause: MySQLIntegrityConstraintViolationException: Duplicate entry '1475804-Edit' for key 'cps_unique_type' 上面表示在 XML 的备份文件中恢复的数据库没有正确的权限,通常是因为使用了第三方的插件的原因。这个问题在 Confluence 3.5.2 的后续版本中已经修复了,请参考 CONF-22123 中的说明。如果你的版本已经是新的版本了,你的导出文件可能需要手动进行修改来删除掉重复权限实例,或者整个记录都需要被删除。下面的 SQL 可以被用来找到这个记录。 SELECT * FROM CONTENT_PERM WHERE USERNAME IS NULL AND GROUPNAME IS NULL ;   SELECT cp.ID, cp.CP_TYPE, cp.USERNAME, cp.GROUPNAME, cp.CPS_ID, cp.CREATOR, cp.CREATIONDATE, cp.LASTMODIFIER, cp.LASTMODDATE FROM CONTENT_PERM cp WHERE cp.USERNAME IS NOT NULL AND cp.GROUPNAME IS NOT NULL ;   SELECT cps1.ID, cps1.CONTENT_ID, cps1.CONT_PERM_TYPE FROM CONTENT_PERM_SET cps1, CONTENT_PERM_SET cps2 WHERE cps1.ID <> cps2.ID AND cps1.CONTENT_ID = cps2.CONTEN...

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(Datab...

Confluence 6 XML 备份恢复失败的问题解决

Image
XML 站点备份仅仅针对新数据库恢复的时候是必要的。 Upgrading Confluence , Setting up a test server 或者 Production Backup Strategy 最好还是通过备份 SQL 的方法来备份。 在创建和导入备份的时候出现了错误? 在创建备份的时候出现了错误 请参考 Troubleshooting failed XML site backups 页面 在导入备份的时候出现了错误 请参考下面的策略 常见问题 希望删除和导入一个小站点: 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore)。 选择 选择文件(Choose File) 然后在本地磁盘上浏览站点导出文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 上传和恢复(Upload and Restore)。 从恢复目录中导入一个站点: 拷贝你的导出文件到 <confluence-home>/restore. (如果你不能确定这个目录在那里的话,你可以进入 备份和恢复(Backup and Restore) 界面,会告诉你目录的存储路径) 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore) 。 在 从 Confluence Home 目录中恢复备份(Restore a backup from the Confluence Home Directory) 中选择你的导出备份文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 恢复(Restore) 。 https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore

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

错误可能是因为数据库突然不可访问而产生。如果你在你的日志中看到了错误  'Couldn't backup database data' ,这个指南将会帮助你更正这个错误。我们强烈推荐你备份 Confluence 数据库和 Confluence 的 home 目录这种备份方式来备份你的 Confluence 服务器。你可以使用 Restoring Data from other Backups 的方法来恢复你的备份,如果需要的话。如果你对数据库 SQL 并不熟悉的话,我们建议你联系你的数据库管理员来获得相关的帮助。 完美解决方案 Production Backup Strategy 备份方案是完美并且最有效的备份方案。如果你在备份 XML 方式遇到了问题,不管是因为内存溢出还是下面描述的问题,我们建议你使用 SQL 的备份方案为你可选的备份方案。 识别并更正问题 希望找到数据库备份的错误或者中断的原因,修改状态信息的日志,能够让你获得更多的有用的信息,然后根据日志修改每一个数据库的配置: 停止 Confluence。 如果你使用的是外部数据库,请使用数据库管理工具来创建一个手动的数据库备份。 备份你的 Confluence  home 目录。你可以使用这个数据库的 SQL 备份来 恢复你的整个站点 。 打开 my_confluence_install/confluence/WEB-INF/classes/log4j.properties 然后在文件的后面添加下面的行,并保存。 log4j.logger.com.atlassian.confluence.importexport.impl.XMLDatabinder=DEBUG, confluencelog log4j.additivity.com.atlassian.confluence.importexport.impl.XMLDatabinder= false 找到你的 atlassian-confluence.log 。移动或者删除所有已经存在的 Confluence 日志,这个能够让你更加容易找到输出的错误信息。 重启 Confluence 并且登录。 开始备份,并等待错误出现。 你必须现在就要查看你的日志文件来找到是哪一...

Confluence 6 XML 备份失败的问题解决

XML 站点备份仅仅被用于整合到一个新的数据库。 设置一个测试服务器 或者 创建一个可用的备份策略 相对 XML 备份来说是更合适的策略。 相关页面: Enabling detailed SQL logging 在创建和导入备份的时候出现了错误? 在创建备份的时候出现了错误 请参考下面的策略 在导入备份的时候出现了错误 请参考 Troubleshooting XML backups that fail on restore 页面 https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+failed+XML+site+backups

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

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如果你能提供下面 2 个备份的话: 一个有关 home 目录的所有备份。 一个有关你数据库的备份(如果你使用的是外部数据库的话)。 有关恢复备份的方法基于你使用的是内部数据库还是外部数据库会有些不同。外部数据库主要像 Oracle, MS SQL Server, MySQL 或者 Postgres。 嵌入数据库 如果你使用的是嵌入数据库,那么这个数据位于 database 文件夹内,这个文件夹在你 Confluence 的 Home 目录中,你需要进行下面的一些操作: 获得你最近备份的 Home 文件夹备份文件。 解压 Confluence 的分发包,然后修改 confluence-init.properties 指向到这个目录。 外部数据库 如果你使用的是外部数据库,你需要进行下面的操作: 为你的 Home 目录和数据库准备备份(备份文件中最好添加备份备份的时间和日期)。这就可以了,请确定你的 home 目录能够在文件系统中被访问到,同时数据库也可以被连接。 如果你的数据库有不同的名字,或者是在一个不同的服务器上,你需要修改  confluence.cfg.xml 文件中的 JDBC URL 配置字符串,这文件在 Confluence 的 Home 目录中。变量使用的名称为 hibernate.connection.url 。 解压 Confluence 的分发包,然后修改 confluence-init.properties 指向到 Home 目录。 https://www.cwiki.us/display/CONF6ZH/Restoring+Data+from+other+Backups

Confluence 6 从生产环境中恢复一个测试实例

Image
请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明。 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 Confluence 服务器,同时还会设置一个测试实例来测试升级等。在这种情况下,你的 Confluence 可以回运行 2 个不同的版本,而且也是非常常见的。这个文档将会知道你如何拷贝生产环境中的数据到一个测试实例中,同时测试环境的版本和生产环境中的版本还有可能是不同的。 在开始这个操作指南之前,请确定你已经阅读了 升级 Confluence 的正常步骤 页面中的内容。 本页面中的信息 不能应用 到 Confluence Cloud 中。 使用生产数据升级测试 Confluence 实例 最有效的方法是拷贝生产环境中的 home 目录和数据库到测试实例中。我们将会修改测试实例中的数据库配置信息指派到测试数据库,让其他实例的元数据(最重要的是 Confluence 的构建号码 )与服务器上保持一致。 关闭你的测试实例。 恢复生产数据库到你的测试数据库服务器上。 在测试实例的服务器上的 home 目录中找到 confluence.cfg.xml 文件并进行备份。 拷贝生产环境下的 Confluence home 目录到测试服务器上。 打开 confluence.cfg.xml 文件,你也可以拷贝这个文件的内容到文本编辑器上。修改数据库的设置,让测试服务器的数据库配置是指向测试服务器的数据库服务器地址的。 请确定你没有将测试服务器的数据库配置指向到生产数据库上 。(你可以在第三步中对比你的备份,如果你希望获得数据库的设置的话,不要仅仅拷贝这个文件 - 你需要服务器上的构建号码不被修改来确定数据库是从一个老版本的 Confluence 升上来的)。 在你重启你的 Confluence 测试实例之前,你需要运行下面的步骤,再次确保你的数据库连接没有连接到生产服务器上。 确定断开生产系统连接 请确定没有连接到外部系统,你需要禁用接收和发送邮件服务。 可以通过运行下面的数据库查询来全局禁用发送邮件服务: SELECT * FROM BANDANA WHERE BANDANAKEY = ...

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

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现在的版本,然后使用这个临时的实例导出空间的备份文件。 下载与你 Confluence 导出文件相同的 Confluence 安装实例(你可以通过 Confluence Downloads Archive 中的链接找到 Confluence 的历史归档安装文件)。 将你下载的老的 Confluence 程序安装一个零食的服务器上。 将你的导出文件在安装的 Confluence 临时服务器上进行导入。 升级你安装的临时 Confluence 服务器到你希望运行的 Confluence 相同的版本(请参考 Upgrading Confluence 页面中的内容)。 从你安装的临时 Confluence 服务器中导出你的的空间为备份 XML 文件(现在这个备份文件有了正确的版本号)。 在你的生产环境中的 Confluence 上导入你在上面导入的最新版本的空间备份文件。 https://www.cwiki.us/display/CONFLUENCEWIKI/Restoring+a+Space

Confluence 6 恢复一个空间的问题解决

如果你在导入的时候遇到了问题,检查下面的一些提示。 你的文件太大而不能上传? 这个是非常常见的错误。出现的原因是备份文件不能在规定的时间内上传到服务器上。为了避免这个错误,放置你的导出文件到  <confluence-home>/restore 目录中,然后从这里进行导入。 你正在尝试从早期 Confluence 版本的导出文件中导入? 这是不可能的。你只能将你的导出文件导入到相同的版本或者最后支持的版本中。 你的空间是从 Confluence 云中导出的? 你只能使用这个备份文件导入到 Confluence 6.0 及其后续版本中。尝试将这个备份导入到早期版本中的话将会导致主要问题。 与空间相同的一个 Key 已经存在了? 空间的 key 在整个站点中应该是独一无二的。当你导入的空间和现在运行的站点中的 key 相同的话,你应该删除掉现在站点正在运行的空间的 Key 然后再尝试重新导入。 导入过程超时导致内存错误? 如果被导入的空间数据量比较多,是大型站点。你需要临时增加你 Confluence 的可用内存。请参考  How to fix out of memory errors by increasing available memory 页面中的内容。 你是否下载导出文件到 a Mac? 如果你得到了一个错误说 Confluence 不能找到 exportDescriptor.properties 文件。有可能是 OS X 为你解压备份文件同时将原始 Zip 文件发送到了垃圾箱。你需要从垃圾箱中重新恢复被删除的 zip 文件,然后再次尝试导入。 https://www.cwiki.us/display/CONFLUENCEWIKI/Restoring+a+Space

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

Image
有下面 2 中方法可以导入一个空间——通过上传一个文件,或者从你 Confluence 服务器上的一个目录中导入。上传文件仅仅是针对一个小站点的情况。为了取得最好的导入结果,我们推荐你从服务器上的目录上进行恢复。 希望删除和导入一个小空间: 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore) 。 选择 选择文件(Choose File) 然后在本地磁盘上浏览空间导出文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 上传和恢复(Upload and Restore)。   从恢复目录中导入一个空间: 拷贝你的导出文件到 <confluence-home>/restore 。 (如果你不能确定这个目录在那里的话,你可以进入 备份和恢复(Backup and Restore) 界面,会告诉你目录的存储路径) 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore) 。 在 从 Confluence Home 目录中恢复备份(Restore a backup from the Confluence Home Directory) 中选择你的导出备份文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 恢复(Restore) 。 在导入数据的过程中,重构索引是一个选项。在你完成重构索引之前,你的站点是不能够访问的,但是如果你的站点存储的数据比较多的话,你可以选择在站点内容成功导入到系统后选择 rebuild the index manually 选项。 https://www.cwiki.us/display/CONFLUENCEWIKI/Restoring+a+Space

Confluence 6 恢复一个空间

你可以 导出一个空间 – 包括页面,评论和附件到一个压缩的 XML 文件中,可选的你可以在 XML 文件中包括所有空间使用的附件。希望导入空间到其他的 Confluence 站点中,请按照下面的方法进行操作。 你需要具有 系统管理员 权限才能从 XML 的备份文件中恢复空间。 https://www.cwiki.us/display/CONFLUENCEWIKI/Restoring+a+Space

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。 我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备份不推荐使用,如果你有独立的备份策略的话。 从其他备份中恢复。 如果你的每天备份基于什么原因不能被恢复。但是你成功的备份了你的数据库和 Confluence home 目录。你将可用通过 restore from these backups 页面中描述的方法进行恢复。 https://www.cwiki.us/display/CONFLUENCEWIKI/Restoring+a+Site

Confluence 6 恢复一个站点问题解决

如果你在导入的时候遇到了问题,检查下面的一些提示。 你的文件太大而不能上传? 这个是非常常见的错误。出现的原因是备份文件不能在规定的时间内上传到服务器上。为了避免这个错误,放置你的导出文件到  <confluence-home>/restore 目录中,然后从这里进行导入。 你是否正在导入备份到一个早期的 Confluence 站点中? 如果可以的话。你最好让 Confluence 在相同的版本之间进行导入和导出。 导入过程超时导致内存错误? 如果被导入的站点数据量比较多,是大型站点。你需要临时增加你 Confluence 的可用内存。请参考  How to fix out of memory errors by increasing available memory 页面中的内容。 你的用户名或密码不能被识别? 所有的用户数据将会在导入的时候被重写。你需要使用导入文件使用的系统用户名和账号进行登录。如果你不知道系统用户的管理员密码,你需要从数据库中恢复这个用户的密码,请参考 Restore Passwords To Recover Admin User Rights 页面中的内容。 你的站点是从 Confluence 云中导出的? 你只能使用这个备份文件导入到 Confluence 6.0 及其后续版本中。Cloud 导出并不包含一个系统管理员账号,所以你需要启动 Confluence 为恢复模式,创建一个新的系统管理账号,然后将这个账号添加到 confluence-administrators 用户组。请参考 Restore Passwords To Recover Admin User Rights 页面中的内容。 你是否下载导出文件到 a Mac? 如果你得到了一个错误说 Confluence 不能找到 exportDescriptor.properties 文件。有可能是 OS X 为你解压备份文件同时将原始 Zip 文件发送到了垃圾箱。你需要从垃圾箱中重新恢复被删除的 zip 文件,然后再次尝试导入。 导入到一个 Confluence 数据中心站点? 在导入站点之前,你必须停止 Synchrony 。 https://www.cwiki.us/display/CONFLUENCEWIKI/Re...

Confluence 6 导入一个 Confluence 站点

Image
有下面 2 种类方法可以导入一个站点 - 通过上传一个文件或者从你 Confluence 服务器上读取一个目录。上传文件仅仅是针对一个小站点的情况。为了取得最好的导入结果,我们推荐你从服务器上的目录上进行恢复。 希望删除和导入一个小站点: 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore)。 选择 选择文件(Choose File) 然后在本地磁盘上浏览站点导出文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 上传和恢复(Upload and Restore)。 从恢复目录中导入一个站点: 拷贝你的导出文件到 <confluence-home>/restore. (如果你不能确定这个目录在那里的话,你可以进入 备份和恢复(Backup and Restore) 界面,会告诉你目录的存储路径) 进入  >  基本配置( General Configuration)  >  备份和恢复(Backup and Restore) 。 在 从 Confluence Home 目录中恢复备份(Restore a backup from the Confluence Home Directory) 中选择你的导出备份文件。 取消选择 重构索引(Build Index) 如果你希望重构你的索引为最新的存储。 选择 恢复(Restore) 。 在导入数据的过程中,重构索引是一个选项。在你完成重构索引之前,你的站点是不能够访问的,但是如果你的站点存储的数据比较多的话,你可以选择在站点内容成功导入到系统后选择 rebuild the index manually 选项。 使用 Confluence 数据中心? 如果你使用的是 Confluence 数据库中心,同时还启用了编辑协作功能,在对数据进行恢复的时候还有一些其他的步骤需要做。你需要停止 Synchrony completley,同时我们推荐只有在 Confluence 一个节点运行的时候导入数据,同时将网站访问的数据不要导向到这个节点。 一旦...

Confluence 6 恢复一个站点

Image
这个页面对如何从一个 XML 导出文件中恢复到一个已经存在的 Confluence 站点进行描述。 如果你希望导入数据倒一个新的站点,请参考  restoring from backup during setup  页面中的内容。 你需要具有 系统管理员 权限才能进行这个操作。 导入一个站点导出文件将会: 重写所有在数据库中已经存在 Confluence 的内容。在开始导入之前先备份你的数据库。 退出你的当前登录的 Confluence ,确保你已经知道了导出文件中的账号细节信息。 在你开始之前: 所有的内容将会被替换。 导入一个站点将会替换掉你当前站点中的所有内容和用户。在导入之前备份你的数据库。 选择空间恢复不可用。 你不能在恢复的过程中选择需要恢复的特定空间。 版本兼容性。 Confluence 能够接受从前期版本中进行恢复,你可以在备份和恢复界面中选择哪个版本可以被接受。你只能导入到你 Confluence 的 最新版本 ,而不是前期版本。 最好的结果, Confluence 在相同的版本之间进行导入和导出。 XML 备份导出文件不应该应用到 Confluence 的升级上。 通过 Upgrading Confluence 页面中描述的内容进行升级。 检查你导出文件的兼容性 为了检查你导出的站点可以被成功恢复: 设置你希望导入的 Confluence 站点。 进入  >  基本配置( General Configuration)  > 备份和恢复(Backup and Restore)。 检查接受的 Confluence 版本 - 列出在 Upload and restore a site/space backup 链接中。针对 Confluence 5.9,下面的图片显示了可以接受的 Confluence 备份和恢复信息。针对你 Confluence 的情况,可以使用的备份和恢复信息可能不同。 你不能导入到一个 早期的 Confluence 版本中。 例如,如果你的备份文件是从 Confluence 5.9 中创建的,你不能讲这个备份文件导入到 Confluence 5.5 安装实例中。 如果你的备份文件是从 Co...