database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10257 게시물 읽기
No. 10257
PITR관련 문의
작성자
훈모모(elastica3)
작성일
2021-06-22 17:01
조회수
2,379

pgpool-II -> postgresql-13구성에서


DB서버의 한쪽이 장애가 발생한 경우에는 pgpool온라인리커버리로 대응하지만


2대의 db서버가 동시에 장애가 발생하였을 시에는 아카이브파일로 특정시점에서의 primary복구를 진행하고싶습니다.


현재 테스트 과정에서


기본 실행단계에서는

vi /var/lib/pgsql/13/data/postgresql.conf


archive_mode = on

archive_command = 'cp "%p" "/var/lib/pgsql/archivedir/%f"'

아카이브모드를 온시켜두었으며


2대의 DB서버를 모두 서비스 정지시킨후

sudo systemctl stop postgresql-13


pg_basebackup -D /tmp/postgres/backup -F t -X n -z


rm -rf /var/lib/pgsql/13/data/*


cd /var/lib/pgsql/13/data/

tar xvzf /nfs/postgres/backup/base.tar.gz


vi /var/lib/pgsql/13/data/postgresql.conf


restore_command = 'cp /var/lib/pgsql/archivedir/%f %p'


restore_command를 수정하고


touch /var/lib/pgsql/13/data/recovery.signal


systemctl start postgresql-13


리커버리모드로 셋팅을 하여 primary기의 복구 -> pgpool온라인리커버리standby구성까지는 성공하였으나


특정시점으로의 리커버리를위해

recovery_target_lsn

recovery_target_action

또는

recovery_target_time


을 설정하여 같은 방법으로 복구를 실시하였을때 서비스 실행단계에서 실패하는것을 확인하였습니다.

postgresl.conf설정자체는 인식하는것같지만 복원대상의 WAL파일과의 연계가 이루어지지 않는것처럼 확인이 되고있습니다.


아카이브 파일로 데이터베이스 지점복구에 대해 구성하신분들의 자문을 듣고싶습니다...


로그정보

2021-06-22 06:45:55.500 UTC [5446] LOG:  starting PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1), 64-bit

2021-06-22 06:45:55.501 UTC [5446] LOG:  listening on IPv4 address "0.0.0.0", port 5432

2021-06-22 06:45:55.501 UTC [5446] LOG:  listening on IPv6 address "::", port 5432

2021-06-22 06:45:55.503 UTC [5446] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"

2021-06-22 06:45:55.505 UTC [5446] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"

2021-06-22 06:45:55.508 UTC [5449] LOG:  database system was shut down at 2021-06-22 06:42:24 UTC

cp: cannot stat '/var/lib/pgsql/archivedir/0000000B.history': No such file or directory

2021-06-22 06:45:55.514 UTC [5449] LOG:  starting point-in-time recovery to 2021-06-22 06:41:00+00

2021-06-22 06:45:55.517 UTC [5449] LOG:  restored log file "0000000A.history" from archive

cp: cannot stat '/var/lib/pgsql/archivedir/0000000A000000000000006F': No such file or directory

2021-06-22 06:45:55.524 UTC [5449] LOG:  consistent recovery state reached at 0/6F0000A0

2021-06-22 06:45:55.524 UTC [5449] LOG:  invalid record length at 0/6F0000A0: wanted 24, got 0

2021-06-22 06:45:55.524 UTC [5449] LOG:  redo is not required

2021-06-22 06:45:55.524 UTC [5449] FATAL:  recovery ended before configured recovery target was reached

2021-06-22 06:45:55.526 UTC [5446] LOG:  database system is ready to accept read only connections

2021-06-22 06:45:55.527 UTC [5446] LOG:  startup process (PID 5449) exited with exit code 1

2021-06-22 06:45:55.527 UTC [5446] LOG:  terminating any other active server processes

2021-06-22 06:45:55.534 UTC [5446] LOG:  database system is shut down

이 글에 대한 댓글이 총 2건 있습니다.

restore_command 설정이 작동하려면, recovery.signal 파일을 만드셔야합니다.


https://bit.ly/3wsxU43

김상기(ioseph)님이 2021-06-23 01:47에 작성한 댓글입니다.

댓글 감사합니다.
touch /var/lib/pgsql/13/data/recovery.signal

커맨드로 PGDATA에 recovery signal파일을 생성하였지만

최근wal파일로의 복구는 정상작동하지만 특정wal파일로의 복구도 정상작동하시나요?

최근 wal이아닌 아카이브 폴더상에있는 wal파일의 시간 또는 lsn을 지정하여 복구할때

정상작동하지를않네요...

훈모모(elastica3)님이 2021-06-23 09:04에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10260drop 복구 [1]
Jaemyoung Seo
2021-06-29
2364
10259regexp_like 변환 질문입니다. [3]
HELPME
2021-06-28
2159
10258parallel 파라미터 설정 [1]
궁금
2021-06-23
2114
10257PITR관련 문의 [2]
훈모모
2021-06-22
2379
10256postgresql 9.2.8버전입니다 [3]
탁구공
2021-06-20
1966
10255rowtype사용 문의 드립니다. [1]
돌멩이
2021-06-15
1955
10254ERD IE 표기법 관련 질문입니다. [4]
조동건
2021-05-25
2437
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다