安裝與組態 > 安裝 ThingWorx > Ubuntu 安裝 > PostgreSQL > 安裝並配置 PostgreSQL (Ubuntu)
安裝並配置 PostgreSQL (Ubuntu)
下方提供的指示適用於 PostgreSQL 管理員 (非資料庫主機伺服器)。如果您要將 HA 層納入實行,請參閱本說明中心的 ThingWorx 高可用性部份
安裝 PostgreSQL 並建立新的使用者角色
1. 如需有關支援 PostgreSQL 版本的資訊,請參閱 ThingWorx 系統需求
* 
此程序的步驟使用 PostgreSQL x.x 版,其中 x.x 是支援的版本。
2. 下載並安裝適當版本的 PostgreSQL。
可新增 PostgreSQL 存放庫,以使得應用程式可以直接從封裝管理員安裝。
* 
欲取得 Ubuntu 版本名稱,請使用下列指令:
$ lsb_release -sc

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ <YOUR_UBUNTU_VERSION_HERE>-pgdg main" '> /etc/apt/sources.list.d/pgdg.list
$ sudo wget -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install postgresql-x.x -y
3. 安裝 PgAdmin,PostgreSQL 管理工具:
$ sudo apt-get install pgadmin4 -y
* 
欲透過指令行安裝 PgAdmin,請參照 https://wiki.postgresql.org/wiki/Manual_Setup_at_the_Command_Line
4. 設定 PostgreSQL 使用者的密碼:
$ sudo service postgresql restart
$ sudo -u postgres psql -c "ALTER ROLE postgres WITH password '<unique PostgreSQL password>'"
5. 輸入 PostgreSQL 使用者的密碼。您將在稍後的步驟中使用此密碼。
* 
密碼應不易猜測且不能為已知的常用密碼,長度應至少為 14 個字元,且包含大寫與小寫字母、數字與特殊字元的混合。
6. 配置 PgAdmin:
$ sudo pgadmin4
在 PgAdmin GUI 中,按一下 file->Open postgresql.conf
開啟 /etc/postgresql/x.x/main/postgresql.conf
listen addressesport 旁放一個對號。通常,localhost 的預設設定與 5432 就足夠了。
儲存並關閉。
按一下 file->Open pg_hba.conf
開啟 /etc/postgresql/x.x/main/pg_hba.conf
連按兩下資料庫上位址為 127.0.0.1/32 的「所有」行
將方法設定為 md5
按一下「確定」
儲存並退出
關閉 PgAdmin。
7. 重新啟動 PostgreSQL 服務:
$ sudo service postgresql restart
8. 設定 PgAdmin 以連接至資料庫:
$ sudo pgadmin4
9. 按一下塞圖示來將連線新增至左上角的伺服器並填寫下列內容:
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
10. 按一下「確定」
11. 建立新使用者角色:
* 
如果您不使用 PgAdmin,可以使用下列指令:
sudo -u postgres psql -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. 以滑鼠右鍵按一下 PostgreSQLx.x (<資料庫的 IP 或主機名稱>:<PostgreSQL 的埠號>)。範例:PostgreSQLx.x (localhost:5432)
c. 選取 NewObject>NewLogin Role。在 Properties 標籤的 Role 名稱欄位中輸入名稱。
d. Definition 標籤的 Password 欄位中,輸入唯一的密碼 (將會提示您輸入兩次)。您需要在稍後的步驟中重新輸入此密碼。
* 
密碼應不易猜測且不能為已知的常用密碼,長度應至少為 14 個字元,且包含大寫與小寫字母、數字與特殊字元的混合。
e. 按一下「確定」
配置位於除 ThingWorx 以外伺服器上的 PostgreSQL 資料庫
* 
此部份對於開發環境為選用,但應在所有生產環境中實行。
依預設,PostgreSQL 伺服器在鎖定狀態下安裝。伺服器只會從本機電腦接聽連線,以使 ThingWorx 與 PostgreSQL 伺服器進行通訊,需要進行一些組態變更,以便 PostgreSQL 知道從其他使用者 (thingworx 使用者,預設值為 twadmin) 和/或其他電腦 (單獨伺服器上安裝的 ThingWorx) 接聽連線。
您需要知道在這些步驟您的 PostgreSQL 資料目錄所在的位置。在 Linux 中,資料資料夾的位置,甚至組態檔案都可依分佈與安裝方法 (下載或封裝管理員安裝) 進行變更。此位置在這些指示中是指 <PGDATA>
* 
在 Ubuntu 上,透過 apt-get 進行安裝時,組態檔案位於 /etc/postgresql/x.x/main/
修改 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 網站中的 8.x.x 下載。如有必要,請將檔案名稱變更為您要使用的版本。

$ sudo unzip MED-61111-CD-084_ThingWorx-Platform-Postgres-8-x-x.zip
$ cd install
4. 欲為資料庫與表格空間設定具有 PostgreSQL 資料庫和 PostgreSQL 使用者名稱的預設 PostgreSQL 安裝,請輸入:
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
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
5. 執行指令集。
配置及執行模型/資料提供者結構描述指令集
欲設定 PostgreSQL 模型/資料提供者結構描述,必須配置並執行 thingworxPostgresSchemaSetup 指令集。這會在本機主機上所安裝之 PostgreSQL 實例的資料庫下設定公用結構描述。
1. 從 ThingWorx 軟體下載封裝取得並開啟 thingworxPostgresSchemaSetup 檔案。該指令集位於 install 資料夾中。
2. 如有必要,配置該指令集。參照下表中的選項。
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. 執行指令集。可以使用下列預設參數執行指令集:
$ sudo sh thingworxPostgresSchemaSetup.sh
使用者名稱應符合先前建立的 PostgreSQL 使用者名稱。
配置 platform-settings.json
1. 在磁碟機的根目錄下建立一個名為 ThingworxPlatform 資料夾,以安裝 Tomcat 或作為系統變數。請注意以下內容:
欲指定 ThingWorx 儲存其設定的位置,您可以將 THINGWORX_PLATFORM_SETTINGS 環境變數設為所需位置。確保 THINGWORX_PLATFORM_SETTINGS 所參考的資料夾存在,且可由 Tomcat 使用者寫入。此環境變數應配置為系統環境變數的一部份。Ubuntu 範例: THINGWORX_PLATFORM_SETTINGS=/data/ThingworxPlatform
如果 ThingWorx 伺服器不具有讀取與寫入此資料夾的存取權限,該伺服器將無法啟動。

$ sudo mkdir /ThingworxPlatform
2. platform-settings.json 檔案放置在 ThingworxPlatform 資料夾中。ThingWorx 軟體下載中包含此檔案。

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