설치 및 업그레이드 > ThingWorx 설치 > 수동 설치 > 설치 부록 > PostgreSQL 설치 및 구성(Ubuntu)
PostgreSQL 설치 및 구성(Ubuntu)
아래에 제공된 지침은 PostgreSQL 관리자(DB 호스트 서버 아님)를 대상으로 작성되었습니다. 구현에 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. PostgreSQL 관리 도구인 PgAdmin을 설치합니다.
$ 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에서 file->Open postgresql.conf를 클릭합니다.
/etc/postgresql/x.x/main/postgresql.conf를 엽니다.
listen addressesport 옆에 체크 표시를 합니다. 일반적으로 기본 설정인 localhost5432로 충분합니다.
저장하고 닫습니다.
file->Open pg_hba.conf를 클릭합니다.
/etc/postgresql/x.x/main/pg_hba.conf를 엽니다.
주소가 127.0.0.1/32인 데이터베이스 'all' 줄을 두 번 클릭합니다.
Method를 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 psql -U postgres -c "CREATE USER twadmin WITH PASSWORD '<unique postgres password>';"
b. 생성 - 로그인/그룹 역할을 선택합니다. 일반 탭의 이름 필드에 PostgreSQL 관리를 위한 <PostgreSQL 사용자 역할 이름>을 입력합니다.
c. 권한 탭의 로그인 가능?에서 를 선택합니다.
d. 정의 탭의 암호 필드에 PostgreSQL에 대한 고유하고 안전한 암호를 입력합니다.
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
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.sh 스크립트를 구성하고 실행해야 합니다.
* 
ThingWorx 9.3.1 이후에는 ThingworxPostgresqlStorage 폴더 생성 또는 –l 매개 변수 관련 단계가 더 이상 필요하지 않으며 ThingWorx 데이터는 Postgresql의 기본 위치에 저장됩니다.
1. install 폴더에 있는 ThingWorx 소프트웨어 다운로드 패키지에서 thingworxPostgresDBSetup.sh 스크립트를 가져옵니다. ThingWorx 다운로드는 PTC 소프트웨어 다운로드에서 제공됩니다.
2. 필요한 경우 스크립트를 구성합니다. 아래 표의 옵션을 참조하십시오.
* 
이 예에서는 PTC 사이트의 9.x.x 다운로드를 사용합니다. 필요한 경우 파일 이름을 사용하는 버전으로 변경하십시오.

$ sudo unzip MED-61111-CD-085_F000_ThingWorx-Platform-Postgres-9-x-x.zip
$ cd install
3. 데이터베이스 및 테이블 공간을 PostgreSQL 데이터베이스 및 PostgreSQL 사용자 이름이 있는 기본 PostgreSQL 설치로 설정하려면 다음을 입력합니다.
$ sudo sh thingworxPostgresDBSetup.sh -a postgres -u <user role name> -l /ThingworxPostgresqlStorage
thingworxPostgresDBSetup 스크립트 옵션
옵션
매개 변수
기본값
설명
t 또는 -T
tablespace
thingworx
테이블 공간 이름
-t thingworx
-p 또는 -P
port
5432
PostgreSQL의 포트 번호
-p 5432
-d 또는 -D
database
thingworx
생성할 PostgreSQL 데이터베이스 이름
-d thingworx
-l 또는 -L
tablespace_location
/ThingworxPostgresqlStorage
ThingWorx 9.3.0 이전 버전에 필요합니다. 데이터베이스 객체를 나타내는 파일이 저장된 파일 시스템의 위치입니다. 사용자는 스크립트를 실행하기 전에 권한으로 이 폴더를 수동으로 만든 다음 경로를 지정해야 합니다(예: -l /ThingworxPostgresqlStorage).
* 
폴더에는 적절한 소유권과 액세스 권한이 있어야 합니다. 이러한 폴더는 PostgreSQL 서비스를 실행하는 사용자와 동일한 사용자가 소유해야 하며 해당 사용자에게 전체 제어 권한이 지정되어야 합니다.
-l 또는 -L
-h 또는 -H
host
localhost
호스트 이름입니다.
-h localhost
-a 또는 -A
adminusername
postgres
관리자 이름
-a postgres
-u 또는 -U
thingworxusername
twadmin
데이터베이스에 쓰기 권한을 가진 사용자 이름입니다.
-u twadmin
4. 스크립트를 실행합니다.
모델/데이터 공급자 스키마 스크립트 구성 및 실행
PostgreSQL 모델/데이터 공급자 스키마를 설정하려면 thingworxPostgresSchemaSetup.sh 스크립트를 구성하고 실행해야 합니다. 이를 통해 localhost에 설치된 PostgreSQL 인스턴스의 데이터베이스 아래에 공용 스키마를 설정합니다.
1. ThingWorx 소프트웨어 다운로드 패키지에서 thingworxPostgresSchemaSetup.sh 파일을 가져와 엽니다. 이 스크립트는 install 폴더에 있습니다.
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
* 
public 또는 $user 가 사용되지 않는 경우 postgresql.conf 파일을 편집하고 SEARCH_PATH를 스키마에 추가해야 합니다. 예를 들어, search_path = '"$user", public, "myschema"' 입니다.
-u 또는 -U
username
twadmin
데이터베이스 스키마를 업데이트할 사용자 이름입니다.
-u twadmin
-o 또는 -O
option
all
다음과 같은 세 가지 옵션이 있습니다.
all: 지정된 데이터베이스에 모델 및 데이터 공급자 스키마를 설정합니다.
model: 지정된 데이터베이스에 모델 공급자 스키마를 설정합니다.
data: 지정된 데이터베이스에 데이터 공급자 스키마를 설정합니다.
-o data
3. 스크립트를 실행합니다. 이 스크립트는 다음과 같이 기본 매개 변수와 함께 실행할 수 있습니다.
$ sudo sh thingworxPostgresSchemaSetup.sh
사용자 이름은 이전에 생성된 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과 같은 일부 관리 도구를 제공합니다.
도움이 되셨나요?