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 10436 게시물 읽기
No. 10436
pg_archivecleanup command not found
작성자
짱구
작성일
2023-06-30 15:59
조회수
3,055

안녕하세요. 

두대의 DB 서버가 있고 스트리밍 복제 설정이 되어있습니다. 

archive_mode = on

archive_cleanup_command = ''

이렇게 두 설정이 되어있습니다. 

저는 archive_cleanup_command 를 설정한 적이 없지만 Standby 측 로그를 보면 아래의 로그가 반복적으로 나옵니다.


WARNING:  archive_cleanup_command "pg_archivecleanup /var/lib/pgsql/archivedir %r": command not found

sh: pg_archivecleanup: command not found

WARNING:  archive_cleanup_command "pg_archivecleanup /var/lib/pgsql/archivedir %r": command not found

sh: pg_archivecleanup: command not found


1. archive_cleanup_command 명령을 설정 한 적이 없지만 저 명령이 정확한 경로를 알고 명령수행을 시도하는게 의문이고

2. postgres 계정으로 pg_archivecleanup를 수행 해 보면 명령이 잘 됩니다. 즉 설치는 되어있다는 것 인데, 왜 command not found 가 나올까요?


답변 감사합니다.

 

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

https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY


archive_cleanup_command 설정은 standby 에서 사용하는 것입니다.


설정 확인은 대기 서버에서 확인하셔야 합니다.


대기 서버의 postgresql.conf 파일 안에 그 설정 정보가 없다면,

pg_settings 뷰의 source 칼럼 값을 봐서 그 설정이 어디에서 했는지 보고 적당히 고치면 될 것 같습니다.


pg_archivecleanup 명령이 없다고 나오는 것은

그 프로그램의 경로에 해당하는 디렉터리가 OS의 PATH 환경 설정 값 안에 없기 때문입니다.


절대경로를 지정하거나, PATH 설정을 바르게 하거나 하면 될 것 같네요.

일반적으로 미리 빌드된 패키지를 설치하는 형태로 데이터베이스 엔진을 설치했다면,

그 설치된 위치부터 알아야할 것 같네요.

일반적으로 /usr/pgsql/ 이거나, /usr/lib/postgresql 안에 있습니다.

각 OS 배포판 마다 다 달라서 직접 확인해야할 것 같습니다.

김상기(ioseph)님이 2023-06-30 17:54에 작성한 댓글입니다.

댓글 감사합니다.


대기서버에서 path 설정을 확인 해 본 결과 정상적으로 경로가 들어가 있는것을 확인하였습니다. 


혹시 또 다른 확인 가능한 사항이 있을까요?

 

짱구님이 2023-07-03 10:57에 작성한 댓글입니다. Edit

대기 서버에서

show archive_cleanup_command

쿼리 결과를 확인해 보세요.

그게

pg_archivecleanup /var/lib/pgsql/archivedir %r

이렇게 생겼나봅니다.

그렇다면,

alter system archive_cleanup_command = '/usr/lib/postgresql/15.1/bin/pg_archivecleanup /var/lib/pgsql/archivedir %r'

이런식으로 정확한 경로를 지정해 주셔야 한다는 이야기였습니다.

김상기(ioseph)님이 2023-07-04 15:56에 작성한 댓글입니다.

댓글을 좀 늦게 봤습니다. 


제가 테스트를 좀 하고 싶은데 이 현상이 발생 되고 있는 서버에서는 테스트가 불가능 한 상황입니다.


recovery를 돌려봐도 cleanup 명령이 실행되지 않는데 다른 트리거가 될 만한 조건이 더 있을까요?


감사합니다

짱구님이 2023-08-21 16:44에 작성한 댓글입니다.
이 댓글은 2023-08-21 18:25에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10439Dead Tuple 조회? [2]
갑자기
2023-08-20
1817
10438hash except 의미
우왕
2023-08-02
1736
10437PostGreSQL 설치가 잘 안되요. [1]
신승익
2023-07-25
1813
10436pg_archivecleanup command not found [4]
짱구
2023-06-30
3055
10435함수만 생성 가능하도록 권한제어 [1]
김제이
2023-06-14
4249
10434플래시백이나 휴지통 같은기능 [2]
김제이
2023-06-01
5366
10433postgres 실행계획 제어 [2]
김제이
2023-05-23
5922
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다