安裝與組態 > 安裝 ThingWorx > RHEL 安裝 > PostgreSQL > 安裝並配置 PostgreSQL (RHEL)
安裝並配置 PostgreSQL (RHEL)
下方提供的指示適用於 PostgreSQL 管理員 (非資料庫主機伺服器)。如果您要將 HA 層納入實行,請參閱本說明中心的 ThingWorx 高可用性部份
安裝 PostgreSQL 並建立新的使用者角色
* 
這些步驟假設 RHEL 版本具有 GUI (X11),使用中帳戶可存取 RHEL 軟體存放庫。如果您在工作中未使用 GUI,請略過 PgAdmin 的安裝,並參閱 此支援文章以取得替代指示。如果您無法存取正式的 RHEL 軟體來源,則可以從 EPEL 小組 設定自由開啟來源存放庫。(此網站不是由 PTC 提供或控制)。
1. 如需有關支援 PostgreSQL 版本的資訊,請參閱本説明中心的 ThingWorx 系統需求部份
* 
此程序的步驟使用 PostgreSQL x.x 版,其中 x.x 是支援的版本。
2. 將 PostgreSQL 存放庫新增至 Yum 並安裝。
3. 安裝 PgAdmin,PostgreSQL 管理工具:
$ sudo yum install pgadmin4
* 
欲透過指令行安裝 PgAdmin,請參照 https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line
4. 初始化並啟動資料庫:
$ sudo /usr/pgsql-x.x/bin/postgresqlx.x-setup initdb
設定 PostgreSQL 服務,以在開機時啟動:
$ sudo chkconfig postgresql-x.x on
$ sudo service postgresql-x.x start
5. 設定 PostgreSQL 使用者的密碼:
$ sudo passwd postgres
6. 輸入 PostgreSQL 使用者的密碼。您將在稍後的步驟中使用此密碼。
* 
密碼應不易猜測且不能為已知的常用密碼,長度應至少為 14 個字元,且包含大寫與小寫字母、數字與特殊字元的混合。
7. 在 psql 中設定 PostgreSQL 使用者。<具唯一性的 PostgreSQL 密碼> 值是您在上方輸入的值。
* 
如果 PostgreSQL 資料庫沒有 配置位於除 ThingWorx 以外伺服器上的 PostgreSQL 資料庫與 ThingWorx 位於相同的伺服器,請參閱位於 ThingWorx 以外伺服器上的「配置 PostgreSQL 資料庫」部份,並略過接下來的兩個步驟。雖然在與開發環境中 PostgreSQL 資料庫可以與 ThingWorx 位於相同的伺服器上,但在所有生產環境中應將它們分開置於不同的伺服器上。
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
8. 如果使用指令行,請開啟下列檔案並依說明進行編輯。如果使用 PgAdmin,請略過此步驟。
/var/lib/pgsql/x.x/data/postgresql.conf/postgresql.conf:請取消 listen addressesport 的註解。通常,localhost 的預設設定與 5432 就足夠了。
/var/lib/pgsql/x.x/data/pg_hba.conf:將 Method 設定為 md5
9. 配置 PgAdmin。如果您不使用 PgAdmin,請略過此步驟。
$ sudo pgadmin3
在 PgAdmin GUI 中,按一下 file->Open postgresql.conf
開啟 /var/lib/pgsql/x.x/data/postgresql.conf
listen addressesport 旁放一個對號。通常,localhost 的預設設定與 5432 就足夠了。
儲存並關閉。
按一下 file->Open pg_hba.conf
開啟 /var/lib/pgsql/x.x/data/pg_hba.conf
連按兩下資料庫上位址為 127.0.0.1/32 的「所有」行
將方法設定為 md5
按一下「確定」
儲存並退出
關閉 PgAdmin。
10. 重新啟動 PostgreSQL 服務:
$ sudo service postgresql-x.x restart
11. 設定 PgAdmin 以連接至資料庫:
$ sudo pgadmin3
12. 按一下塞圖示來將連線新增至左上角的伺服器並填寫下列內容:
Name: PostgreSQL x.x
Host: localhost
Port: 5432
Service: <blank>
Maintenance DB: postgres
Username: postgres
Password: <unique PostgreSQL password as set previously>
Store password: Checked
Group: Servers
13. 按一下「確定」
14. 建立新使用者角色:
* 
如果您不使用 PgAdmin,可以使用下列指令:
sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
a. 在 PostgreSQLx.x(localhost:5432) 上按一下滑鼠右鍵。
b. 選取 NewObject>NewLogin Role。在 Properties 標籤的 Role 名稱欄位中輸入名稱。
c. Definition 標籤的 Password 欄位中,輸入唯一的密碼 (將會提示您輸入兩次)。
* 
密碼應不易猜測且不能為已知的常用密碼,長度應至少為 14 個字元,且包含大寫與小寫字母、數字與特殊字元的混合。您需要在稍後的步驟中重新輸入此密碼。
d. 按一下「確定」
配置位於除 ThingWorx 以外伺服器上的 PostgreSQL 資料庫
* 
此部份對於開發環境為選用,但應在所有生產環境中實行。
依預設,PostgreSQL 伺服器在鎖定狀態下安裝。伺服器只會從本機電腦接聽連線,以使 ThingWorx 與 PostgreSQL 伺服器進行通訊,需要進行一些組態變更,以便 PostgreSQL 知道從其他使用者 (thingworx 使用者,預設值為 twadmin) 和/或其他電腦 (單獨伺服器上安裝的 ThingWorx) 接聽連線。
您需要知道在這些步驟您的 PostgreSQL 資料目錄所在的位置。在 Linux 中,資料資料夾的位置,甚至組態檔案都可依分佈與安裝方法 (下載或封裝管理員安裝) 進行變更。此位置在這些指示中是指 <PGDATA>
修改 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
可以使用額外裕量行 (個別 IP 或範圍) 或對應於需要 PostgreSQL 資料庫存取權限之電腦的子網路遮罩進行其他任意組合。
此檔案的任何變更都需要重新啟動資料庫服務。
* 
如需有關配置 pg_hba.conf 檔案的詳細資訊,請參閱 PostgreSQL 文件集
啟用 PostgreSQL 以接聽所有連線
對於 PostgreSQL 的 Linux 安裝,配置 PostgreSQL 伺服器以接聽連線還需要一個額外的組態步驟。
1. postgresql.conf 檔案中,請取消 listen_addresses 行的註解並進行更新:
Uncomment the listen_addresses line and change localhost to '*'
# Listen on all addresses. Requires restart.
listen_addresses = '*'
2. 重新啟動 PostgreSQL 伺服器。
配置及執行 PostgreSQL 資料庫指令集
欲設定 PostgreSQL 資料庫與表格空間,必須配置及執行 thingworxPostgresDBSetup 指令集。
1. ThingworxStorage 資料夾所在的磁碟機 (依預設為根目錄) 上建立名為 ThingworxPostgresqlStorage 的資料夾。請注意以下內容:
如果您使用 -d<databasename> 指令建立資料夾,則無須使用 PostgreSQL 使用者
您必須將 -l 選項指定到現有路徑。例如,-l D:\ThingworxPostgresqlStorage。該指令集不會為您建立資料夾。
資料夾必須擁有對應的擁有權與存取權限。它應該由執行 PostgreSQL 服務的相同使用者擁有,且需要為該使用者指派完全控制權限,此使用者通常是 NETWORK_SERVICE,但在您的環境中可能會有所不同。

