Confluence 6 从生产环境中恢复一个测试实例
请参考 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 = 'atlassian.confluence.smtp.mail.accounts'; |
---|
SELECT * FROM BANDANA WHERE BANDANAKEY = 'atlassian.confluence.space.mailaccounts'; |
---|
修改上面的 'SELECT *' 为 'DELETE',如果你确定你希望删除确定的账号。
一旦你完成这个操作,你可以重启你的测试实例并且这个测试实例将不会接受和发送任何邮件。需要仔细考虑你系统中可能使用的其他插件,这些插件可能会直接连接到你的生产服务器上(例如 SQL 宏等)。在你重启测试实例之后,这些插件应该正常的被禁用。
你可以为你的测试实例创建一个 开发者许可证,然后将这个许可证在你启动 Confluence 后上传到服务器上。
https://www.cwiki.us/display/CONF6ZH/Restoring+a+Test+Instance+from+Production
- Windows下程序启动时出现0xc000007b错误的解决方案
- 外媒报道:CBM.com、NMA.com等域名齐交易
- ObjectDataSource与GridView配合使用经验总结系列一:数据绑定
- ObjectDataSource与GridView配合使用经验总结系列二:分页
- 网页优化系列二:使用Cache缓存静态文件、图片(asp.net版)
- Linux用户与“最小权限”原则
- WPF一步一脚印系列(1):万事起头难
- 自定义迭代器使用foreach
- 理解cookie的path和domain属性
- 静态页面设置缓存、动态页面设缓存(不断更新中。。。。)
- 区块链技术如何把你的游戏资产真正变为你的资产
- Python标准库07 信号 (signal包,部分os包)
- 当css属性width设为100%时
- GridView实战一:自定义分页、排序、修改、插入、删除
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法