2010년 10월 26일 화요일

파이어버드 데이터베이스 복구

파이어버드에서 통상적으로 데이터베이스가 깨지는 이유는 2가지이다. 첫번째는 서버가 데이터베이스 파일을 접근하는 중에 복사를 하는 경우에 그렇도 두번째는 forced write가 활성화되지 않았는데 예기치 않은 서버 셧다운이 생긴 경우이다.

 이런 두가지의 경우 테이블이나 데이터셋을 접근하는 경우, “Internal gds software-consistency check”, “Database file appears corrupt”, “Wrong record length”라는 에러 메시지를 토해낸다. 이런 경우 서버를 중지시키고 데이터베이스 파일을 복사하고 다시 서버를 시작하는 것이 좋은 방법이다. 복사한 데이터베이스 파일은 복구서비스에 보내거나 복구를 시도한다.

 데이터베이스 복구 4가지 순서

  1. 데이터베이스를 확인한다 : gfix로 데이터베이스 구조를 확인한다. 이는 “-v -f” 파라미터를 사용하면 된다.
    gfix -v -f -user sysdba -pass masterkey server:/경로/database.fdb
    gfix는 데이터베이스 구조를 확인하고 문제가 있으면 에러메시지를 보여준다. 에러 메시지가 없다면 데이터베이스 파일은 문제가 없음을 의미한다.
  2. 백업을 준비한다 : gfix를 다시 사용하여 백업을 위한 준비를 한다. 이는 “-mend” 파라미터를 사용하면 된다.
    gfix -mend -user sysdba -pass masterkey server:/경로/database.fdb
  3. 백업을 생성한다 : 이는 굉장히 중요한 단계로 만약 이 단계에서 실패하면 파이어버드의 툴로는 데이터베이스를 복구할 수 없다. gbak이란 툴을 이용하여 데이터베이스의 파일의 백업을 생성한다. 데이터베이스에 복구할 수 없는 오류가 있다면 gbak으로 하는 작업은 실패한다.
    gbak -b -v -user sysdba -pass masterkey server:/경로/database.fdb /경로/backup.fbk
    백업을 생성하는 곳은 로컬 드라이버를 이용하는 것이 낫다. 오류가 없다면 제대로 복구되었음을 의미한다.
  4. 백업을 복구한다 : 백업을 데이터베이스로 파일로 복구한다. 이는 gbak을 다시 이용하면 된다.
    gbak -c -r -v -user sysdba -pass masterkey /경로/backup.fbk server:/경로/database.fdb

 [댓글]  1) 데이터베이스를 백업할 때, 항상 ”-g” 파라미터를 쓰는 것이 좋습니다. 만약 이 파라미터를 사용하지 않으면 서버는 가바지콜렉션을 초기화하고, 망가진 chain이 있다면 데이터베이스 백업은 실패하게 됩니다.
2) “-c -r” 파라미터를 사용하지 말아야 합니다. 이는 모순 어법이기 때문이며, 망가진 데이터베이스와 복구된 데이터베이스가 같은 이름이면 원본 데이터베이스의 내용들을 지워버리게 됩니다. 또한 “-r” 옵션은 2.x 버전의 파이어버드에서는 작동하지 않는데 이는 “-replace”로 되었기 때문입니다. 그래서 “-c” 파라미터를 사용하고 tmp.fdb같은 다른 이름으로 복구를 해야 합니다. [해석이 어물어물]

 

 

출처 : http://daniel-albuschat.blogspot.com/2009/12/firebird-database-corruption-and-what.html

Related posts:

  1. SqlitePass 데이터베이스 테이블 생성하고 붙이기.
  2. SqlitePass 데이터베이스 형식…
  3. SqlitePass Kexi 형식에서의 문제.
  4. SQLitePass3 DLL

2010년 10월 15일 금요일

FlexBuilder 사용법 정리

1. gerated 된 ActionScript 보기

    Project -> Properties -> Flex Compiler 의 Additiona compiler arguments 부분에서 -locale en_US 부분을 -locale en_US -keep-generated-actionscript 으로 변경함

 

2. History File 갯수 설정하기 : 저장할때마다 History 파일을 남김

    Windows -> Preferences -> General -> Workspace -> Local History 부분을 설정

 

3. 과거의 소스와 현재의 소스를 비교 방법 : 변경이력 조회시

     Flex Navigator 에서 해당 파일을 선택 후 오른쪽 마우스 버튼 클릭

     Compare With -> Local Histor 선택

     오른쪽 하단에 Problems 탭 옆에 History 탭 생성 되며 해당 History 를 더블 클릭 하면 비교됨

 

4. 과거의 소스로 변경하는 방법

    Flex Navigator 에서 해당 파일을 선택 후 오른쪽 마우스 버튼 클릭

    Replace With -> Local Histor 선택

    해당 History 와 비교 후 Replace 버튼으로 예전으로 회귀

2010년 10월 14일 목요일

소프트웨어개발방법론

표준정의서

데이터 분석 및 모델링 방법

ooCBD 개발 방법론

 ooCBD 개발 방법론

 

