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 Tutorials 5833 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 5833
PostgreSQL 8 : PITR
작성자
조성준(openphp)
작성일
2005-01-25 21:31ⓒ
2005-01-30 20:11ⓜ
조회수
10,038

홈페이지 : http://www.openphp.com , http://www.openpython.com  

안녕 하세요? 조성준 입니다. 

PostgreSQL 8에 신기술인 PITR에 대해 설명 합니다.역시나 독학으로 인해 틀린내용이 있을수 있으니 틀린부분이 있으면

댓글 부탁 드립니다. 

PITR : Point In Time Recovery 

PostgreSQL 8의 성능개선에 최고로 일고한 신기능으로 PostgreSQL 7.1의 WAL기능에 대해서 먼저 집고 넘어 가는것이

이해가 빠를 것입니다. 


- WAL <-> PITR -
 

Write-Ahead Logging.

간단히 애기하면 실질적인 데이타의 변조(update,delete,...)가 일어나는 정보에 대해 로깅즉 로그를 남기는 기능입니다.

트랜잭션 로깅기능으로 만약에 데이타 변조가 일어나는 순간 하드디스크에 모두 직접적으로 반영을 하게 된다면? 

하드디스크는 열이 많이 날것이다. 아무리 Wide Ultra SCSI에 15,000RPM을 쓴다 하더라도, 한번에 수천 수만 코드를 고치고

그 순간에 누군다 select 쿼리를 날리고 날리 부르스를 추는 행동이 엄청나게 왔다 갔다 한다면 HDD의 물리적인 처리속도의

한계가 있기때문에 아무리 좋은 서버라도 반응 속도는 상당히 느리게 됩니다. 

그래서 Database Server들은 일정시간동안은 메모리의 버퍼에 잠시 담아두었다가 일정 시간이후에 실제적인

디스크에 Sync(fsyn())하게 됩니다.  

하지만 엄청나게 인/아웃이 많은 Transaction이 일어나고 데이타가 메모리에 머무르는 중인데.

이시대 최고의 크래커. 청소해주시는 분께서 오늘은 바닥에 왁스칠하는날.!! 근데 서버들이 켜있네. 

"이총각들이 전원은 다끄고 컴퓨터는 다 올려 놓으라고 몇번을 말해"!!! 잠시후 퓨후흐흐....... (전원 꺼지는 소리,표현이참) 

그동안 수천만건의 갱신 데이타들은 메모리속에서 RAM( Radom Access Memory)휘발성 메모리에서 장렬히

전기와 함께 사라진다.! 다음날 와서보면 .... 개발자,담당자,관리자는.... -.~; 

이때 WAL은 어느시점까지는 정보에 대해 로깅 즉. 실 데이타는 어차피 디스크에 저장되어 있고,

실제 디스크에 쓰기전에 메모리 상주하는 데이타에 대한 로그정보 뭐 간단히 날라온 쿼리들을 따로 저장해 놓았다고 생각 하면 됩니다.

뭔 WAL동작중이고 이게 Log Write중에 전원이 나가면 어쩔수는 없게 된다. 

하지만.!But.그러나.! PITR은 WAL부터 TranSaction Log에 대해 복구시점을 Point.! 꼭 찍어 놓는 감독관 같은 역활을 한다.

만약에 WAL의 로그가 전원Down으로 인해 데이타 손실이되더라고 복구시점은 택해 최대한 피해를 줄여주면서 원상복원이 어느정도 가능하다는것이다. 

디비의 성능을 최대한 하기위해서는 CPU(Cache),RAM등이 메우 중요하지만 그것은 연산처리등의 요건이며,

실제적인 물리적 저장공간인 Storage가 상당한 Re-Write에 대한 처리 속도가 디비성능을 자지우지한다고 생각해도 무관하다. 

하지만 현존의 Storage는 Memory처럼 빠르지는 않기에 현재로써는 메모리 상주형 디비나 디비 메모리 캐쉬등으로

성능 향상을 꾀하는 경우가 많다. (메모리 상주형 디비가 상당히 많은 포탈과 각종 서비스에 이용중이다.) 

PITR이 WAL과 합쳐지면 상당한 성능향상과 안정성을 확보했기에. 열악한(UPS나 실시간 백업 서버가) 환경에서

어느정도 막아주는것에 대해 기다려온 기능이 아닐까쉽다. 

 

잡답! :

IDC에 넣으면 전원 다운이 없을꺼라는 예상은 하지 않기를 바란다. 국내 모 N**(H**) IDC에서 전원이 몇십분간 다운되는

초! 엽기적 사건도 있었기에.. 사실 IDC의 상면가가 싸면 UPS를 쬐깐한거라도 하나두는것이 맘이 편할수있다.

또한 Power Supply역시 안전을 위한다면 리던던트로 1개이상을 장착하는게 좋다.

IDC의 고품질 전원공급이 항상 좋은것도 아니고, Server용 Power Supply가 불량이 적은게 아니다.

생각보다 몇개월 않되서 나가는 경우도 많고, 과전류로 자동 다운되거나 하는 경우도 많은 편이다. 유의하고 조심.!!

백업만이 살길이지만. 실시간 백업이 아닌이상.!!!! ~~

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

안그래도 오늘 이 부분을 테스트 해보고 있었습니다. 막상 중요한 이야기가 빠져있네요. :(

 

오늘 테스트한 것으로는,

몇가지는 의도했던 대로 움직이기도 했었고, 몇가지는 예상치 못한 방향으로 흘러가기도 했었습니다. 주위에 이 기능에 대해서 잘 알고 있는 고수가 없어서, 저 또한 버벅거리면서 이리 저리 테스트를 해보고 있는데, 나름대로 정리가 되면, 실무 기반으로 글을 남겨놓겠습니다.

 

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

간단소개정도로라 자세한건 아직 다 마무리가 않되서

상기님께서 실무적인걸 해주신다니 ^^ 좋은자료 기대 하겠습니다

 

B-tree이외의 Index자료에 대한 WAL 백업이 않된다는내용도 있어

음. 지금 문서 작업하다가 일단 중단했는데

 

암튼 저도 더 공부해야 겠구요. 암튼 상기님의 실무자료 기대합니다

제가 현재 다들 서비스 중이나 런칭 준비중인장비들이라

 

테스트할환경이 영 않되서^^

 

조성준(openphp)님이 2005-01-26 16:38에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5853PostgreSQL 8 : pg_hda.conf - 보정중 [2]
조성준
2005-01-30
14883
5845PostgreSQL 8 : Install -한글부분수정 [3]
조성준
2005-01-28
30534
5834PostgreSQL 8 : PostgreSQL.conf 설정하기 [2]
조성준
2005-01-25
19565
5833PostgreSQL 8 : PITR [2]
조성준
2005-01-25
10038
5832PostgreSQL 8 : TableSapce
조성준
2005-01-25
15696
5831PostgreSQL 8 : SavePoint - 간단정리
조성준
2005-01-25
9489
5830PostgreSQL DB Connect Poll : pgpool - 설정과가동
조성준
2005-01-25
11870
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다