|
구성 열에 나열된 값은 참조 아키텍처의 배포 예를 반영하지만 사용자의 환경에 맞게 수정될 수 있습니다. 아래 표에 나온 대부분의 설정에 대해 환경에 적합한 구성 값을 결정하는 데 도움을 주는 링크가 제공됩니다.
|
설정
|
구성
|
설명
|
---|---|---|
listen_addresses
|
'*'
|
모든 네트워크 인터페이스에서 수신합니다. 경우에 따라 네트워크 인터페이스가 여러 개 있는 경우 특정 네트워크 인터페이스로 제한하는 것이 좋습니다.
|
포트
|
5432
|
기본 포트 번호입니다.
|
max_connections
|
200
|
PostgreSQL의 기본값은 100입니다. ThingWorx의 기본 설정은 100입니다(maxpoolsize). 데이터베이스에서 예상되는 총 동시 연결 수에 따라 이 숫자를 늘립니다. 이 값은 항상 클러스터에 있는 서버 수에 ThingWorx platform-settings.json 파일에 구성된 최대 풀 크기를 곱한 값보다 커야 합니다.
|
shared_buffers
|
1024MB
|
선택적 성능 조정입니다. 데이터베이스 서버에서 공유 메모리 버퍼에 사용하는 메모리 양을 설정합니다. 이 양은 시스템에서 사용 가능한 메모리의 1/4로 설정하는 것이 좋습니다. 리소스 소비 > 메모리(Resource Consumption > Memory)를 참조하십시오.
|
work_mem
|
32MB
|
선택적 성능 조정입니다. 임시 디스크 파일에 쓰기 전에 내부 정렬 작업 및 해시 테이블에서 사용할 메모리의 양을 지정합니다. 리소스 소비 > 메모리(Resource Consumption > Memory)를 참조하십시오. work_mem까지 아래로 스크롤합니다.
|
maintenance_work_mem
|
512MB
|
선택적 성능 조정입니다. 유지 관리 작업에서 사용할 최대 메모리 양을 지정합니다. 리소스 소비 > 메모리(Resource Consumption > Memory)를 참조하십시오. 이 옵션은 work_mem 바로 뒤에 나타납니다.
|
wal_level
|
enum
|
선택적 성능 조정입니다. 유지 관리 작업에서 사용할 최대 메모리 양을 지정합니다. Write Ahead Log > Settings(WAL > 설정)를 참조하십시오.
|
synchronous_commit
|
그때
|
Write Ahead Log > Settings(WAL > 설정)로 이동하여 synchronous_commit (enum)으로 스크롤합니다.
|
archive_mode
|
그때
|
|
archive_command
|
'cd .'
|
Write Ahead Log > Archiving(WAL > 아카이빙)으로 이동하여 archive_command (string)으로 스크롤합니다.
|
max_wal_size
|
10
|
Write Ahead Log(WAL)로 이동하여 ARCHIVING(아카이빙) 링크를 클릭합니다. max_wal_size (integer)까지 위로 스크롤합니다. WAL 구성에 대한 자세한 내용은 PostgreSQL 10 설명서의 WAL Configuration(WAL 구성)을 참조하십시오.
|
synchronous_standby_names
|
node1, node2 또는 node2, node0 또는 node0, node1
|
쉼표로 구분된 목록으로 다른 노드의 "application_name"(해당 recovery.conf 파일에 지정됨)을 추가합니다. Write Ahead Log(WAL)의 Settings(설정) 섹션에서 synchronous_commit을 참조하십시오.
|
hot_standby
|
true/false
|
이 모드에 대한 자세한 내용은 Hot Standby(상시 대기)를 참조하십시오.
|
fsync
|
그때
|
Write Ahead Log > Settings(WAL > 설정)로 이동하여 fsync로 스크롤합니다.
|
체크포인트 설정
|
체크포인트 설정에 대한 자세한 내용은 Checkpoints(체크포인트)를 참조하십시오.
|
|
Pgpool-II에서 연결하는 경우 인증 액세스가 여기에 설명된 Pgpool-II 설명서(md5 또는 신뢰)를 따르는지 확인합니다.
|
설정
|
값
|
설명
|
||
---|---|---|---|---|
listen_addresses
|
'*'
|
ThingWorx 응용 프로그램의 모델 공급자가 동일한 서버 또는 다른 서버에 있는 Pgpool-II에 연결할 수 있도록 허용하는 값을 선택합니다.
|
||
port
|
5432
|
클라이언트 연결을 수신하기 위한 TCP 포트
|
||
pcp_listen_address
|
*
|
PCP(Port Control Protocol) 연결을 위한 IP/호스트 필터(* 모두 허용)
|
||
pcp_port
|
9898
|
PCP 연결을 수신하기 위한 TCP 포트
|
||
backend_hostname
backend_port
backend_weight
backend_data_directory
backend_flag
|
<ip of backend#>
<port of backend#>
1
/var/lib/postgresql/10.x/main
ALLOW_TO_FAILOVER
|
세 노드(마스터 및 두 개의 대기) 각각에 대해 이러한 백엔드 구성 값을 설정합니다. 예를 들어, backend_hostname0이 마스터이면 backend_hostname1은 대기입니다. 자세한 내용은 PostgreSQL 온라인 설명서를 참조하십시오.
|
||
enable_pool_hba
|
그때
|
pool_hba.conf를 활성화합니다.
|
||
master_slave_mode
|
그때
|
마스터/대기 복제를 사용하고 있음을 PostgreSQL에 알립니다.
|
||
load_balance_mode
|
off
|
|
||
master_slave_sub_mode
|
stream
|
기본 제공 PostgreSQL 스트리밍 복제를 사용하도록 Pgpool-II에 알립니다.
|
||
replication_mode
|
off
|
Pgpool-II의 복제를 사용하지 마십시오. 대신 기본 제공 PostgreSQL 스트리밍 복제를 사용합니다.
|
||
sr_check_period
|
10
|
스트리밍 복제 지연 시간(초)
|
||
sr_check_user
|
replicator
|
스트리밍 복제 사용자
|
||
sr_check_password
|
replicator
|
스트리밍 복제 암호
|
||
sr_check_database
|
postgres
|
스트리밍 복제 데이터베이스
|
||
health_check_user
|
postgres
|
장애 조치 상태 확인 사용자
|
||
health_check_password
|
postgres
|
장애 조치 상태 확인 암호
|
||
health_check_database
|
postgres
|
장애 조치 상태 확인 데이터베이스
|
||
failover_command
|
/etc/pgpool2/failover.sh %d %h %D %m %H %R %M %P
|
이 설정에 대한 자세한 내용은 아래의 failover_command 단원을 참조하십시오.
또한 부록 C에 나오는 다음 샘플 스크립트를 참조하십시오.
• failover.sh
• retargetMaster_001.sh
• retargetMaster_002.sh
• retargetMaster_003.sh
|
||
num_init_children
max_pool
max_child_connections
superuser_reserved_connections
|
성능 조정 매개 변수입니다. 이러한 설정은 Pgpool-II의 연결 풀링 기능과 관련이 있습니다. 시작 시 가장 높은 볼륨 트래픽 처리량 요구사항에 필요한 충분한 연결을 제공해야 합니다. 단, PostgreSQL DB 노드의 최대 연결 수 설정을 초과하지 않아야 합니다. 제안 사항 및 값 계산을 위한 수식은 설명서의 Pools 단원(위의 링크 참조)을 참조하십시오.
|
설정
|
값
|
설명
|
---|---|---|
use_watchdog
|
그때
|
Pgpool-II에서 watchdog을 켭니다.
|
wd_hostname
|
'{IP address of this Pgpool-II node}'
|
이 watchdog의 호스트 이름 또는 IP 주소입니다.
|
wd_port
|
9000
|
이 watchdog의 포트 번호입니다.
|
delegate_IP
|
'{Virtual IP address to access PostgreSQL}'
|
클라이언트가 Pgpool-II를 통해 PostgreSQL에 액세스하는 데 사용하는 가상 IP 주소입니다.
|
ifconfig_path
|
/etc/pgpool2
|
if_up_cmd 및 if_down_cmd 명령 또는 스크립트가 포함된 디렉터리의 절대 경로입니다.
|
if_up_cmd
|
'ifup.sh $_IP_$ <eni id of Pgpool node>'
|
Pgpool-II가 delegate_IP 주소를 사용하여 가상 IP 인터페이스를 실행하려고 시도하면 명령이 실행됩니다. EC2 관리 콘솔에 로그인하고 해당 Pgpool-II 인스턴스로 이동하여 Pgpool-II 노드의 eni ID를 검색할 수 있습니다. 콘솔의 설명에서 Network interfaces 엔트리를 찾고 eth0을 클릭한 다음 인터페이스 ID를 찾습니다. 이 ID를 $<eni id of Pgpool node>에 사용합니다.
|
if_down_cmd
|
'ifdown.sh $_IP_$ <eni id of Pgpool node>'
|
Pgpool-II가 delegate_IP 주소를 사용하여 가상 IP 인터페이스를 내리려고 시도하면 명령이 실행됩니다. Pgpool-II 노드의 eni ID를 가져오려면 if_up_cmd를 참조하십시오.
|
arping_path
|
/usr/bin
|
iputils-arping 설치 패키지의 경로
|
arping_cmd
|
arping -U $_IP_$ -w 1
|
IP를 확인하는 데 사용되는 arping 명령
|
heartbeat_destination0
|
'{IP address of the other Pgpool-II node}'
|
하트비트 검사를 수행할 IP 주소. other_pgpool_hostname0 설정의 값
|
heartbeat_destination_port0
|
9694
|
기본값을 사용하십시오.
|
heartbeat_device
|
'eth0'
|
하트비트 통신을 위한 IP 주소용 NIC 장치
|
other_pgpool_hostname0
|
'{IP address of the other Pgpool-II node}'
|
다른 Pgpool-II 서버 인스턴스의 IP 주소
|
other_pgpool_port0
|
5432
|
다른 Pgpool-II 노드가 수신하는 포트
|
other_wd_port0
|
9000
|
다른 Pgpool-II watchdog 기능이 수신하는 포트
|