ooCBD 방법론이란 세분화된 객체를 사용에 따라 그룹화 하여 구성된 컴포넌트 단위로 소프트웨어를 개발하는 것으로, 개발초기에 시스템구조를 정의하는 안정적인 아키텍처를 확보하고 이를 지원하는 소프트웨어 컴포넌트를 개발한다. ooCBD개발 방법론의 주요 특징은 다음과 같다.

(1) 견고한 소프트웨어 아키텍처구축(애플리케이션/기술 아키텍처)

(2) 아키텍트에 의한 소프트웨어 아키텍처 검증

(3) 객체지향 개념(추상화, 캡슐화, 일반화)

(4) 유스케이스 주도형 개발 프로세스

o 사용자 요구 관리

o 비즈니스 컴포넌트 도출

o 비즈니스 개체 데이터 모델 정의

o 사용자 인터페이스 요소 도출

o 테스트 구현

(5) 서비스 지향 개념

o 서비스(Service)

o SOA(Service-Oriented Architecture)

o XML 서비스(Web Service)

 

또한 ooCBD개발 방법론에 따른 산출물 내역은 다음 표와 같다.

 

 

 

[ 1] ooCBD 방법론 산출물 내역

단계

활동

작업

산출물

요구분석

요구사항 이해

사용자 요구수집

요구사항 기술서 v1.0

요구사항 기술서 v1.1

공통 용어 파악

공통 용어집 v1.0

공통 용어집 v1.1

요구사항 정의

유스케이스 기술

유스케이스 기술서 v1.0

유스케이스 우선 순위 기술

유스케이스 기술서 v1.1

요구사항 정제

유스케이스 상세

유스케이스 기술서 v2.0

유스케이스 모델 구조화

유스케이스 기술서 v2.1

아키텍처 정의

초기 아키텍처 개요 정의

 

소프트웨어 아키텍처 정의서 v1.0

 

유스케이스 기술서 v3.0

행위분석

유스케이스 분석

유스케이스 기술서 v3.1

비즈니스 객체 모델 생성

소프트웨어 아키텍처 정의서 v1.1

사용자 인터페이스 모델 생성

사용자 인터페이스 모델 v1.0

소프트웨어 아키텍처 정의서 v1.2

어플리케이션 아키텍처 설계

비즈니스 컴포넌트 모델 정의

소프트웨어 아키텍처 정의서 v2.0

유스케이스 기술서 v3.1

비즈니스 컴포넌트 설계

비즈니스 컴포넌트 설계서 v1.0

기술 아키텍처 설계

기술 유스케이스 정의

소프트웨어 아키텍처 정의서 v3.0

기술 유스케이스 실현

소프트웨어 아키텍처 정의서 v3.1

프레임워크 설계

소프트웨어 아키텍처 정의서 v3.2

배포 모델 설계

소프트웨어 아키텍처 정의서 v3.3

데이터베이스 설계

데이터 논리 모델 설계

데이터베이스 설계서 v1.0

소프트웨어 아키텍처 정의서 v4.0

데이터 물리 모델 설계

데이터베이스 설계서 v1.1

비즈니스 컴포넌트 설계서 v1.1

소프트웨어 아키텍처 정의서 v4.1

테이블 또는 객체 스크립트 화일

설계 전략 정의

 

메커니즘 기술서 v1.0

1 반복

설계

설계 요소 식별

비즈니스 컴포넌트 설계서 v2.0

사용자 인터페이스 설계서 v1.0

컴포넌트 설계

구현 컴포넌트 설계서 v1.0

비즈니스 컴포넌트 설계서 v2.1

구현

구현 모델 구조화

소프트웨어 아키텍처 정의서 v5.0

2 반복

설계

설계 요소 식별

비즈니스 컴포넌트 설계서 v2.2

사용자 인터페이스 설계서 v1.1

컴포넌트 설계

구현 컴포넌트 설계서 v1.1

 테스트

테스트 실행

테스트 구현

테스트 기술서 v1.0(1차반복)

테스트 기술서 v1.1(2차반복)

테스트 실행 평가

테스트 결과 반영

산출물 예제

프로젝트 산출물

1. 분석
   1.1. 현업요구사항정의서
        : 해당 프로젝트를 수행하는 가장 기본이 되며 고객의 needs을 담고 있는 문서입니다.

          이를 통해 다양한 스펙산정이 가능합니다. 이부분에서 요구ID를 도출합니다.
   1.2. 기능챠트
        : 현업요구사항을 근간으로 큰 카테고리를 만들어 한눈에 해당 프로젝트가 무슨 일을 하는

          것인지 보여줄 있습니다.
          * 이부분은 개발방법론에 따라 유스케이스다이어그램으로 대치할 수도 있을 것으로

            판단되어지고, 기능챠트와 같이 가도 무관하다는 판단입니다.
   1.3. 프로세스 정의서
        : 기능챠트를 기준으로 각각의 프로세스를 보여줍니다. 때에 따라 확대된 프로세스의

         표현도 가능합니다.
         * 개발방법론에 따라 시퀀스다이어그램을 넣어도 무방하다는 판단입니다.
   1.4. 인터페이스정의서
        : 상기 현업요구사항정의서,기능챠트,프로세스정의서를 근간으로하여 레가시 및 대외계

          시스템, 웹서비스 등 어떤식으로 인터페이스를 해야 한다는 정의를 담고 있습니다.
   1.5. 기타


