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 7269 게시물 읽기
No. 7269
recycled transaction log file "xxxxxxxxx..."
작성자
이형규(threebird)
작성일
2007-11-16 13:57
조회수
6,118


안녕하세요. 실제로 도는 DB의 dump를 받아서 다른 곳에 넣는데요. 


LOG:  recycled transaction log file "0000000900000075"

LOG:  recycled transaction log file "0000000900000076"

LOG:  recycled transaction log file "0000000900000077"

LOG:  recycled transaction log file "0000000900000078"

LOG:  recycled transaction log file "0000000900000079"

LOG:  recycled transaction log file "000000090000006C"

LOG:  recycled transaction log file "000000090000007A"

LOG:  recycled transaction log file "000000090000007B"

LOG:  recycled transaction log file "000000090000007C"

LOG:  recycled transaction log file "000000090000007D"

LOG:  recycled transaction log file "000000090000007E"

LOG:  recycled transaction log file "000000090000007F"

LOG:  recycled transaction log file "0000000900000080"

LOG:  recycled transaction log file "000000090000006D"

LOG:  recycled transaction log file "000000090000006E"


이런식의 로그가 계속 뜨네요. 실제로 구성하고자 하는 DB는 제대로 구성이 되는데 

이런 로그가 뜨니까 은근히 걱정이 좀 되요. 어떤 내용이며 어떤 것을 setting 해주면 

되는지 아시는분 도움을 좀 부탁드립니다..


postgresql.conf와 관련이 있는 건가요?


그럼 많은 답변 부탁드릴게요

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

PostgreSQL에서는 백그라운드 파일 writer 작업이 있습니다. 

postgres: wal writer process

이름의 프로세스가 작업을 담당하는데, 그놈이 뭔 놈인고 하면, 
어떤 트랜잭션 작업이 일어나 - 쉽게 어떤 자료 조작이 일어나면 - 실재로 그 변경내용은 원본 자료파일에 기록하지 않고, 트랜잭션 로그파일에 그것을 기록합니다. 
왜 이렇게 하는고 하면, 첫번째는 빠른 처리 때문이기도 하고, 트랜잭션의 독립성을 제공하기 위해서이기도 합니다. 셋째로, 가장 중요한 DB 시스템 장애시 자료를 최대한 보호하기 위해서이기도 합니다. 

이렇게 만들어진 트랜잭션 로그 파일은 pg_xlog 디렉토리에 쌓입니다. 
그 파일의 최대개수는 postgresql.conf 파일의 checkpoint_segments 값으로 지정합니다. 
이 파일의 개수보다 더 많은 트랜잭션 로그들이 쌓이게 되면 wal 프로세스는 가장 오래된 놈부터 그 파일을 읽어서 미쳐 하드디스크로 저장하지 못했던 자료들을 저장합니다. 그리고 그 로그안에 있는 모든 정보들이 다 처리되면 그 파일을 지운답니다. 

만일 DB가 비정상적으로 종료되었다면, 즉, 이 로그 파일에 정보들이 미쳐 하드디스크로 저장되지 못하고 중지겠되겠죠. 이러면, DB가 재 실행될 때, 이 로그를 읽어서 복구 작업을 합니다. 

자, 여기서 문제가 발생합니다. 

recycled transaction log file "000000090000006E"
이런 경고를 남기는 이유는 미쳐 이 로그 파일의 정보가 모두 하드디스크로 반경되기도 전에 DB에 문제가 생긴다면, 그 로그에 남겨진 이전 정보들 가운데 미쳐 반영하지 못한 자료가 남아있다면, 그것은 손실될 수 있음을 이야기합니다. 

얼핏 보면 참 무서운 이야기인데요, 실재로는 이런 사태가 일어날 확률을 극히 적습니다. 왜냐하면 checkpoint_timeout 설정에서 이런 문제를 미연에 방지하기 위해서 여기서 지정한 시간이 지나면 강제적으로 미처리된 로그에 대해서는 강제로 처리하라고 하거든요. 기본값은 5분입니다. 

즉 정말 무지막지한 데이터 변경작업이 막 일어나고 있는 상태에서 그것도 5분이상 계속 일어나고 있고, 트랜잭션 로그파일들을 모두다 쓰고 있는 사태까지 간 상태에서 게다가 서버가 갑자기 멈춰버린 사태가 발생한다면, 문제가 생길 수 있다는 소리입니다. 

결론,
그 메시지가 찝찝하시면 트랜잭션 로그파일의 갯수를 늘려주세요. ^^

말이 참 너저분한데, DB 관련 기본 지식이 부족한 사람들을 위해서 좀 쉽게 쓴다고 썼는데, 어찌 더 정신 사나워졌군요.

님이 2007-11-19 17:16에 작성한 댓글입니다. Edit

감사합니다. 우와 이해가 팍팍 되는데요 ^^ 

postgreSQL은 한 1년여 써보고 있지만 서버 개발자의 입장에서 단순 DB로만 인지하고 있었기에

내부적으로는 잘 모르고 있었는데 이 기회에 책을 한번 파 봐야 겠네요. 아무튼 무척 고맙습니다.

이형규(threebird)님이 2007-11-20 17:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7274pg_restore -O 로 복원시에 소유주 문제. [3]
안명규
2007-11-30
6377
7273pgpool 3.4.1 버전을 설치했습니다. [1]
궁금합니다
2007-11-28
6045
7272postmaster 접속과 postgres계정으로 전환시
영광
2007-11-26
5744
7269recycled transaction log file "xxxxxxxxx..." [2]
이형규
2007-11-16
6118
7268접속이 안돼요...? [2]
맨땅
2007-11-15
5995
7267C코드에서 postgres에 접근하여 데이터를 인서트하는 문제(UTF8) [4]
정재한
2007-11-13
6437
7266UNICODE / UTF8 ?? [2]
장현성
2007-11-12
6311
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다