手动迁移至 ThingWorx 9.x:Linux
要确定升级路径,请参阅
升级表格。以下步骤仅适用于迁移。要进行就地升级,请参阅
手动就地升级:Linux。
A.) 升级前
1. 如果您使用的是 RHEL 操作系统,请先验证是否已升级至支持的版本,然后再升级 ThingWorx。有关详细信息,请参阅
系统要求。
2. 在开始升级之前,建议执行以下操作:
◦ 数据库转储
◦ 备份 ThingworxStorage 和 ThingworxPlatform 文件夹中的所有数据。
◦ 备份 Tomcat_home 文件夹。这包括 bin、conf、lib、temp、webapps 和 work 文件夹。
◦ 如果要升级到支持内容安全策略的 ThingWorx 版本 (9.5.1 及更高版本),请将 web.xml 从 “<tomcat_install_dir>/webapps/Thingworx/WEB-INF” 复制到其他文件夹以供日后使用。
3. 如果除 ThingWorx 平台外,还使用 ThingWorx Apps:
| 在当前用户具有写入权限的文件夹中下载并提取 ThingWorx 内容。需要具有写入权限,因为更新脚本会在此过程中创建一些文件。 |
6. 验证您是否正在运行所需版本的 Tomcat 和 Java。有关版本需求的信息,请参阅
系统要求文档。
| 如果必须升级 Java 版本,请在升级 Java 前先升级 ThingWorx。 |
8. 当您升级 MSSQL 或 Azure SQL 时,如果数据表中缺少任何自定义索引字段值,升级将失败。在开始升级过程之前,请验证是否所有自定义索引字段均具有值。
| 如果不能执行此操作,则升级将失败,您必须再次部署较旧版本 (如果进行了架构更新,则需要回滚/恢复数据库),并添加缺失的索引值或从数据表中移除自定义索引,然后再执行升级。 |
9. 将以下内容添加到 Apache Tomcat Java 选项中:
-Dlog4j2.formatMsgNoLookups=true
B.) 导出数据和实体
1. 停止 Tomcat:在 Tomcat 属性中,单击停止。等待 Tomcat 停止。
2. 强烈建议您先备份以下文件夹,然后再继续操作:
◦ Apache Software Foundation/Tomcat x.x/webapps/Thingworx
◦ <Tomcat 安装位置>://ThingworxStorage
3. 启动 Tomcat:在 Tomcat 属性中,单击启动。重新启动 Tomcat 可确保在导出之前清除数据库。
4. 导出实体和数据:
a. 在 Composer 中,单击“导入/导出”>“导出”>“导出选项”。
b. 如有必要,请单击“包括数据”。
数据和实体即会导出到 ThingworxStorage\exports。
5. 复制数据和实体导出文件,然后将其移至安全位置。您将在后续步骤中导入这些文件。
C.) 备份和配置
1. 备份 /ThingworxStorage/esapi 目录中的 validation.properties 文件,然后将其删除。
| validation.properties 文件将在启动 ThingWorx 时创建。如果要保留所做的任何更改,将文件保存在 ThingworxStorage 目录之外的位置,然后继续移除 esapi 目录。启动时,ThingWorx 将重新创建该文件,您可以将自定义正则表达式重新添加到自动生成的 validation.properties 文件中。 |
2. 在 ThingworxStorage 文件夹中找到 keystore.jks 文件,然后将其移至安全位置。您稍后需要将此文件重新添加到迁移后的 ThingworxStorage 文件夹。
3. 在 ThingworxPlatform 文件夹中找到 keystore-password 文件,然后将其移至安全位置。您稍后需要将此文件重新添加到迁移后的 ThingworxPlatform 文件夹。
4. 请注意任何正在使用的扩展 (位于 ThingworxStorage/extensions 中)。这些扩展将在后续步骤中重新导入。
5. 停止 Tomcat。
6. 删除 ThingworxStorage 和 ThingworxBackupStorage 文件夹的内容。
7. 从 ThingworxPlatform 文件夹中删除 keystore-password 文件。
8. 转至 /Apache Software Foundation/Tomcat x.x/webapps 下的 Tomcat 安装,然后删除 Thingworx.war 文件。
9. 删除位于 Apache Software Foundation/Tomcat x.x/webapps 下的 Thingworx 文件夹。
10. 复制此版本的 Thingworx.war 文件,然后将其置于以下 Tomcat 安装位置:/Apache Software Foundation/Tomcat x.x/webapps。
11. 启用扩展导入。默认情况下,所有用户的扩展导入均处于禁用状态。将以下内容添加至 platform-settings.json 文件。添加下列 ExtensionPackageImportPolicy 参数或将其更新为 true,以允许导入扩展。
"ExtensionPackageImportPolicy": {
"importEnabled": <true or false>,
"allowJarResources": <true or false>,
"allowJavascriptResources": <true or false>,
"allowCSSResources": <true or false>,
"allowJSONResources": <true or false>,
"allowWebAppResources": <true or false>,
"allowEntities": <true or false>,
"allowExtensibleEntities": <true or false>
},
12. 启动 Tomcat。
13. 如果要重用旧的 keystore.jks 文件,请找到先前从 ThingworxStorage 和 ThingworxPlatform 文件夹中移动的 keystore.jks 和 keystore-password 文件,然后将其粘贴到相应的文件夹中。
14. 要启动 ThingWorx,请在 Web 浏览器中转至 <servername>/Thingworx。使用以下登录信息:
◦ 登录名:Administrator
◦ 密码:<源服务器管理员密码>
D.) 升级至 Java 11
| 对于 ThingWorx 9.3.0 及更高版本,Java 11 为必需。有关详细信息,请参阅 系统要求。 |
1. 若要升级至 Java 11,则需执行以下步骤。如果已安装了 Java 11,请跳过此部分。
b. 在 Linux 上安装 jEnv:
i. Git 复制 jEnv 信息库:
git clone https://github.com/jenv/jenv.git ~/.jenv
ii. 将 jEnv 添加至 $PATH:
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
iii. 初始化 jEnv:
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
iv. 更新于 ~/.bash_profile 中所作的更改:
source ~/.bash_profile
v. 设置 JAVA_HOME 环境变量:
jenv enable-plugin export
vi. 重新启动当前 shell 壳会话:
exec $SHELL -l
vii. 运行以下命令后,JAVA_HOME 变量将由 jEnv 自动设置,具体取决于当前使用的 Java 环境:
jenv doctor
c. 添加 Java 环境:
i. 添加任意环境。所有 Java 安装均位于 /usr/lib/jvm/ 中。使用 jenv add 命令。以下示例:
jenv add /usr/lib/jvm/java-11-amazon-corretto
jenv add /usr/lib/jvm/jdk-11.0.7
ii. 检查 jenv 的所有可用 Java 版本:
jenv versions
iii. 设置全局 Java 环境:
jenv global <version>
iv. 设置特定于壳的 Java 环境:
jenv shell <version>
v. 验证由 jenv 设置的当前版本:
jenv versions
vi. 更新 Tomcat Java 设置中的路径。
vii. 重新启动 Tomcat。
E.) 导入数据和实体
1. 将导出的文件移回 ThingworxStorage\exports。
2. 如有必要,获取并导入扩展的最新版本。必须导入 9.x 版本的扩展。PTC 支持的扩展可从 ThingWorx Foundation
下载页面进行下载。
4. 导入实体和数据。
| 如果要升级至 ThingWorx 9.2 或更高版本,则必须在导入 Entities.xml 前导入 Principals.xml。否则将导致所有权限丢失。有关详细信息,请参阅 在 9.2 及更高版本中导入实体。 |
a. 在 Composer 中,单击“导入/导出”>“自文件”。
b. 选择要导入的数据和/或实体。
| 如果要包括已导入实体的子系统设置 (例如,如果要从测试环境进入生产环境),请选中“包括子系统”复选框。 |
| 除了在 MSSQL 升级的应用程序日志中会出现以下错误外,当存在任何已配置运行时权限且名称包含超过 256 个字符的已迁移服务、属性或事件名称时,也会显示以下错误。要修复此错误,请将所有服务、属性和事件名称限制为 256 个字符以下。 Error occurred while accessing the data provider |
F.) 配置内容安全策略
如果要升级到支持 CSP 的 ThingWorx 版本,请执行以下步骤。
1. 停止 Tomcat。
2. 按如下方式将 "EnableContentSecurityPolicyFilter": false, 添加到 BasicSettings 下的 platform.settings.json:
{
"PlatformSettingsConfig": {
"BasicSettings": {
"BackupStorage": "/ThingworxBackupStorage",
"DatabaseLogRetentionPolicy": 7,
"DatabaseWriteRetryAttempts": 10,
"EnableBackup": true,
"EnableClusteredMode": false,
"EnableContentSecurityPolicyFilter": false,
"EnableSystemLogging": false,
"EnableSSO": false,
"FileRepositoryRoot": "/ThingworxStorage",
"FileTransferLockType" : "LOCAL"
"HTTPRequestHeaderMaxLength": 2000,
"HTTPRequestParameterMaxLength": 2000,
"InternalAesCryptographicKeyLength": 128,
"MetricsLoggingFrequency": 30,
"MetricsLoggingLevel": "WARN",
"MetricsReportingEnabled": true,
"NonceKeyTimeout": 15,
"SessionUpdateDelay": 60,
"Storage": "/ThingworxStorage",
"ScriptTimeout": 30,
"MaxSearchItems": 100000
},
| 如果未添加以上标志或将标志专门设置为 false,则新安装中将禁用 CSP。将标志设置为 true 将启用 CSP。 有关 CSP 的详细信息,请参阅其他 CSP 帮助中心主题。 |
3. 请按照以下步骤恢复点击劫持筛选器配置。
a. 复制备份 web.xml 文件中的点击劫持筛选器配置。
b. 将点击劫持筛选器配置粘贴到 <tomcat_install_dir>/webapps/Thingworx/WEB-INF 下新创建的 web.xml 文件。
| 请注意下列事项: • 请勿将 web.xml 替换为旧版本。手动将配置从备份文件复制到新的 web.xml 文件。 • 如果未明确将 EnableContentSecurityPolicyFilter 标志指定或设置为 false,则将在禁用 CSP 筛选器的情况下升级 ThingWorx。 |
4. 启动 Tomcat。
G.) 升级其他组件
• 如果将 ThingWorx Analytics 用作解决方案的一部分,则可以使用两个安装程序来处理组件升级:
◦ Analytics Server - 安装或升级 Analytics Server 和 Analytics Extension
◦ Platform Analytics - 安装或升级 Descriptive Analytics 和 Property Transforms