安装和配置 > 安装 ThingWorx > Windows 安装 > PostgreSQL > 安装和配置 PostgreSQL (Windows)
安装和配置 PostgreSQL (Windows)
以下说明适用于 PostgreSQL 管理员 (非数据库主机服务器)。如果您将 HA 层包括到您的实施中,请参阅此帮助中心的 ThingWorx 高可用性部分
安装 PostgreSQL 并创建新建用户角色
1. 有关受支持的 PostgreSQL 版本的信息,请参阅 ThingWorx 系统要求
* 
此过程中的步骤使用 PostgreSQL 版本 x.x,其中 x.x 为受支持的版本。
2. 从以下站点下载并安装相应版本的 PostgreSQL: http://www.postgresql.org/download/
3. 使用 pgAdmin 打开 PostgreSQL。pgAdmin 工具可从 PostgreSQL 下载中获取。
* 
pgAdmin 是 PostgreSQL 下载中包含的数据库的开源管理工具。该工具的特点在于完整的 Unicode 支持,快速、多线程查询和数据编辑工具,并支持所有 PostgreSQL 对象类型。
4. 创建新用户角色:
a. 右键单击 PostgreSQLx.x (<数据库的 IP 或主机名称>:<PostgreSQL 的端口号>)。示例:PostgreSQLx.x (localhost:5432)
b. 请选择“新对象”>“新登录角色”。在“属性”选项卡上的“角色名称”字段中输入 PostgreSQL 管理的 <PostgreSQL 用户角色名称>。
c. “定义”选项卡上的“密码”字段中输入一个 PostgreSQL 管理的唯一且安全的密码 (系统将提示您输入两次)。
* 
此密码应不容易被猜到或不应是一个已知的通用密码,其长度应至少为 14 个字符,并且包括大小写字母、数字和特殊字符的组合。您将需要在之后的步骤中重新输入此密码。
5. 单击“确定”。请记住在此步骤中创建的用户角色名称,供以后使用。
配置与 ThingWorx 不同服务器上的 PostgreSQL 数据库
* 
此部分对于开发环境是可选的,但在所有生产环境中应全部实现。
默认情况下,将 PostgreSQL 服务器安装为锁定状态。服务器将只监听来自本地计算机的连接。为实现 ThingWorx 与 PostgreSQL 服务器之间的通信,需要进行某些配置更改,以便 PostgreSQL 监听来自其他用户 (thingworx 用户,默认为 twadmin) 和/或其他计算机 (ThingWorx 安装在单独的服务器上) 的连接。
您需要知道 PostgreSQL 数据目录所在位置,以便操作这些步骤。在 Windows 中,默认数据文件夹位于 C:\Program Files\PostgreSQL\x.x\data
修改 pg_hba.conf 文件并根据所需配置添加以下各行:
如果想要允许所有 IPv4 地址连接:
host all all 0.0.0.0/0 md5
如果想要只允许特定 IPv4 地址连接 (将 <ipAddress> 替换为进行连接的计算机的 IP 地址):
host all all <ipAddress>/32 md5
如果想要允许所有 IPv6 地址连接:
host all all ::0/0 md5
如果想要只允许特定 IPv6 地址连接 (将 <ipv6Address> 替换为相应的地址):
host all all <ipv6Address>/128 md5
通过使用适用于需要 PostgreSQL 数据库访问权限的计算机的其他余量行 (各个 IP 或范围) 或子网掩码,可以实现任何其他组合。
对此文件所做的任何更改都需要重新启动数据库服务。
* 
有关配置 pg_hba.conf 文件的详细信息,请参阅官方 PostgreSQL 文档
配置并执行 PostgreSQL 数据库脚本
要设置 PostgreSQL 数据库和表空间,必须配置并执行 thingworxPostgresDBSetup 脚本。
1. <postgres-installation>/bin 文件夹添加到您的系统 PATH 变量中。
2. 在 (默认的根目录下) ThingworxStorage 文件夹所在的驱动上创建一个名为 ThingworxPostgresqlStorage 的文件夹。请注意以下几点:
如果使用 -d<databasename> 命令创建此文件夹,则无需使用 PostgreSQL 用户。
您必须将 -l 选项指定到存在的路径。例如,-l D:\ThingworxPostgresqlStorage。该脚本不会为您创建文件夹。
该文件夹必须具有相应的所有权和访问权限。它应为运行 PostgreSQL 服务的同一用户所有,并将完全控制分配给该用户 - 该用户通常是 NETWORK_SERVICE,但在您的环境中可能会有所不同。
3. 从 ThingWorx 软件下载包获取并打开 thingworxPostgresDBSetup 脚本。ThingWorx 下载在 PTC 软件下载中可用。
4. 必要时,配置此脚本。参考下表中的选项。
thingworxPostgresDBSetup 脚本选项
选项
参数
默认值
说明
示例
t 或者 -T
tablespace
thingworx
表空间名称
-t thingworx
-p 或者 -P
port
5432
PostgreSQL 端口号
-p 5432
-\d 或者 -D
database
thingworx
要创建的 PostgreSQL 数据库名称
-d thingworx
-h 或者 -H
host
localhost
主机名称
-h localhost
-l 或者 -L
tablespace_location
/ThingworxPostgresqlStorage
必填字段。存储代表数据库对象的文件所在文件系统中的位置。
-l 或者 -L
-a 或者 -A
adminusername
postgres
管理员名称
-a postgres
-u 或者 -U
thingworxusername
twadmin
有写入数据库权限的用户名。
-u twadmin
5. 执行此脚本。
配置并执行模型/数据提供程序架构脚本
要设置 PostgreSQL 模型/数据提供程序架构,必须配置并执行 thingworxPostgresSchemaSetup 脚本。此脚本将公共架构设置在安装于本地主机的 PostgreSQL 实例的数据库下。
1. 从 ThingWorx 软件下载包获取 thingworxPostgresSchemaSetup.bat。ThingWorx 下载在 PTC 软件下载中可用。
2. 必要时,配置此脚本。参考下表中的选项。
thingworxPostgresSchemaSetup 脚本选项
选项
参数
默认值
说明
示例
-h 或者 -H
host
localhost
数据库的 IP 或主机名称。
-h localhost
-p 或者 -P
port
5432
PostgreSQL 端口号。
-p 5432
-\d 或者 -D
database
thingworx
要使用的数据库名称。
-d thingworx
-s 或者 -S
schema
public
要使用的架构名称。
-s mySchema
-u 或者 -U
username
twadmin
用于更新数据库架构的用户名
-u twadmin
-o 或者 -O
option
all
有三个选项:
全部:将模型和数据提供程序架构设置到指定的数据库中。
模型:将模型提供程序架构设置到指定的数据库中。
数据:将数据提供程序架构设置到指定的数据库中。
-o data
3. 执行此脚本。
配置 platform-settings.json
1. 在安装 Tomcat 的驱动器的根目录下创建文件夹 ThingworxPlatform,或设置指向此文件夹的系统环境变量。请注意以下几点:
要指定存储 ThingWorx 设置的位置,可以将 THINGWORX_PLATFORM_SETTINGS 环境变量设置到所需位置。确保 THINGWORX_PLATFORM_SETTINGS 所参考的文件夹存在并可以由 Tomcat 用户写入。此环境变量应配置为系统环境变量的一部分。
如果 ThingWorx 服务器不具备对此文件夹的读写权限,将无法启动。
2. platform-settings.json 文件置于 ThingworxPlatform 文件夹中。此文件在软件下载中可用。
3. 打开 platform-settings.json 并根据需要进行配置。请参阅 platform-settings.json 配置详细信息中的配置选项。
* 
如果您的 PostgreSQL 服务器与 ThingWorx 服务器不同,并且在安装 ThingWorx 时出现问题,请查看 platform-settings.json 文件。默认安装假定两个服务器位于同一计算机上。
(可选) 加密 PostgreSQL 密码
按照 加密密码中的步骤加密密码
(可选) 安装 PostgreSQL 客户端包和 PostgreSQL 用户
要将 PostgreSQL 命令从客户端机器发送到 PostgreSQL 服务器,请从 PostgreSQL 用户执行这些操作。可以在客户端计算机上安装 postgresql-client-x.x 包。有关如何安装此包,请参阅 PostgreSQL 分发文档。该软件包提供了一些管理工具,例如 psql
安装 ThingWorx