설치 및 구성 > ThingWorx 설치 > RHEL 설치 > PostgreSQL > PostgreSQL 설치 및 구성(RHEL)
PostgreSQL 설치 및 구성(RHEL)
아래에 제공된 지침은 PostgreSQL 관리자(DB 호스트 서버 아님)를 대상으로 작성되었습니다. HA 레이어를 구현에 포함하는 경우 이 도움말 센터의 ThingWorx 고가용성 단원을 참조하십시오.
PostgreSQL 설치 및 새 사용자 역할 생성
* 
이러한 단계에서는 GUI(X11)를 포함하는 RHEL 버전 및 RHEL 소프트웨어 저장소에 대한 액세스 권한을 가진 활성 계정이 있다고 가정합니다. GUI 없이 작업하는 경우 PgAdmin 설치를 건너뛰고 이 지원 문서에서 다른 지침을 참조하십시오. 공식 RHEL 소프트웨어 소스에 액세스할 수 없는 경우 EPEL 팀으로부터 무료 오픈 소스 저장소를 설정할 수 있습니다. 이 사이트는 PTC에서 제공하거나 관리하지 않습니다.
1. 지원되는 PostgreSQL 버전에 대한 자세한 내용은 이 도움말 센터의 ThingWorx 시스템 요구사항 단원을 참조하십시오.
* 
이 절차의 단계에서는 PostgreSQL 버전 x. x를 사용합니다. 여기서 x.x는 지원되는 버전입니다.
2. Yum에 PostgreSQL 저장소를 추가하고 설치합니다.
3. PostgreSQL 관리 도구인 PgAdmin을 설치합니다.
$ 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 사용자를 설정합니다. <unique PostgreSQL password> 값은 위에서 입력한 값입니다.
* 
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의 주석 처리를 제거합니다. 일반적으로 기본 설정인 localhost5432로 충분합니다.
/var/lib/pgsql/x.x/data/pg_hba.conf: Methodmd5로 설정합니다.
9. PgAdmin을 구성합니다. PgAdmin을 사용하지 않는 경우 이 단계를 건너뜁니다.
$ sudo pgadmin3
PgAdmin GUI에서 file->Open postgresql.conf를 클릭합니다.
/var/lib/pgsql/x.x/data/postgresql.conf를 엽니다.
listen addressesport 옆에 체크 표시를 합니다. 일반적으로 기본 설정인 localhost5432로 충분합니다.
저장하고 닫습니다.
file->Open pg_hba.conf를 클릭합니다.
/var/lib/pgsql/x.x/data/pg_hba.conf를 엽니다.
주소가 127.0.0.1/32인 데이터베이스 'all' 줄을 두 번 클릭합니다.
Method를 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
PostgreSQL 데이터베이스에 액세스해야 하는 시스템에 적합한 추가 여유 줄(개별 IP 또는 범위) 또는 서브넷 마스크를 사용하면 다른 조합도 가능합니다.
이 파일을 변경하려면 데이터베이스 서비스를 재시작해야 합니다.
* 
pg_hba.conf 파일을 구성하는 방법에 대한 자세한 내용은 PostgreSQL 설명서를 참조하십시오.
PostgreSQL에서 모든 연결을 수신하도록 설정
Linux에 PostgreSQL 설치 시 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 폴더에 있습니다. ThingWorx 다운로드는 PTC 소프트웨어 다운로드에서 제공됩니다.
3. 필요한 경우 스크립트를 구성합니다. 아래 표의 옵션을 참조하십시오.
* 
이 예에서는 PTC 사이트에서 x.x.x 다운로드를 사용합니다. 파일 이름을 사용자의 버전으로 변경합니다.

$ sudo unzip MED-61111-CD-08x_ThingWorx-Platform-Postgres-x-x-x.zip
$ cd install
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
4. 데이터베이스 및 테이블 공간을 PostgreSQL 데이터베이스 및 PostgreSQL 사용자 이름이 있는 기본 PostgreSQL 설치로 설정하려면 다음을 입력합니다.
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
5. 스크립트를 실행합니다.
모델/데이터 공급자 스키마 스크립트 구성 및 실행
PostgreSQL 모델/데이터 공급자 스키마를 설정하려면 thingworxPostgresSchemaSetup 스크립트를 구성하고 실행해야 합니다. 이를 통해 localhost에 설치된 PostgreSQL 인스턴스의 데이터베이스 아래에 공용 스키마를 설정합니다.
1. ThingWorx 소프트웨어 다운로드 패키지에서 thingworxPostgresSchemaSetup 파일을 가져와 엽니다. 이 스크립트는 install 폴더에 있습니다.
2. 필요한 경우 스크립트를 구성합니다. 아래 표의 옵션을 참조하십시오.
* 
이 스크립트는 다음과 같이 기본 매개 변수와 함께 실행할 수 있습니다.
$ sudo sh thingworxPostgresSchemaSetup.sh
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
다음과 같은 세 가지 옵션이 있습니다.
all: 지정된 데이터베이스에 모델 및 데이터 공급자 스키마를 설정합니다.
model: 지정된 데이터베이스에 모델 공급자 스키마를 설정합니다.
data: 지정된 데이터베이스에 데이터 공급자 스키마를 설정합니다.
-o data
3. 스크립트를 실행합니다.
* 
사용자 이름은 이전에 생성된 PostgreSQL 사용자 이름과 일치해야 합니다.
platform-settings.json 구성
1. Tomcat이 설치된 드라이브의 루트에서 또는 시스템 변수로 이름이 ThingworxPlatform인 폴더를 만듭니다. 다음을 참고하십시오.
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 설치
ThingWorx 설치로 이동하십시오.