티스토리 뷰

반응형

Informix 서비스가 온라인 상태에서 어떻게 백업이 수행되는지 조사해봤습니다. 오랜기간 Informix를 경험했으면서도 아직도 내부 아키텍처에 정확히 알지 못하고 있었네요.

 

Informix 데이터베이스가 동시에 여러 트랜잭션에 의해 변경되는 중에도 백업을 수행할 수 있는 이유는 Physical Log가 있기 때문입니다. 백업을 시작한 이후부터 데이터가 저장된 청크의 페이지에 변경이 일어나면, 변경된 데이터의 기존 이미지(before-images)를 Physical Log에 기록합니다. 그리고 다시 temp table에 before-images를 복사하여 최종적으로는 백업 미디어(tape)에 기록한다고 하네요. 아래는 그 내용을 도식화한 그림입니다.

 

Informix Dynamic Server Internal Architecture and Advanced Administration - On-Line Archives and Log Backups

백업이 시작된 이후부터는 데이터 청크의 변경된 페이지는 무시합니다. before image를 가지고 있고 최종적으로는 Logical Log로 복구하기 때문이겠죠? 그리고 tape은 연속적으로 기록되어야하므로, before image는 백업 수행 도중에 기록되는 것 같습니다.

 

백업 수행중에 데이터를 변경할 때, before image가 temp table로 생성되는지 간단한 테스트를 해봤습니다.

ontape 백업이 실행중인 상태에서, 데이터를 증식하여 입력해보니 temporary dbspace에 temp table이 생기는 것을 확인할 수 있었습니다.

$ cat q1.sql
insert into customer_copy select * from customer connect by level < 6;
insert into customer_copy select * from customer connect by level < 7;
insert into customer_copy select * from customer connect by level < 8;

$ nohup dbaccess stores_demo q1.sql &
$ oncheck -pe tempdbs1


DBspace Usage Report: tempdbs1            Owner: informix  Created: 07/03/2013


 Chunk Pathname                             Pagesize(k)  Size(p)  Used(p)  Free(p)
     3 /informix/dbspace/tempdbs1                     4   250000   131125   118875

 Description                                                   Offset(p)  Size(p)
 ------------------------------------------------------------- -------- --------
 RESERVED PAGES                                                       0        2
 CHUNK FREELIST PAGE                                                  2        1
 (0x300001) tempdbs1:'informix'.TBLSpace                              3       50
 (0x300002) stores_demo:'informix'._temptable                        53   131072
 FREE                                                            131125   118875

해당 temp table(_temptable)은 트랜잭션이 종료되면 oncheck 명령으로 보았을 때 사라지는 걸로 봐선 곧바로 백업 파일에 기록되는 것 같습니다. temp dbspace 공간이 부족해서 백업이 실패하는 경우도 간혹 있으니 참고하세요~

반응형
댓글