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 8621 게시물 읽기
No. 8621
Vacuum 관련 문의 드립니다.
작성자
박병훈(bhhiphop)
작성일
2010-02-17 10:26
조회수
8,292

 현재 Postgresql을 사용하여 DB를 운영하고 있습니다.

 

Vacuum 주기 관련 문의 드립니다.

analyze와 full 옵션이 있는데 각각 어느정도 주기로 실행하는것이 좋을까요?

현재 8.2를 사용하고 있으며.. 오토배큠은 DB사용이 빈번하기 때문에 성능상 꺼놓은 상태 입니다.

DB사이즈는 1T가 넘고 계속 빠른속도로 증가하고 있는 추세입니다.

제 생각엔 analyze는 1주일에 1번 full은 한달에 한번정도가 적당할것 같은데요..

어느정도가 적당할까요?

 

또한.. 이러한 vacuum보단 db를 dump한다음에 resotre하는것이 훨씬더 물리적으로 영향을 만히 미칠것 같은데요..

dump사이즈가 430GB며 dump시간이 4시간정도 진행되는 반면 restore시간은 16시간정도 진행된것 같습니다....

이렇게 차이나는 이유가 뭐일까요.. 2배정도면 적당할것 같은데요...

답변 부탁드립니다^^

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

적어도 8.3 버전 이상에서는 vacuum full 작업은 완벽하게 이제 이 자료는 읽기전용이다 이런 상태가 아니라면 굳이 하실 필요없습니다.

vacuum 작업은 트랙잭션 ID의 순환으로 인한 자료손실을 막기 위해서, 자료 저장공간의 재활용을 위해서 사용합니다.

즉 이런 작업이 필요없는 경우라면, vacuum 작업도 할 이유가 없겠죠.

 

analyze 작업은 잘 아시겠지만 쿼리 최적화기가 쿼리 실행계획을 만들때 참고자료를 만들기 위해서 사용합니다.  즉 자료가 얼마나 잦게 조작되는가에 따라서 그 analyze 작업 빈도가 결정되겠죠.

참 웃긴 이야기 같지만, 그 '얼마나 잦은가?' 라는 것에 대한 기준이 보편적으로 autovacuum 의 셋팅값입니다.

다시 말하면, autovacuum 기능을 켜두면 된다는 소리가 되어버립니다.

 

dump가 빠르고 restore가 늦는 이유는 dump때는 ddl 명령들과 자료만 덤프하는데,

restore의 경우는 그 ddl 명령을 직접 실행합니다.

쉽게 설명하면, dump 때는 인덱스를 덤프하면서, create index 명령줄만 생성하지만,

restore 때는 그 명령을 실행하거든요.

 

원론적인 이야기였고,

일단 먼저할 작업은 autovacuum 기능을 켜고, autovacuum 관련 모든 로그를 남기고,

한 2-3일정도 이 로그들의 패턴을 분석하세요.

그러면, '이 테이블, 저 테이블은 서버가 별로 안 바쁜 시간에 일괄 배치 작업을 하면 되겠다' 이런 결정이 설겝니다. 그러면, 그 테이블만 autovacuum 작업에서 제외시키고 배치작업으로 바꾸시면 됩니다.

그게 vacuum analyze 가 될 수도 있고, 어쩌면 analyze만 될 수 도 있고, vacuum 만 될 수도 있겠죠.

 

 

김상기(ioseph)님이 2010-02-17 14:57에 작성한 댓글입니다.

긴 답변 감사합니다...

지금 postgresql의 vacuum관련된 원무을 읽고있는데.. 

더블 체킹하면서 이해하니 이해가 빠르게 오고 있습니다..^^

 

죄송하지만 트렌젝션 ID의 순환이 이루어진다고 하는데요..

트렌젝션 ID가 무엇이며 왜 실행되는지 알려 주셨으면 합니다..^^

박병훈님이 2010-02-17 17:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
8624쿼리속도 비교 [2]
황수현
2010-02-19
9203
8623Vacuum에서 full 사용 관련하여 문의 드립니다. [4]
박병훈
2010-02-18
10074
8622칼럼 형 변환. [4]
슝슝이
2010-02-17
8240
8621Vacuum 관련 문의 드립니다. [2]
박병훈
2010-02-17
8292
8620Explorer6 invalid byte sequence for encoding 문제입니다. [2]
박주영
2010-02-16
10439
8619\copy 때문에 급한 질문이요 ㅠㅠ [3]
조아라
2010-02-09
7496
8618boolean 을 select해올때.. [3]
uskusi
2010-02-09
7773
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다