$ sudo mkdir /ThingworxPostgresqlStorage
$ sudo chown postgres:postgres /ThingworxPostgresqlStorage
$ sudo chmod 755 /ThingworxPostgresqlStorage
2. 從 ThingWorx 軟體下載封裝取得 thingworxPostgresDBSetup 指令集。該指令集位於 install 資料夾中。 PTC 軟體下載中提供了 ThingWorx 下載。
3. 如有必要,配置該指令集。參照下表中的選項。
* 
此範例使用 PTC 網站中的 x.x.x 下載。請將檔案名稱變更為您所使用的版本。

$ sudo unzip MED-61111-CD-08x_ThingWorx-Platform-Postgres-x-x-x.zip
$ cd install
thingworxPostgresDBSetup 指令集選項
選項
參數
預設值
描述
範例
t 或 -T
表格空間
thingworx
表格空間名稱
-t thingworx
-p 或 -P
5432
PostgreSQL 埠號
-p 5432
-d 或 -D
資料庫
thingworx
欲建立的 PostgreSQL 資料庫名稱
-d thingworx
-h 或 -H
主機
localhost
主機的名稱
-h localhost
-l 或 -L
tablespace_location
/ThingworxPostgresqlStorage
必填。檔案系統中儲存表示資料庫物件之檔案的位置。
-l or -L
-a 或 -A
adminusername
postgres
管理員名稱
-a postgres
-u 或 -U
thingworxusername
twadmin
具有資料庫寫入權限的使用者名稱。
-u twadmin
4. 欲為資料庫與表格空間設定具有 PostgreSQL 資料庫和 PostgreSQL 使用者名稱的預設 PostgreSQL 安裝,請輸入:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
5. 執行指令集。
配置及執行模型/資料提供者結構描述指令集
欲設定 PostgreSQL 模型/資料提供者結構描述,必須配置並執行 thingworxPostgresSchemaSetup 指令集。這會在本機主機上所安裝之 PostgreSQL 實例的資料庫下設定公用結構描述。
1. 從 ThingWorx 軟體下載封裝取得並開啟 thingworxPostgresSchemaSetup 檔案。該指令集位於 install 資料夾中。
2. 如有必要,配置該指令集。參照下表中的選項。
* 
可以使用下列預設參數執行指令集:
$ sudo sh thingworxPostgresSchemaSetup.sh
thingworxPostgresSchemaSetup 指令集選項
選項
參數
預設值
描述
範例
-h 或 -H
主機
localhost
資料庫的 IP 或主機名稱。
-h localhost
-p 或 -P
5432
PostgreSQL 埠號。
-p 5432
-d 或 -D
資料庫
thingworx
要使用的資料庫名稱。
-d thingworx
-s 或 -S
結構描述
公開
要使用的結構描述名稱。
-s mySchema
-u 或 -U
使用者名稱
twadmin
更新資料庫結構描述的使用者名稱
-u twadmin
-o 或 -O
選項
所有
系統共提供以下三種選項:
所有:設定指定資料庫的模型和資料提供者結構描述。
模型:設定指定資料庫的模型提供者結構描述。
資料:設定指定資料庫的資料提供者結構描述。
-o data
3. 執行指令集。
* 
使用者名稱應符合先前建立的 PostgreSQL 使用者名稱。
配置 platform-settings.json
1. 在磁碟機的根目錄下建立一個名為 ThingworxPlatform 資料夾,以安裝 Tomcat 或作為系統變數。請注意以下內容:
欲指定 ThingWorx 儲存其設定的位置,您可以將 THINGWORX_PLATFORM_SETTINGS 環境變數設為所需位置。確保 THINGWORX_PLATFORM_SETTINGS 所參考的資料夾存在,且可由 Tomcat 使用者寫入。此環境變數應配置為系統環境變數的一部份。
如果 ThingWorx 伺服器不具有讀取與寫入此資料夾的存取權限,該伺服器將無法啟動。
2. platform-settings.json 檔案放置在 ThingworxPlatform 資料夾中。軟體下載中包含此檔案。

$ sudo cp platform-settings.json /ThingworxPlatform/
3. 開啟 platform-settings.json 並視需要進行配置。請參閱 platform-settings.json 組態詳細資訊中的組態選項。
* 
如果您的 PostgreSQL 伺服器與 ThingWorx 伺服器不同,且 ThingWorx 安裝有問題,請審核這些 Tomcat 記錄檔與 platform-settings.json 檔案。預設安裝假設兩個伺服器位於相同的電腦上。
加密 PostgreSQL 密碼
依照 加密密碼中的步驟加密密碼。
(選用) 安裝 PostgreSQL 用戶端封裝和 PostgreSQL 使用者
要從用戶端電腦向 PostgreSQL 伺服器發出 PostgreSQL 指令,請從 PostgreSQL 使用者執行该操作。postgresql-client-x.x 封裝可以安裝在用戶端電腦上,請參閱有關如何安裝的分佈文件。此封裝可提供一些管理工具,如 psql
安裝 ThingWorx