2.2. 执行升级

如何升级 SGD 取决于您是在升级单服务器阵列还是多服务器阵列。如果对 SGD 进行了定制,则可能需要手动升级定制的文件。

2.2.1. 如何升级已获得完全使用许可的单服务器阵列

  1. 确保阵列中没有正在运行的用户会话和应用程序会话(包括暂停的会话)。

  2. 通过安装新的 SGD 版本来升级服务器。

2.2.2. 如何升级已获得完全使用许可的多服务器阵列

多服务器阵列中的所有 SGD 服务器都必须运行相同版本的 SGD 软件。这意味着,要升级某个阵列,您必须先拆分该阵列,分别升级每个服务器,然后再重新构建该阵列。

  1. 确保阵列中没有正在运行的用户会话和应用程序会话(包括暂停的会话)。

  2. 拆分阵列。

    主 SGD 服务器上,从阵列中分离各辅助 SGD 服务器:

    # tarantella array detach --secondary server
    

    一次只能分离一台辅助 SGD 服务器。对阵列结构进行更改后,请等待 SGD 将更改复制到阵列中的所有 SGD 服务器上,然后再进行进一步的更改。在主 SGD 服务器上运行 tarantella status 命令以检查阵列的状态。

  3. 通过安装新的 SGD 软件版本来升级主 SGD 服务器。

  4. 通过安装新的 SGD 软件版本来升级各辅助 SGD 服务器。

  5. 重新构建阵列。

    所有 SGD 服务器上的时钟必须同步。如果时间差超过一分钟,阵列连接操作将失败。

    主 SGD 服务器上,将各辅助 SGD 服务器添加到阵列中:

    # tarantella array join --secondary server
    

    一次只能添加一台辅助 SGD 服务器。对阵列结构进行更改后,请等待 SGD 将更改复制到阵列中的所有 SGD 服务器上,然后再进行进一步的更改。在主 SGD 服务器上运行 tarantella status 命令以检查阵列的状态。

    当某台辅助 SGD 服务器被添加到阵列中后,它将获得主 SGD 服务器上安装的所有许可证密钥。

2.2.3. 升级定制的 SGD 安装

进行升级时,SGD 安装程序会保留它所发现的定制文件,但不会对它们进行升级。您必须手动升级这些文件。可能需要升级以下两组文件:

  • SGD Web 服务器文件-Web 应用程序文件以及用来配置 SGD Web 服务器的文件

  • SGD 服务器文件-SGD 服务器使用的文件(如登录脚本)

进行升级后您可能需要注意以下两类定制文件:

  • 定制 (Customized) 文件-标准 SGD 安装中包含的已被 SGD 管理员更改的文件

  • 自创建 (bespoke) 文件-您的组织创建并添加到 SGD 安装中的文件

2.2.3.1. 升级定制的 SGD Web 服务器文件

升级时,SGD 安装程序会备份它检测到的所有定制 SGD Web 服务器文件。备份的文件及其位置列在 /opt/tarantella/var/log/webservercustomized.list 日志文件中。

要升级定制的文件,请使用 diffpatch 之类的实用程序来比较并合并备份文件与标准 SGD 安装中的文件之间的差异。

SGD 安装程序会将找到的所有自创建 SGD Web 服务器文件复制到新安装中。这些文件不会被更改。

2.2.3.2. 升级定制的 SGD 服务器文件

进行升级时,SGD 安装程序会将它检测到的定制和自创建 SGD 服务器文件备份,并生成以下日志文件:

  • /opt/tarantella/var/log/upgraded.files-变化内容的摘要

  • /opt/tarantella/var/log/customized.list-管理员编辑过或添加的所有文件的列表

  • /opt/tarantella/var/log/customizedchanged.list-管理员编辑过且在升级过程中有所更改的所有文件的列表

  • /opt/tarantella/var/log/docrootjava.log-与原始安装相比,新增的或修改过的 Java 技术文件的列表

可使用这些日志文件来确定需要手动升级的文件。

如何手动升级定制的 SGD 服务器文件

  1. 创建定制文件的副本。

  2. 找出两个 SGD 版本之间的变化。

    customizedchanged.list 日志文件列出了必须手动升级的所有定制文件。对于此日志文件中列出的每个文件,系统中都将具有该文件的三个版本:

    • 旧的定制版本,位于以下某一个目录中:

      • /opt/tarantella/var/serverresources.oldversion,其中保存的是登录脚本。

      • /opt/tarantella/etc/data.oldversion,其中保存的是其他文件(如色彩表)。

    • 旧的非定制版本,位于 /opt/tarantella/etc/templates.oldversion 目录中。

    • 新的非定制版本,位于 /opt/tarantella/etc/templates 目录中。

    可使用 diff 之类的实用程序来比较旧的非定制文件与新的非定制文件。这将突出显示两个 SGD 版本之间发生的变化。

  3. 将变化内容应用到定制文件中。

    使用 patch 之类的实用程序将在步骤 2 中找出的变化应用到定制文件的副本中。

  4. 将升级后的定制文件复制到新 SGD 安装中的正确位置。

如何手动升级自创建的 SGD 服务器文件

  1. 创建自创建文件的副本。

  2. 找出两个 SGD 版本之间的变化。

    docrootjava.logcustomized.list 日志文件列出了可能需要手动升级的所有自创建文件。

    升级自创建文件的唯一方法是:比较标准 SGD 文件的不同版本,找出发生的变化,然后将这些变化内容应用到自创建文件中。

    可使用 diff 之类的实用程序来比较旧的非定制文件与新的非定制文件。这将突出显示两个 SGD 版本之间发生的变化。

    要找出发生的变化,请比较以下文件:

    • 旧版的标准 SGD 文件,位于 /opt/tarantella/etc/templates.oldversion 目录中。

    • 新版的标准 SGD 文件,位于 /opt/tarantella/etc/templates 目录中。

  3. 将变化内容应用到自创建文件中。

    使用 patch 之类的实用程序将在步骤 2 中找出的变化应用到自创建文件的副本中。

  4. 将升级后的自创建文件复制到新 SGD 安装中的正确位置。