📢 본 문서는 PostgreSQL Replication 설정 시 발생할 수 있는 내용을 다룹니다. PostgreSQL Replication 구성에 대한 내용은 PostgreSQL Replication - 구성
을 참조하세요.
1. ssh-keygen 설정
2. listen_addresses 설정하지 않았을 경우
3. pg_hba.conf 설정하지 않았을 경우
4. max_wal_senders를 1 이하로 설정했을 경우
5. hot_standby 설정
6. Replication User 접속 불가
7. PostgreSQL Database Encoding/locale 옵션이 다른 경우
8. recovery.conf
9. postgresql.conf 위치 확인
10. pg_hba.conf 위치 확인
11. Online 상태에서 Data Directory 백업
1. ssh-keygen 설정
## Main Server SSH-KEY 생성
[root@main ~] su - postgres
[postgres@main ~] ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/pgsql/.ssh/id_rsa): ### Enter
Created directory '/var/lib/pgsql/.ssh'.
Enter passphrase (empty for no passphrase): ### Enter
Enter same passphrase again: ### Enter
Your identification has been saved in /var/lib/pgsql/.ssh/id_rsa.
Your public key has been saved in /var/lib/pgsql/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BAuGrwc14Gfd2ICvgkHqixNFIlQNKagTC5OGse5/4xI postgres@main
The keys randomart image is:
+---[RSA 2048]----+
|=+o=*.o |
|X*oo++ B |
|O*oooo+ + |
|B oo. .. |
|.* o . S |
|+.oEo |
|.o.o. |
|o... o |
| . .+.. |
+----[SHA256]-----+
[postgres@main ~] ls -l .ssh
total 8
-rw-------. 1 postgres postgres 1679 Feb 3 16:37 id_rsa
-rw-r--r--. 1 postgres postgres 395 Feb 3 16:37 id_rsa.pub
## Standby Server SSH-KEY 등록
## Main Server의 SSH-KEY(공유키:Public Key) 내용 복사
[postgres@main ~] cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdKuCYOAScbnX2mhUR084IQWCdb0OLWFZzBZMGuKpUqZVJKoPtqfDqvi8o+KOKVIT4Ce6ty/Ke/81mZoApl/uX9OJ0TfAgthym99s5qQOzaT5FVA9FexfVz4gdqz0QuiHIXxmXmB/6BYGcTx2s6iJB2dTftBdRpktEh/xzGkzMHU78HLlFOuxmYyOCjZnS1hr3dhVKl7WzPP/Lh7kxCaZvdxivcwJZd9piXa7vBuBocupLw3WriOvDOImzRzf8VDuj7uJodkM+plPrCRKv95ByAfBBEnBTFHk2e9omLSwY4c22DXN5jTBCCH7kG4Q3S8iYS/LSyAxvUG+QFXoD5vcp postgres@main
## Standby Server에 Main Server의 SSH_KEY 등록
[root@standby ~] su - postgres
### .ssh Directory가 없을 경우 .ssh Directory 생성
[postgres@standby ~] mkdir .ssh
### .ssh/authorized_keys 파일을 생성하여 Main Server의 SSH-KEY 붙여넣기
[postgres@standby ~] vi .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdKuCYOAScbnX2mhUR084IQWCdb0OLWFZzBZMGuKpUqZVJKoPtqfDqvi8o+KOKVIT4Ce6ty/Ke/81mZoApl/uX9OJ0TfAgthym99s5qQOzaT5FVA9FexfVz4gdqz0QuiHIXxmXmB/6BYGcTx2s6iJB2dTftBdRpktEh/xzGkzMHU78HLlFOuxmYyOCjZnS1hr3dhVKl7WzPP/Lh7kxCaZvdxivcwJZd9piXa7vBuBocupLw3WriOvDOImzRzf8VDuj7uJodkM+plPrCRKv95ByAfBBEnBTFHk2e9omLSwY4c22DXN5jTBCCH7kG4Q3S8iYS/LSyAxvUG+QFXoD5vcp postgres@main
## Password 없이 Public key로 SSH 접속 확인 (Main Server → Standby Server)
## Main Server에서 Standby Server로 SSH 접속
## Main Server IP : 10.10.45.230
## Standby Server Ip : 10.10.45.232
[postgres@main ~] ssh postgres@10.10.45.232
Last login: Mon Feb 6 12:15:30 2023 from main
[postgres@standby ~]
📢 ssh-keygen 설정 후에도 SSH 접속 시 비밀번호를 물어보는 경우 SELinux(Security-Enhanced Linux) 설정을 확인하세요.permissive
또는disabled
로 설정되어 있어야 합니다. SELinux 설정은/etc/selinux/config
에서 할 수 있습니다.
2. listen_addresses 설정하지 않았을 경우
Standby Server에서 Main Server로 접속을 할 수 없어 에러가 발생합니다.
[postgres@standby ~] /usr/pgsql-14/bin/pg_basebackup \
> --host=10.10.45.230 --username=repluser --checkpoint=fast \
> --pgdata=/var/lib/pgsql/14/data/ -R
pg_basebackup: error: connection to server at "10.10.45.230", port 5432 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
해결방법
Standby Server에서 Main Server로 접속 가능하도록 Main Server postgresql.conf의 listen_addresses = '*'
또는 listen_addresses = 'Standby_Server_IP'
를 설정해 줍니다.
[postgres@main ~] vi /var/lib/pgsql/14/data/postgresql.conf
listen_addresses = '*'
또는
listen_addresses = '10.10.45.231'
3. pg_hba.conf 설정하지 않았을 경우
Streaming Replication 설정에서 Standby Server는 Main Server의 WAL Record를 추적합니다. Replication User로 Main Server에 접속하지 못하면 Replication은 실패합니다.
[postgres@standby ~] /usr/pgsql-14/bin/pg_basebackup \
> --host=10.10.45.230 --username=repluser --checkpoint=fast \
> --pgdata=/var/lib/pgsql/14/data/ -R
pg_basebackup: error: connection to server at "10.10.45.230", port 5432 failed: FATAL: **no pg_hba.conf entry for replication connection from host "10.10.45.231", user "repluser", no encryption**
해결방법
Physical Replication에서 Standby Server가 Main Server에 Replication User로 접근이 가능하도록 pg_hba.conf에 설정해야 합니다. pg_hba.conf에서 DATABASE를 replication
으로 지정해야 Replication User를 통한 접속이 가능합니다.
이때, 허용 가능한 값 중 all
이 존재하는데, all
에는 replication
이 포함되어 있지 않으므로 주의해야 합니다.
[postgres@main ~] vi /var/lib/pgsql/14/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
host replication repluser 10.10.45.231/24 trust
📢 Logical Replication은 DATABASE를all
로 설정해야 합니다. 만약replication
으로 설정하면 아래와 같은 에러가 발생합니다.ERROR: could not connect to the publisher: connection to server at "main_server", port 5432 failed: FATAL: no pg_hba.conf entry for host "standby_server", user "repluser", database "postgres", no encryption
4. max_wal_senders를 1 이하로 설정했을 경우
Replication을 사용할 경우, WAL 파일을 전달하기 위한 Sender 1개와 pg_basebackup을 위한 Sender 1개가 반드시 필요합니다. 따라서 max_wal_senders
는 최소 2 이상으로 설정해야 하며, 이보다 작은 경우 Replication 구성에 실패합니다.
[postgres@standby ~] /usr/pgsql-14/bin/pg_basebackup \
> --host=10.10.45.230 --username=repluser --checkpoint=fast \
> --pgdata=/var/lib/pgsql/14/data/ -R
pg_basebackup: error: connection to server at "10.10.45.230", port 5432 failed: FATAL: number of requested standby connections exceeds **max_wal_senders (currently 1)**
pg_basebackup: removing contents of data directory "/var/lib/pgsql/14/data/"
해결방법
max_wal_senders
의 값을 2 이상으로 설정합니다. max_wal_senders
는 PostgreSQL 9.6 버전까지는 기본값이 0이지만, PostgreSQL 10 버전부터 기본값이 10입니다.
[postgres@main ~] vi /var/lib/pgsql/14/data/postgresql.conf
max_wal_senders = 2 ## 2이상으로 설정
5. hot_standby 설정
hot_standby
값을 off
로 설정하면 Standby Server는 Main Server로부터 전달받은 WAL 파일을 Restore 하는 역할만 수행합니다. 즉, 사용자는 Standby Server에 접속하지 못할뿐더러, Query 수행을 할 수 없습니다.
## hot_standby = off 설정
[postgres@standby ~] psql
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: the database system is not accepting connections
DETAIL: Hot standby mode is disabled.
6. Replication User 접속 불가
Replication 전용 DB User를 생성했지만, Login 권한이 없어서 접속이 불가능할 경우 에러가 발생합니다. PostgreSQL에서는 User와 Role을 혼용해서 사용합니다. CREATE USER로 생성 시 Login 권한이 기본으로 부여가 되지만, CREATE ROLE로 생성 시 Login 권한이 부여되지 않습니다.
[postgres@main ~] psql -U repl -d postgres
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: **role "repl" is not permitted to log in**
해결방법
Replication 전용 DB User에 Login 권한을 추가적으로 부여합니다.
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
repl | Cannot login, Replication | {}
postgres=# ALTER USER repl WITH LOGIN;
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
repl | Replication | {}
[postgres@main ~] psql -U repl -d postgres
psql (14.6)
postgres=>
7. PostgreSQL Database Encoding/locale 옵션이 다른 경우
PostgreSQL Database 생성 시 Encoding/locale 옵션이 다를 경우 Replication 초기화가 불가능할 수 있습니다. Linux의 경우 옵션 없이 initdb 수행 시 Encoding 옵션이 UTF8이지만, Windows의 경우 WIN1252입니다.
postgres=# CREATE SUBSCRIPTION my_subscription CONNECTION 'dbname=postgres host=10.10.45.230 port=5432 user=repluser PUBLICATION my_publication' ;
ERROR: character with byte sequence 0xec 0x98 0xa4 in encoding "UTF8" has no equivalent in encoding "WIN1252"
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------------+-------------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | Korean_Korea.1252 | Korean_Korea.1252 | | libc |
template0 | postgres | UTF8 | Korean_Korea.1252 | Korean_Korea.1252 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | Korean_Korea.1252 | Korean_Korea.1252 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
해결방법
Standby Server의 Database를 Encoding/locale 옵션을 Main Server와 동일하게 부여하여 다시 구성합니다.
## Main Server의 Encoding, collate, ctype 옵션 확인
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
## 1. PostgreSQL Windows Service 종료
## 2. PostgreSQL Data 폴더 내용 삭제
## 3. PostgreSQL Initailization (Main Server와 동일하게 구성)
C:\Program Files\PostgreSQL\15\bin> "C:\Program Files\PostgreSQL\15\bin\initdb" --username=postgres --pgdata="C:\Program Files\PostgreSQL\15\data" --encoding=UTF8 --locale=en_US.UTF-8
The files belonging to this database system will be owned by user "Administrator".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory C:/Program Files/PostgreSQL/15/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... windows
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... GMT
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
^"C^:^\Program^ Files^\PostgreSQL^\15^\bin^\pg^_ctl^" -D ^"C^:^\Program^ Files^\PostgreSQL^\15^\data^" -l logfile start
8. recovery.conf
recovery.conf는 Replication에 관련된 파라미터로 구성되어 있습니다. postgresql.conf, pg_hba.conf, pg_ident.conf 등의 Configuration 파일 위치는 변경이 가능하지만, recovery.conf는 PostgreSQL Data Directory 내부에만 존재해야 합니다. recovery.conf 파일이 존재하는 Server는 Standby Server로 운영되며, recovery.conf 파일이 recovery.done으로 이름이 변경됩니다.
recovery.conf는 PostgreSQL 8.0 버전부터 사용되었으며, PostgreSQL 12 버전에서 recovery.conf에 기술된 파라미터는 postgresql.conf에 배치되고, standby.signal과 recovery.signal 두 개의 Signal 파일을 사용하는 것으로 대체되었습니다. 따라서, PostgreSQL 12 버전부터는 PostgreSQL Data Directory에 recovery.conf가 존재하면 Database가 기동 되지 않습니다.
## PostgreSQL 14 버전에서 recovery.conf 생성 후 기동
## PostgreSQL Log 내용
2023-02-14 11:17:45.103 KST [34778] LOG: database system was shut down at 2023-02-14 11:17:23 KST
2023-02-14 11:17:45.103 KST [34778] FATAL: using recovery command file "recovery.conf" is not supported
2023-02-14 11:17:45.106 KST [34775] LOG: startup process (PID 34778) exited with exit code 1
2023-02-14 11:17:45.106 KST [34775] LOG: aborting startup due to startup process failure
2023-02-14 11:17:45.109 KST [34775] LOG: database system is shut down
standby.signal
Database Server를 Standby Server로 사용하기 위해 사용하는 Signal 파일입니다. PostgreSQL 12 버전부터 사용되며, recovery.conf의 standby_mode(on 또는 off)를 대체하여 사용됩니다. recovery.signal 파일보다 우선순위가 높습니다.
recovery.signal
Database Server를 Targeted Recovery Mode로 시작하기 위해 사용하는 Signal 파일입니다.
파라미터 변경내용 1) Archive Recovery Setting
아래 파라미터들은 PostgreSQL 12 버전부터 postgresql.conf의 Write_Ahead Log 항목으로 분류됩니다.
recovery.conf | 설명 |
archive_clenaup_command | 중복으로 Archive된 WAL 파일을 정리하기 위한 쉘 명령을 지정 |
recovery_end_command | 복구 종료 시 실행할 쉘 명령을 지정 |
restore_command | WAL Archive 파일을 이용하여 Database 복구 시 사용하는 쉘 명령을 지정 |
파라미터 변경내용 2) Recovery Target Setting
아래 파라미터들은 PostgreSQL 12 버전부터 postgresql.conf의 Write_Ahead Log 항목으로 분류됩니다. pause_at_recovery_target 파라미터는 PostgreSQL 9.6 버전부터 recovery_target_action으로 변경되었습니다.
recovery.conf | 설명 |
pause_at_recovery_target | 복구 대상에 도달했을 때 수행할 행동을 결정. 9.5 버전 부터 recovery_target_action으로 변경. |
recovery_target | 일관적인 상태가 되자마자 복구가 종료되도록 지정 (immediate가 지정할 수 있는 유일한 값) |
recovery_target_action | 복구 대상에 도달했을 때 수행할 행동을 결정. 9.5 버전 부터 pause_at_recovery_target에서 recovery_target_action로 변경 (pause/promote/shutdown) |
recovery_target_inclusive | 지정된 복구 대상 바로 뒤(true) 또는 복구 대상 바로 앞(false)에서 중지할지 여부를 지정. |
recovery_target_lsn | 복구가 진행될 WAL 위치의 LSN을 설정 |
recovery_target_name | pg_create_restore_point 함수를 이용하여 복원 지점을 지정 |
recovery_target_time | 복구가 진행될 시간을 지정. recovery_target_time과 recovery_target_xid 중 최대 하나만 지정가능. 정확한 정지 지점은 recovery_target_inclusive의 영향을 받음 |
recovery_target_timeline | 복구할 Timeline을 지정 |
recovery_target_xid | 복구가 진행될 트랜잭션 ID를 지정. recovery_target_time과 recovery_target_xid 중 최대 하나만 지정가능. 정확한 정지 지점은 recovery_target_inclusive의 영향을 받음 |
파라미터 변경내용 3) Standby Server Setting
아래 파라미터들은 PostgreSQL 12 버전부터 postgresql.conf의 Replication 항목으로 분류됩니다. PostgreSQL 12 버전부터 standby_mode 파라미터는 standby.signal과 recovery.signal 파일로 대체되었습니다.
recovery.conf | 설명 |
primary_conninfo | Replication 대상 DB(Main Server)의 접속 정보 |
primary_slot_name | Streaming Replication에서 Main Server에 연결할 때 사용할 복제슬롯이름 |
recovery_min_apply_delay | 지정한 시간만큼 복구를 지연시킴(단위:ms) |
standby_mode | Standby Server로 운영하고자 할 때, on으로 설정 |
tirgger_file | Standby 상태가 끝났음을 알리는 파일이름을 지정. 지정한 파일이 존재하면 Standby Mode를 종료하고 Active 상태로 운영한다. standby_mode=off 이면 이 설정은 무시. PostgreSQL 12 버전부터 promote_trigger_file로 변경 |
9. postgresql.conf 위치 확인
프로세스 조회를 통한 위치 확인
## 일반적으로 postgreSQL Data Directory에 postgresql.conf 위치
[postgres@main ~] ps -ef | grep postgres
postgres 4149 1 0 12:25 ? 00:00:00 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
postgres 4151 4149 0 12:25 ? 00:00:00 postgres: logger
postgres 4153 4149 0 12:25 ? 00:00:00 postgres: checkpointer
postgres 4154 4149 0 12:25 ? 00:00:00 postgres: background writer
postgres 4155 4149 0 12:25 ? 00:00:00 postgres: walwriter
postgres 4156 4149 0 12:25 ? 00:00:00 postgres: autovacuum launcher
postgres 4157 4149 0 12:25 ? 00:00:00 postgres: stats collector
postgres 4158 4149 0 12:25 ? 00:00:00 postgres: logical replication launcher
SQL 조회를 통한 위치 확인
-- PostgreSQL에서 postgresql.conf 위치 조회 가능
postgres=# show config_file;
config_file
----------------------------------------
/var/lib/pgsql/14/data/postgresql.conf
(1 row)
10. pg_hba.conf 위치 확인
프로세스 조회를 통한 위치 확인
## 일반적으로 postgreSQL Data Directory에 pg_hba.conf 위치
[postgres@main ~] ps -ef | grep postgres
postgres 4149 1 0 12:25 ? 00:00:00 /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
postgres 4151 4149 0 12:25 ? 00:00:00 postgres: logger
postgres 4153 4149 0 12:25 ? 00:00:00 postgres: checkpointer
postgres 4154 4149 0 12:25 ? 00:00:00 postgres: background writer
postgres 4155 4149 0 12:25 ? 00:00:00 postgres: walwriter
postgres 4156 4149 0 12:25 ? 00:00:00 postgres: autovacuum launcher
postgres 4157 4149 0 12:25 ? 00:00:00 postgres: stats collector
postgres 4158 4149 0 12:25 ? 00:00:00 postgres: logical replication launcher
SQL 조회를 통한 위치 확인
-- PostgreSQL에서 postgresql.conf 위치 조회 가능
postgres=# show hba_file;
hba_file
------------------------------------
/var/lib/pgsql/14/data/pg_hba.conf
(1 row)
11. Online 상태에서 Data Directory 백업
Online 상태에서도 Data Directory에 대한 백업을 수행할 수 있습니다. 단, 이를 위해서는 다음과 같은 설정이 필요합니다.
wal_level = replica
archive_mode = on
archive_command
Online 백업을 수행하기 위해 pg_start_backup
으로 Database를 Hot Backup 모드로 진입시키고 Data Directory를 백업합니다(OS). 백업 완료 후 pg_stop_backup
명령어를 통해 Hot Backup 모드를 종료합니다. 이때, 백업된 Data Directory와 Hot Backup 모드에서 발생한 WAL 파일들을 이용하면 완전복구가 가능합니다.
pg_start_backup()
File System Level에서 백업을 수행할 수 있는 상태로 만드는 함수입니다. 함수를 수행한 시점에 백업파일에서 복구할 수 있는 최소 WAL 파일 위치의 LSN(Log Sequence Number)을 반환합니다. 또한, PostgreSQL Data Directory를 백업한 Directory에는 backup_label 파일이 생성됩니다.
📢 PostgreSQL 15 버전부터 pg_backup_start로 변경되었습니다.
postgres=# SELECT pg_start_backup('backup');
pg_start_backup
-----------------
0/34000028
(1 row)
[root@standby ~] ls /var/lib/pgsql/14/data | grep backup_label
backup_label
backup_label
백업에 대한 Meta Data를 제공하기 위해 생성된 파일입니다. 특히 백업 시작 LSN에 대한 Meta Data를 포함하고 있어 백업된 서버는 처음 시작할 때 WAL 파일 적용을 시작할 위치를 알 수 있습니다. 복구(복제) 서버에서 PostgreSQL Database 기동이 성공하면, backup_label.old로 이름이 변경됩니다.
[root@standby ~] vi /var/lib/pgsql/14/data/backup_label
START WAL LOCATION: 0/34000028 (file 000000010000000000000034)
CHECKPOINT LOCATION: 0/34000060
BACKUP METHOD: pg_start_backup
BACKUP FROM: primary
START TIME: 2023-02-07 12:12:39 KST
LABEL: backup
START TIMELINE: 1
항목 | 설명 |
START WAL LOCATION | |
CHECKPOINT LOCATION | pg_start_backup 수행 시 발생한 Checkpoint가 기록된 LSN 위치 |
BACKUP METHOD | 백업 방식 |
BACKUP FROM | 백업이 수행된 서브 (primary 또는 standby) |
START TIME | pg_start_backup이 수행된 시간 |
LABEL | pg_start_backup 실행 시 입력한 라벨 값 |
START TIMELINE | PostgreSQL 11 버전에 도입되었고, 백업 시작 시점의 타임라인 값을 기록 |
pg_stop_backup()
pg_start_backup이 끝났음을 알려주는 함수이며, 수행되면 WAL File을 Switching 하며 백업이 끝났음을 WAL에 기록합니다. 또한, 백업 히스토리 파일을 생성합니다.
📢 PostgreSQL 15 버전부터 pg_backup_stop로 변경되었습니다.
postgres=# SELECT pg_stop_backup();
NOTICE: all required WAL segments have been archived
pg_stop_backup
----------------
0/36000088
(1 row)
기획 및 글 | DB기술기획팀
'엑셈 경쟁력 > DB 인사이드' 카테고리의 다른 글
DB 인사이드 | PostgreSQL Replication - Catalog (0) | 2023.06.29 |
---|---|
DB 인사이드 | PostgreSQL Replication - Function (0) | 2023.06.29 |
DB 인사이드 | PostgreSQL Replication - 구성 (0) | 2023.05.25 |
DB 인사이드 | PostgreSQL Replication - 종류 (1) | 2023.04.27 |
DB 인사이드 | PostgreSQL HOT - 2. Update 동작 과정 (0) | 2023.03.30 |
댓글