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 10323 게시물 읽기
No. 10323
uncommitted xmin 363232340 from before xid cutoff 369962276 needs to be frozen 해결책 질문입니다.
작성자
황성범(tjqjal123)
작성일
2022-02-19 16:22ⓒ
2022-02-19 16:32ⓜ
조회수
1,508

안녕하세요.

postgresql-9.6 버전을 사용하는 고객사에서 유지보수를 하는 엔지니어입니다.



VACUUM FULL ANALYZE VERBOSE 테이블; 명령을 수행 했을 때 아래와 같이 메세지가 출력됩니다.

------------------------------------------------------------------

정보 :  "public.테이블" 청소 중

오류 :  uncommitted xmin 363232340 from before xid cutoff 369962276 needs to be frozen

-------------------------------------------------------------------



[질문사항]

질문1. 위 로그가 어떤 의미인가요?

uncommitted xmin 363232340 from before xid cutoff 369962276 needs to be frozen.

XID=363232340이 XID=369962276를 참조하기 위해선 XID=369962276을 FROZEN XID로 대체해야합니다.  라는 뜻인가요? 


질문2. 해결방법은 VACUUM명령어인가요?

 - 해당 문제를 해결하려면 이전버전 튜플의 XID를 Frozen XID로 대체해야하는 걸로 알고 있습니다.

 - 트랜잭션 수가 43억개가 도달하고 나서 현재버전튜플이 이전버전 튜플을 참조하기 위해서는  이전버전의 XID를 Frozen XID로 대체하는 것인데 이것에 대한 해결책은 VACUUM명령어가 맞나요?

 - VACUUM 명령어를 써야한다면 어떤 명령어를 써야하나요? 

 - VACUUM;   VACUUM FREEZE;  차이가 뭔가요? 



질문3. 이전버전튜플의 생성시점(XID=363232340),   이전버전 튜플이 삭제되거나 변경된 시점(XID 369962276) 맞나요?

현재버전의 xid가 363232340이고,  현재버전xid의 이전버전 xid가 369962276 이라는 뜻인가요?

 - 제가 이해한건 아래와 같습니다. (맞는지 확인 좀 부탁드립니다.)

STEP ① xid=369962276  시점에  튜플이 생성됨

STEP ② DBMS의 트랜잭션 수가 43억개까지 도달함

STEP ③ DBMS에서 생성되는 트랜잭션 발번 수는 xid=3부터 시작됨

STEP ④ xid=369962276  시점에 생성되었던 튜플이 xid=363232340 시점에 UPDATE나 DELETE가 됨

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

9.6.7 ~ 9.6.9 버전에서 발생하는 버그입니다. 


1. 트랜잭션 warparound 처리를 제대로 못하는 문제입니다. 

2. vacuum 작업으로 해결나지 않습니다. 엔진 패치가 필요합니다. 

3. 문제가 생기는 시점은 한번의 wrap around가 일어난 뒤 (21억 이상의 트랜잭션이 생긴 뒤) 해당 테이블에 아주 오래된 트랜잭션 자료만 있다가 이 21억 이상 차이가 나는 자료가 새롭게 저장되고 그 다음 21억이  넘을 때 발생합니다. 


해결 방법:

엔진은 마지막 9.6 패치버전으로 바꾸고, 

DB 시작전에

$PGDATA/global/pg_internal.init 파일을 지우고, 

DB를 시작하면 됩니다. 

 

김상기(ioseph)님이 2022-02-21 09:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10326postgres 13버전에서 14버전 확장모듈만 업그레이드 할수 잇나요? [1]
구청회
2022-02-21
1586
10325to prevent wraparound xid 회수 관련 vacuum 종류 문의 [1]
우재권
2022-02-20
1537
10324VACUUM 시 right sibling's left-link doesn't match: block 778 links to 772 instead of expected 657 in index "pk_테이블_컬럼" 에러 문의 [1]
황성범
2022-02-19
1453
10323uncommitted xmin 363232340 from before xid cutoff 369962276 needs to be frozen 해결책 질문입니다. [1]
황성범
2022-02-19
1508
10322postgresql 연결 유지 keepalive 설정 참고
lucky
2022-02-16
1159
10321postgresql 8.3 관련 문의입니다. [2]
khy8331
2022-02-11
1072
10320auto vacuum이 동작하는 기준에 대해서 공부하고 있어요 [2]
황성범
2022-02-11
1150
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다