安裝與升級 > 安裝 ThingWorx > 手動安裝 > 安裝附錄 > 針對 RHEL 安裝並配置 PostgreSQL
針對 RHEL 安裝並配置 PostgreSQL
下方提供的指示適用於 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:請取消 listen addressesport 的註解。通常,localhost 的預設設定與 5432 就足夠了。
/var/lib/pgsql/x.x/data/pg_hba.conf:將 Method 設定為 md5
9. 配置 PgAdmin。如果您不使用 PgAdmin,請略過此步驟。
$ sudo pgadmin4
在 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 pgadmin4
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. 選取「建立 - 登入/群組角色」。在「一般」標籤的「名稱」欄位中,針對 PostgreSQL 管理輸入 <PostgreSQL 使用者角色名稱>。
c. 「權限」標籤上,針對「是否可以登入?」選取「是」
d. Definition 標籤的 Password 欄位中,為 PostgreSQL 輸入唯一且安全的密碼。
e. 按一下「確定」。請記住此步驟中建立的使用者角色名稱與密碼,以便稍後使用。
配置位於除 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 指令集。
* 
ThingWorx 9.3.1 之後,不再需要建立 ThingworxPostgresqlStorage 資料夾或任何 -l 參數相關步驟,且 ThingWorx 資料將會儲存在 Postgresql 的預設位置。
1. 從 ThingWorx 軟體下載封裝取得 thingworxPostgresDBSetup 指令集。該指令集位於 install 資料夾中。PTC 軟體下載中提供了 ThingWorx 下載。
2. 如有必要,配置該指令集。參照下表中的選項。
* 
此範例使用 PTC 網站中的 x.x.x 下載。請將檔案名稱變更為您所使用的版本。

$ sudo unzip MED-61111-CD-085_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
-l 或 -L
tablespace_location
/ThingworxPostgresqlStorage
在 ThingWorx 9.3.0 及之前版本中需要。 檔案系統中儲存表示資料庫物件之檔案的位置。使用者需要先以權限手動建立此資料夾,才能執行指令集,然後指定路徑,例如 -l /ThingworxPostgresqlStorage
* 
資料夾必須擁有對應的擁有權與存取權限。其應由執行 PostgreSQL 服務的相同使用者擁有且應擁有為該使用者指派的完全控制權。
-l or -L
-h 或 -H
主機
localhost
主機的名稱
-h localhost
-a 或 -A
adminusername
postgres
管理員名稱
-a postgres
-u 或 -U
thingworxusername
twadmin
具有資料庫寫入權限的使用者名稱。
-u twadmin
3. 欲為資料庫與表格空間設定具有 PostgreSQL 資料庫和 PostgreSQL 使用者名稱的預設 PostgreSQL 安裝,請輸入:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
4. 執行指令集。
配置及執行模型/資料提供者結構描述指令集
欲設定 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
* 
若未使用 public$user ,您必須編輯 postgresql.conf 檔案並將 SEARCH_PATH 新增至您的結構描述。例如,search_path = '"$user", public, "myschema"'
-u 或 -U
使用者名稱
twadmin
更新資料庫結構描述的使用者名稱
-u twadmin
-o 或 -O
選項
所有
系統共提供以下三種選項:
所有:設定指定資料庫的模型和資料提供者結構描述。
模型:設定指定資料庫的模型提供者結構描述。
資料:設定指定資料庫的資料提供者結構描述。
-o data
3. 執行指令集。
* 
使用者名稱應符合先前建立的 PostgreSQL 使用者名稱。
配置 platform-settings.json
1. 開啟位於 ThingworxPlatform 中的 platform-settings.json 檔案。
2. 請參閱 platform-settings.json 組態詳細資訊中的 PostgresPersistenceProviderPackage 組態選項,然後新增至 platform-settings.json
* 
如果您的 PostgreSQL 伺服器與 ThingWorx 伺服器不同,且 ThingWorx 安裝有問題,請審核這些 Tomcat 記錄檔與 platform-settings.json 檔案。預設安裝假設兩個伺服器位於相同的電腦上。
加密 PostgreSQL 密碼
依照加密密碼中的步驟加密密碼。
(選用) 安裝 PostgreSQL 用戶端封裝和 PostgreSQL 使用者
要從用戶端電腦向 PostgreSQL 伺服器發出 PostgreSQL 指令,請從 PostgreSQL 使用者執行该操作。postgresql-client-x.x 封裝可以安裝在用戶端電腦上,請參閱有關如何安裝的分佈文件。此封裝可提供一些管理工具,如 psql
這是否有幫助?