【问题标题】:Transfer liferay files (documentt library) between two servers在两台服务器之间传输 liferay 文件(documentt 库)
【发布时间】:2012-09-27 09:05:23
【问题描述】:

我已经在开发环境中建立了我的 liferay 网站,现在可以发布了。我还在两个不同的服务器上安装了两个 liferay 节点,我想在其中放置我的网站。 Server1 处于活动状态,server2 作为备份。

问题是当我开始开发的时候,我不知道有一天我会需要有两台服务器的结构,所以我把所有的文档和图像都存储在文件系统上,而不是存储到数据库中。所以基本上有了这个设置,当我在服务器 1 上进行更改时,我必须手动将文档库传输到服务器 2,就像我为主题所做的那样。

我尝试将文档库位置从文件系统更改为 portal-ext.properties 中的数据库,但这没有帮助。

所以,我的问题:

  • 现在有没有办法将这些文件传输到数据库中,供两台服务器共享?如果没有,

  • 是否可以通过某种脚本以某种方式将文档库从 server1 自动传输到 server2?

谢谢,

阿迪亚

【问题讨论】:

    标签: liferay


    【解决方案1】:

    如果server2是冷备备份服务器,假设你在同一时刻对server1的Liferay数据目录和数据库进行了正确备份,你只需将Liferay数据目录的备份恢复到server2,restore将DB到相应时刻作为数据目录备份并启动server2。

    在热备场景和集群环境中,事情会变得有点复杂,因为您需要使用一个通用的地方来存储文档、图像、搜索索引等......最简单的方法是将所有内容存储在数据库中或在一个通用文件系统上,以便多个节点始终处理相同的数据。

    如果您想将存储在磁盘上的当前文档集导入数据库,最简单的方法是使用控制面板中的 服务器 > 服务器管理 > 数据迁移 选项卡。它具有将文档从现有存储库(即磁盘)迁移到另一个存储库的选项,在您的情况下是 JCRStore,因为该存储库可以配置为使用数据库。

    【讨论】:

    • 谢谢菲梅兹。是的,我现在正在尝试使用该 JCR 选项将所有内容迁移到数据库。不过有一件事;对于数据库 URL 参数,我给出了这个值:,但它在抱怨一些事情,很可能是 & 运算符,表示“无效的存储库配置文件”。知道我应该在 URL 路径中设置什么吗? LiferayDB 是我的数据库,我从一开始就一直在使用它。
    • 它可能是它抱怨的 & 字符,在这种情况下,您应该能够通过将所有 & 字符更改为 & 来解决这个问题
    • 现在我收到以下错误:“无法登录工作区 liferay”和“无法创建 PoolableConnectionFactory(用户“@'localhost”拒绝访问数据库“liferayDB”)'。我有 就像它是数据库的默认值一样。我只定义了一个用户名;我还没有为这一切设置密码。那么这些是从哪里来的呢?谢谢。
    • 您应该为 repository.xml 文件中的所有部分定义完整的数据库连接属性;这意味着驱动程序、url、用户、密码、模式和 schemaObjectPrefix。您还可以在应用服务器中定义一个数据库,然后从 repository.xml 中将其作为 JNDI 名称进行引用,这样可以稍微简化配置。
    • 顺便问一下,数据库应该是一个全新的数据库,还是jackrabbit连接到已经存在的数据库无关紧要?
    最近更新 更多