2. 설계
   2.1. UI(화면)설계서
        : 웹App 혹은 CS App 든 간에 고객이 사용하고자 하는 화면단을 보여주는 문서입니다.
   2.2. ERD
        : 해당 업무의 DB를 생성하고 테이블관의 상관 관계를 표현하는 문서로 더이상 설명이

          필요없으리라 믿습니다.
   2.3. 테이블목록
        : 테이블정의서도 있지만, 테이블목록은 관리자가 한눈에 시스템을 구성하고 있는 DB

          테이블을 보여준다는 측면에서 필수라는 판단입니다.
   2.4. 테이블정의서
        : 테이블필드 value와 설명, 바이트수 등을 표기합니다.

   2.5. 프로그램 목록
        : 실직적으로 설계단계에 프로그램목록이 나오지 않지만 일단 설계 단계에 넣는 것이

          타당한 것 같습니다.
          * 개발방법론에 따라 클래스다이어그램, 컨포넌트명세서, 클래스정의서 등도 포함 될 수

            있을 것 같습니다.
   2.6. 개발표준 정의서
        : 변수명, brace, 클래스네임,파일명,규칙등 코딩관련 규칙을 정의함으로써 일선 담당자가

          소스코드를 확인해도 눈에 익숙할 수 있게 하기위한 문서입니다.
   2.7. 단위테스트 시나리오
        : 분석,설계의 기본적인 요건이 충적되면 이쯤하여 단위테스트시나리오가 나와야 할 것

          같습니다. 아마도 고객의 싸인이 필요한 부분일 것입니다.
   2.8. 통합테스트 시나리오
        : 설계단에서 하기는 많은 어려움이 있지만, 단위테스트를 근간으로 고객의 요청을 좀더

          보완하여 통합테스트시나리오를 작성합니다. 고객의 싸인은 필수입니다.
   2.9. 기타
 
3. 개발
   3.1. 소스코드(개발원시코드)
        : 말그대로 오류수정까지 끝난 원시코드 자체를 말합니다.
   3.2. 단위테스트 결과서
        : 단위테스트시나리오를 기준으로 테스트한 결과를 보여줍니다. 아마도 많은 문제점을

          안고 있고, 이 과정을 통해 고객의 요구사항도 많은 변동이 있는 시점입니다.
          * 변경요청서도 필요할 시점입니다.
   3.3. 결함/오류보고서
        : 단위테스트를 통해 알게된 에러의 원인과 수정에 대한 내용을 나타냅니다.

          이를 통해 오류코드정의서를 뽑아내고 보완합니다.
   3.4. 오류코드 정의서
        : 해당시스템에서 발생할 수 있는 오류들을 코드화하여 보여줍니다.
   3.5. 통합테스트 결과서
        : 단위테스트를 통해 보완된 내용들을 포함하고, 통합테스트시나리오의 보완을 통해

          실시된 통합테스트 결과를 보여줍니다. 개발을 완료했냐 안했냐의 잣대가 되는 문서로서

          고객의 싸인이 가장 필요한 부분입니다. 이부분에서 반려가 일어나면 위의과정을 반복해야

          합니다.
   3.6. 시스템 이행계획서
        : 통합테스트가 끝나면 Standby하고 있는 시스템에 소프트웨어,하드웨어 기타 등을 몇월,

          며칠, 몇시에 누구누구가 무엇을 가지고 옵져버는 누구이며 어떻게 이행을 할 것인지

          등을 표현합니다.
   3.7. 기타
 
4. 구현
   4.1. 시스템 이행결과서
        : 시스템 이행계획서를 통해 이행된 결과를 확인받는 문서입니다.
   4.2. 사용자매뉴얼
        : 사용자화면이 있을 경우 나오는 매뉴얼입니다.일반적인 조작법을 기록하며, 화면 등을

          예시합니다.
   4.3. 운영자매뉴얼
        : 시스템전반에 관한 모든 내용을 담고 있습니다. 분석,설계,개발 절차에서 나오는 문서를

          담고 있습니다.
   4.4. 교육(인수)명세서
        : 사용자매뉴얼 및 운영자매뉴얼을 중심으로 해당 담당자 및 사용자에게 시스템전반 및

          세부사항을 교육/인수한후 싸인받는 문서입니다.
   4.5. 개발산출물별 검사리스트
        : 예시된 산출물들이 이상없이 인수되었는지를 개별로 체크한후 고객의 싸인을 받는

          문서입니다.
   4.6. 프로젝트 완료보고서
        : 최종적으로 개발한 내용, 인도물, 하드웨어, 고객대표, 개발자대표싸인을 받음으로써

          명실상부한 프로젝트 완료보고서입니다.
   4.7. 기타