일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SQL_COMMANDS #DDL #DML #TCL
- linux #filesystem #linuxdirectory
- postgresql #vacuum #full_vacuum #verbose
- Network #TCP #IP #Netmask #Host
- glossary #database #termins #postgresql #postgresql_architecture
- postgresql
- Linux #linux_tar #split
- SQL_basic
- RAM #CPU #CS #Computer_Science #Terms
- data_oid
- Database
- join #postgresql #sql #database
- inux #ome_dir #unix #linux_commands #linux_useradd #useradd
- the_one_thing
- chatgpt3 #AI #datascience
- Replication
- streaming_replication
- SQL #NULL #NOT_NULL
- database #dbms #objects #sql #schema #table #functions
- EDB
- postgresql_fdw
- SQL_VIEW #SQL #VIEW
- oid2nae #postgresql
- dbms
- postgresql #pgadmin #port #firewalld
- repmgr #postgresql #replication #HA
- network #network_terminology #network_protocols
- postgresql #system_memory #local_memory #shared_memory #postgresql_architecture
- High_Availability
- one_thin
- Today
- Total
i am lazy
EDB Failover Manager (EFM) for Managing Streaming Replication 본문
이전 블로그에서 우리는 데이터베이스 복제에 대해 이해했습니다. 오늘은 데이터베이스 클러스터 관리를 위해 Enterprisedb에서 제공하는 장애 조치 관리자(EFM)를 구성하는 방법을 살펴보겠습니다.
EFM Architecture
장애 조치 관리자는 Postgres 스트리밍 복제 클러스터의 상태를 모니터링하고 장애를 신속하게 확인하는 고가용성 도구입니다. 데이터베이스 오류가 발생하면 장애 조치 관리자가 스트리밍 복제 대기 노드를 쓰기 가능한 기본 노드로 자동 승격할 수 있습니다. 이 기능은 지속적인 성능을 보장하고 최소한의 서비스 중단으로 데이터 손실을 방지합니다.
EFM 클러스터는 다음으로 구성됩니다:
Primary node - 클라이언트에 서비스를 제공하는 기본 데이터베이스 서버입니다.
Standby node (1:N) – Primary 노드와 연결된 스트리밍 복제 서버입니다.
Witness node - 두 노드가 동시에 기본 노드로 승격되지 않도록 standby를 primary로 승격하는 특수 node입니다.
Agent - 각 DB의 상태를 모니터링하며 문제가 발생하면 관리자에게 email 알림을 보내 줍니다.
EFM installation
Primary node: 192.168.56.162
Standby node: 192.168.56.166
Witness node: 192.168.56.167
installation requirements
Java package install:
- Failover Manager를 사용하기 전에 먼저 Java(버전 1.8 이상)를 설치해야 한다.
Streaming replication 구성 :
- 장애 조치 관리자를 사용하려면 기본 노드와 대기 노드 간에 PostgreSQL 스트리밍 복제를 구성해야 한다. 장애 조치 관리자는 다른 유형의 복제를 지원하지 않다.
- 스트리밍 복제 구성방법을 모르시는 분들은 아래 링크를 (https://azikdb.tistory.com/4) 통해 설정하시면 됩니다.
pg_hba.conf file 수정:
- pg_hba.conf 클러스터의 모든 노드 간에 통신을 허용하는 항목을 추가하여 기본 및 대기 노드에서 수정해야 한다.
Installation details
Installation steps
1) Primary node (192.168.56.162)
1.1 check replication status
SELECT * FROM pg_stat_replication; \gx
1.2 install java and efm packages
yum install java
yum install edb-efm44
1.3 update pg_hba.conf file
host all all 192.168.56.162/32 trust
host all all 192.168.56.166/32 trust
host all all 192.168.56.167/32 trust
1.4 copy property files & change mode
cd /etc/edb/efm-4.4
cp efm.nodes.in efm.nodes
cp efm.properties.in efm.properties
chown efm:efm efm.properties
chown efm:efm efm.nodes
1.5 encrypt efm password
/usr/edb/efm-4.4/bin/efm encrypt efm
1.6 update efm.properties fil
db.user=enterprisedb
db.password.encrypted=71667189ea3ee775b6e91938e553e199
db.port=5444
db.database=edb
db.service.owner=enterprisedb
db.bin=/usr/edb/as13/bin
db.data.dir=/var/lib/edb/as14/data
db.config.dir=/var/lib/edb/as14/data
user.email=efm@localhost
bind.address=192.168.56.162:7800
is.witness=true
virtual.ip=10.0.2.100
vitual.ip.interface=enp0s3
virtual.ip.prefix=24
virtual.ip.single=true
auto.allow.hosts=true
1.7 start efm service
systemctl start edb-efm-4.4.
1.8 standby, witness node IP 추가
/usr/edb/efm-4.4/bin/efm allow-node efm 192.168.56.166
/usr/edb/efm-4.4/bin/efm allow-node efm 192.168.56.167
1.8 check efm cluster status
/usr/edb/efm-4.4/bin/efm cluster-status efm
2) Standby node (192.168.56.166)
2.1 install java and efm packages
yum install java
yum install edb-efm44
2.2 update pg_hba.conf file
host all all 192.168.56.162/32 trust
host all all 192.168.56.166/32 trust
host all all 192.168.56.167/32 trust
2.3 copy property files & change mode
cd /etc/edb/efm-4.4
cp efm.nodes.in efm.nodes
cp efm.properties.in efm.properties
chown efm:efm efm.properties
chown efm:efm efm.nodes
2.4 update efm.properties file
이 단계에서 설정은 이전 대기 노드 설정과 동일하며 별도로 지정한 부분만 변경하면 됩니다.
db.user=enterprisedb
db.password.encrypted=71667189ea3ee775b6e91938e553e199
db.port=5444
db.database=edb
db.service.owner=enterprisedb
db.bin=/usr/edb/as13/bin
db.data.dir=/var/lib/edb/as14/data
db.config.dir=/var/lib/edb/as14/data
user.email=efm@localhost
bind.address=192.168.56.166:7800
is.witness=true
virtual.ip=10.0.2.100
vitual.ip.interface=enp0s3
virtual.ip.prefix=24
virtual.ip.single=true
auto.allow.hosts=true
2.5 update efm.nodes
vi efm.nodes
2.6 start efm service
systemctl start edb-efm-4.4
2.7 check cluster status
/usr/edb/efm-4.4/bin/efm cluster-status efm
3) Witness node (192.168.56.166)
3.1 install java and efm packages
yum install java
yum install edb-efm44
\\3.2 copy property files & change mode
cd /etc/edb/efm-4.4
cp efm.nodes.in efm.nodes
cp efm.properties.in efm.properties
chown efm:efm efm.properties
chown efm:efm efm.nodes
3.3 update efm.properties file
이 단계에서 설정은 이전 대기 노드 설정과 동일하며 별도로 지정한 부분만 변경하면 됩니다.
db.user=enterprisedb
db.password.encrypted=71667189ea3ee775b6e91938e553e199
db.port=5444
db.database=edb
db.service.owner=enterprisedb
db.bin=/usr/edb/as13/bin
db.data.dir=/var/lib/edb/as14/data
db.config.dir=/var/lib/edb/as14/data
user.email=efm@localhost
bind.address=192.168.56.167:7800
is.witness=true
virtual.ip=10.0.2.100
vitual.ip.interface=enp0s3
virtual.ip.prefix=24
virtual.ip.single=true
auto.allow.hosts=true
3.4 start efm service
systemctl start edb-efm-4.4
3.5 update efm.nodes
vi efm.nodes
3.6 check cluster status
/usr/edb/efm-4.4/bin/efm cluster-status efm
4) Switchover test
Failover - 장애 발생시 서비스 연석성을 유지하기 위해서 사용자가 강제 전환 하는 기술이다
Switchover – 유지 관리상 고가영성을 유지하기 위해서 사용자가 임으로 전환하는 기술이다
4.1 check cluster status
클러스터 상태 출력에 기본 및 대기 노드가 동기화되어 있는 것으로 표시되면 전환을 수행할 수 있습니다.
4.2 switchover
/usr/edb/efm-4.4/bin/efm promote efm -switchover
이 명령은 대기 데이터베이스를 승격하고 기본 데이터베이스를 클러스터의 새 대기 데이터베이스로 재구성합니다. 다시 전환하려면 명령을 다시 실행하면 됩니다.
장애 조치 관리자는 efm클러스터 관리를 지원하는 유틸리티를 제공합니다.
efm allow-node
efm disallow-node
efm promote
efm resume
efm set-priority
efm stop-cluster
efm upgrade-conf
efm --help
Failover Manager에 대한 정보는 공식 사이트 https://www.enterprisedb.com/docs/efm/latest/ 에서 얻을 수 있습니다.
@Azik 🧑🏻💻
'PostgreSQL' 카테고리의 다른 글
Free test data (0) | 2022.10.04 |
---|---|
pgAdmin을 통해 테스트 데이터 업로드 (0) | 2022.10.04 |
PostgreSQL 외부 접속 허용 (0) | 2022.10.04 |
Setup EDB Postgres 14 Streaming Replication (0) | 2022.08.13 |
EDB Postgres 14 offline installation on Oracle Linux 8.5 (0) | 2022.08.06 |