备份 ThingWorx
ThingWorx 相关备份可在数据存储级别上执行,也可在 ThingWorx 应用程序级别上执行。数据存储级别备份应定期执行,即使数据存储已安装在具有数据冗余的高可用性配置中也是如此。这适用于模型提供者和数据提供者所使用的所有数据存储。
本主题中的信息仅涉及 ThingWorx 平台为应用程序级别备份提供的功能 (H2 数据库除外)。
* 
此规则的唯一例外是 H2 数据库,因为它在嵌入模式下运行。在这种情况下,ThingWorx 的内置功能可安排自动备份到指定目录,该目录由 platform-settings.json 文件中的 "ThingworxBackupStorage" 配置参数指定。但是,由于其嵌入式性质,它不是高可用性解决方案,因此不具有任何故障转移功能。
有关常规数据存储备份指南,请参阅 ThingWorx 备份和恢复规划指南。有关详细信息,请参阅原厂商文档,其中包括以下内容:
H2:在 ThingworxStoragedata 文件夹中创建存档
ThingWorx 模型
基于 ThingWorx 的应用程序的最灵活功能是能够在运行时直接更改 ThingWorx 模型,这可以通过 Composer 手动执行,也可以通过 REST API、脚本或扩展以编程方式实现。建议跟踪模型更改,从而能够从生产中的意外更改中恢复。这可以通过定期导出模型实体的时间点快照来实现。
这些快照备份也可通过计划程序自动调用以下选项来完成:
标准导出 REST API。
导出源控制实体 REST API。该选项将使用诸如 Git 或 Subversion 等版本控制系统。
以上两个选项的不同之处在于,“导出源控制实体”选项会针对每个实体类型在文件夹中生成单独的 XML 文件,以使导出对于用户可读,而二进制 ".twx" 格式将被压缩且在导入时效率相对较高。
* 
PTC 不保证导出格式将符合任何特定标准,并且可能在 ThingWorx 版本之间进行更改而无需通知。因此,不建议创建使用这些导出文件的外部应用程序。
运行时数据
与模型导出类似,还提供了一个标准的 REST API 来导出运行时数据。由于运行时数据可能会随着时间的推移而显著增大,因此将并行化导出过程,并将导出文件拆分为多个更小文件以方便管理。由于数据量较大,因此建议在应用程序级别以增量方式导出数据,而非进行完整备份。此外,为了避免导出长时间运行,建议尽可能按照实体进行导出。作为最佳做法,请考虑利用数据存储级别备份来保留运行时数据。数据导出保存在 ThingworxStorage/exports 目录中。导出是扩展名为 .twx 的二进制文件,以当前日期作为文件名保存在与每个实体类型对应的文件夹中以及 repository 目录中。根据导出导入子系统中设置的导出文件大小和处理线程池大小,将数据拆分为多个文件。
此功能通常用于将数据从一个系统迁移到另一个系统,而不是执行常规备份。尽管定期不重叠 (即,使用开始日期和结束日期进行数据导出) 导出可用于定期对数据进行存档,但更有效的方法是使用数据存储级别备份来保留运行时数据。
文件信息库
ThingWorx 中的文件信息库是一个文件系统目录,通常位于本地或共享 (对于高可用性 ThingWorx 安装) 驱动器。这一常规文件系统目录由自定义设置中的 ThingworxFileStorage 环境变量定义,默认情况下为 ThingworxStorage/repository。任何由操作系统提供的文件备份解决方案均可用于定期备份此目录(即 Linux 中的 rsync)
扩展
将扩展导入到 ThingWorx 后,扩展会被缓存在文件系统中,并保存在高可用性配置的数据存储中。在这种情况下,最佳做法是保留原始扩展包,而不是备份缓存的版本,因为 PTC Marketplace 上的扩展会定期升级,并且您可能无法重新下载曾经用于开发的版本。文件系统缓存位于 ThingworxStorage/exports 目录中。
其他基于文件的构件
其他与 ThingWorx 相关的、可使用操作系统附带文件备份工具 (即 Linux 中的 rsync) 进行备份的基于文件的构件如下所示:
ThingworxPlatform 目录中的配置文件
ThingworxStorage/logs 目录中的日志文件
ThingworxStorage/reports 目录中生成的报告