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
운영게시판
최근게시물
DB2 Q&A 1258 게시물 읽기
No. 1258
db cfg 의 softmax에 대해서 질문 드립니다.
작성자
db2초보
작성일
2007-02-13 15:09ⓒ
2007-02-13 15:09ⓜ
조회수
7,935

보통 softmax 값은 기본 100으로 지정되는데

이는 크래쉬복구 시 로그파일을 1개 쓴다는 의미가 됩니까?

만약 insert 작업 시 3개의 acive log를 쓰고 있다가 crash 가 일어나서

크래쉬 복구를 하게 되면 1개의 액티브 로그로 복구를 한다는 이야기 인지요?

그렇게 되면 데이터 불일치가 발생 할 것 같은데....

크래쉬 recover 시 softmax의 용도가 무엇인지 궁금 합니다.

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

softmax - 복구 범위 및 소프트 체크포인트 간격 구성 매개변수

구성 유형
데이터베이스
매개변수 유형
구성 가능
디폴트 [범위]
100 [ 1 - 100 * logprimary ]
측정 단위
1차 로그 파일 한 개 크기의 백분율

이 매개변수는 다음과 같이 사용됩니다.

  • 시스템에 이상(전원 공급 중단 등)이 발생한 다음 복구되어야 할 로그의 수에 영향을 줍니다. 예를 들어, 디폴트값이 사용되면 데이터베이스 관리 프로그램은 1로 복구되어야 할 로그의 수를 유지하려고 합니다. 이 매개변수의 값으로 300을 지정할 경우, 데이터베이스 관리 프로그램은 3으로 복구되어야 할 로그의 수를 유지하려고 합니다.

    응급 복구 시 필요한 로그의 수에 영향을 주기 위해 데이터베이스 관리 프로그램은 이 매개변수를 사용하여 페이지 클리너를 트리거하여 지정된 복구 창보다 오래된 페이지가 이미 디스크에 기록되었는지 확인합니다.

  • 소프트 점검점 빈도를 판별합니다.

전원 공급 중단 등으로 인해 데이터베이스 오류가 생기면 다음과 같은 데이터베이스에 대한 변경이 일어날 수 있습니다.

  • 커미트되어 있지 않으나, 버퍼 풀의 데이터를 갱신함
  • 커미트되어 있으나, 버퍼 풀에서 디스크로 기록되지 않음
  • 커미트되고, 버퍼 풀에서 디스크로 기록됨

데이터베이스가 재시작되면 로그 파일이 데이터베이스의 응급 복구를 수행하는 데 사용되어 데이터베이스가 일관성 있는 상태에 있도록 합니다. (커미트된 모든 트랜잭션은 데이터베이스에 적용되고, 모든 언커미트 트랜잭션은 데이터베이스에 적용되지 않습니다.)

로그 파일에서 어느 레코드가 데이터베이스에 적용되어야 하는지를 판별하기 위해 데이터베이스 관리 프로그램은 로그 제어 파일을 사용합니다. 이 로그 제어 파일은 주기적으로 디스크에 기록되며, 이 이벤트의 빈도에 따라 데이터베이스 관리 프로그램은 커미트된 트랜잭션의 로그 레코드를 적용하거나 이미 버퍼 풀에서 디스크로 기록된 변경사항을 설명하는 로그 레코드를 적용합니다. 이 로그 레코드는 데이터베이스에는 영향을 미치지 않지만, 이러한 로그 레코드를 적용할 경우 데이터베이스 재시작 프로세스에 얼마간의 오버헤드가 발생하기도 합니다.

로그 파일이 가득 찰 때와 소프트 점검점을 실시 중에는 로그 제어 파일이 항상 디스크에 기록됩니다. 이 구성 매개변수를 사용하여 추가 소프트 점검점을 트리거할 수 있습니다.

