FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2768] Re:DB가 깨졌다 하는것은?..
박지훈.임프 [cbuilder] 2848 읽음    2008-03-28 10:53
디비 파일에 대한 쓰기 작업 중에 전원이 나가면 디비 파일이 깨지는 경우가 간혹 있습니다만..
항상 그렇거나 아주 잦지는 않습니다.

제가 하는 작업들 중에서 특수한 목적으로 파이어버드의 소스를 수정해서 사용하는데, 그 수정한 내용 중에 두개의 파이어버드 엔진이 하나의 디비 파일을 동시에 쓰고 읽을 수 있도록 수정한 부분이 있습니다. 원칙적으로, 디비에서는 먼저 접속한 엔진이 파일을 익스클루시브 락을 걸어버리니까 두번째 엔진은 절대로 접근이 안되죠. 이걸 풀어버린 겁니다.

이런 특이한 환경 때문에 경우에 따라 디비 파일이 깨지는 경우가 좀 있습니다. 몇주동안 극도로 혹독한 상황에서 테스트를 계속했는데도 웬만큼은 깨지지 않고 견디더군요. 그래도 역시 디비 파일이 깨지는 경우를 꽤 많이 봤는데요.

그 경험으로 말씀드리자면, 디비 파일이 깨지는 경우는 거의 항상 쓰기 작업을 하고 있던 해당 테이블만 깨졌습니다. 아예 접근이 안되는 정도로 깨지는 경우는 드물 것이고, 제 생각입니다만, 만약 그런 정도로 파일이 깨진다면, 그것은 OS의 탓일 가능성이 높을 겁니다.

디비가 깨질 경우, 그 증상의 수준은 다양하게 나타납니다. 꽤 심각할 수도 있고, 아주 가볍게 깨지는 경우도 있습니다. 그건 파일이 깨지는 순간에 서버가 쓰기 작업을 어떤 부분에 하고 있었느냐에 따라 다르죠.

현재 파이어버드의 2.1 RC2까지 나와 있는데, 파이어버드 2.1에서는 파일이 깨질 수 있는 코드를 많이 수정했다고 하더군요. 물론 전원이 나가는 극단적인 경우에 완전히 커버하는 방법이란 불가능할 수밖에 없지만, 적어도 최근 버전에서 신뢰도가 더 높아졌다고 말할 수 있겠죠.

파이어버드 디비가 깨진 경우 아래 글을 보시면 많은 도움이 됩니다. 실제로 몇년전에 이 포럼의 서버가 갑자기 전원이 나가면서 크게 깨졌었는데, 아래 글을 참고해서 복구에 성공했었습니다.

데이터베이스가 깨지는 원인과 예방
http://firebird.borlandforum.com/impboard/impboard.dll?action=read&db=fb_tutorial&no=12

그럼...


Apollon 님이 쓰신 글 :
: 파이어버드 2.0입니다.
: 여기세 Test.FDB를 생성하고 테이블을 한 10개 만듭니다.
:
: Table1 에 데이터를 입력하다가 파워가 나가면 DB가 깨진다고 하는데요..
: 만약 Table1에 데이터를 입력하던 중 파워가 나갔다면..(그래서 디비가 깨졌다면..)
:
: 질문1. Test.FDB 자체에 접속 할 수 없나요?
:
: 질문2. select Field1 from Table1  open; Table1에만 접근 할 수 없나요?
:
: 질문3.Table1 외 다른 테이블들은 Open 가능 한가요?
:
: 감사합니다.

+ -

관련 글 리스트
2766 DB가 깨졌다 하는것은?.. Apollon 2693 2008/03/28
2768     Re:DB가 깨졌다 하는것은?.. 박지훈.임프 2848 2008/03/28
2767     Re:DB가 깨졌다 하는것은?.. civilian 2258 2008/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.