소프트 점검 시기는 logfilsiz 의 백분율로 제공되어 『현재 상태』와 『기록된 상태』의 차이에 따라 정해집니다. 『기록된 상태』는 디스크에서 로그 제어 파일에 나타난 가장 오래된 유효 로그 레코드로 판별됩니다. 반면에 『현재 상태』는 메모리 내의 로그 제어 정보로 판별됩니다. (가장 오래된 유효 로그 레코드란 복구 프로세스가 읽게 되는 첫 번째 로그 레코드입니다.) 소프트 점검점은 다음 공식으로 계산된 값이 이 매개변수의 값보다 크거나 같으면 사용됩니다.

  ( (기록된 상태와 현재 상태간의 차이) /  logfilsiz ) * 100 

권장사항: 승인 가능한 복구 창이 한 로그 파일보다 큰지 여부에 따라 이 매개변수의 값을 늘리거나 줄일 수 있습니다. 이 매개변수의 값을 줄이면 데이터베이스 관리 프로그램이 페이지 클리너를 더욱 자주 트리거하게 되고 소프트 체크포인트를 더 자주 사용하게 됩니다. 이와 같은 조치로 처리에 필요한 로그 레코드의 수와 응급 복구시 처리되는 중복 로그 레코드의 수가 감소됩니다.

그러나 페이지 클리너를 더 많이 트리거하고 소프트 체크포인트를 자주 사용하게 되면 데이터베이스 로그와 관련된 오버헤드를 증가시켜 데이터베이스 관리 프로그램의 성능에 영향을 줄 수 있습니다. 또한 다음의 경우에는 소프트 체크포인트를 더 자주 사용한다고 데이터베이스 재시작에 필요한 시간이 줄어들지는 않습니다.

  • 커미트 지점이 아주 적은 매우 긴 트랜잭션
  • 매우 큰 버퍼 풀과 자주 디스크로 다시 기록되지 않는 커미트된 트랜잭션이 들어 있는 페이지(비동기 페이지 클리너를 사용하면 이러한 상황을 피할 수 있습니다.)

두 경우에서 모두 메모리에 유지되는 로그 제어 정보가 자주 변경되지 않으면 로그 제어 정보를 디스크에 기록할 때 아무런 이익을 얻을 수 없습니다.

마라도님이 2007-02-14 10:36에 작성한 댓글입니다. Edit

도데체 무슨이야기인지 모르겠네용

db2초보님이 2007-02-14 14:08에 작성한 댓글입니다. Edit

트랜젝션이 발생하고 데이터를 디스크에 기록할 때 Bufferpool - log buffer - log file - disk 순서로 하게 되는데  bufferpool의 변경된 data가 disk에 기록이 되었는지를 체크하는 시기를 지정하는 것으로 보입니다. 
그래서 이 작업을 자주하게 되면 메모리상에는 변경이 되었지만 disk에 기록되지 않은 data의 갯수는 줄어 들지만 자주 메모리의 데이터를 디스크로 기록을 하는데에 대한 비용이 증가하기 때문에 성능을 저하 시킬수가 있고 체크시 기록되는 data의 양도 적기 때문에 크레쉬복구시 시간을 단축시키는데는 별로 도움이  안된다는 내용 같습니다.

마라도님이 2007-02-14 14:38에 작성한 댓글입니다.
이 댓글은 2007-02-14 17:29에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1261Migration from DB2 to MS-SQL 방법 좀 알려주세요 ㅠ..ㅠ [1]
lusiffer
2007-02-21
7354
1260수학계산식
머털
2007-02-19
7700
1259DB2 기본 문법좀 알려주세요 ㅡㅡ; [1]
박성준
2007-02-15
11210
1258db cfg 의 softmax에 대해서 질문 드립니다. [3]
db2초보
2007-02-13
7935
1257DB2에서 MS-SQL 로 트리거
jfulseo
2007-02-12
7549
1256db2v9 설치 후 db2licm -l명령어 실행 시
db2man
2007-02-09
7863
1255db 생성 시 AUTOMATIC STORAGE yes 옵션은? [3]
db2초보
2007-02-07
8108
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다