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 1070 게시물 읽기
No. 1070
insert, update시에 로그 안남게 하는 방법?
작성자
이문선(yurina99)
작성일
2006-07-31 16:47
조회수
8,354

로그를 쌓을 공간이 없는데

많은 양의 데이터를 update를 해야 합니다.

로그를 남기지 않고 insert, update 하는 방법은 없나요?

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

님이 원하시는 답변은 아니지만

userexit을 구성하시면 archive log를 다른 directory로 바로 보낼수가 있습니다. 이 directory가 포함된 filesystem을 주기적으로 체크하면서 일정 비율이 되면 filesytem full이 발생하지 않도록 log를 삭제하는 script를 실행해보세요.

 

 

테이블이 logging을 하지 않도록 하는 방법으로 아래의 option이 있는데 테이블에 문제가 발생될 경우 복구가 안됩니다. 님은 테이블이 이미 생성된 경우이므로 사용할 수 없겠네요.

 

update대상이 없는 경우라면 그냥 load를 사용해보세요.load는 중복된 key값의 데이터를 삭제시 logging이 발생합니다.

 

- create table 시에 option

NOT LOGGED INITIALLY
테이블이 작성된 동일한 작업 단위(UOW)에서 삽입, 삭제, 갱신, 인덱스 작성, 인덱스 삭제(drop) 또는 테이블 교체 연산을 통해 테이블에 가한 변경은 로그되지 않습니다. 이 옵션 사용시 기타 고려사항에 대해서는 이 명령문의 『참고』를 참조하십시오.

모든 카탈로그 변경사항 및 스토리지 관련 정보는 후속되는 단위 작업에서 테이블에 행해지는 모든 연산과 마찬가지로 로그됩니다.

주:
NOT LOGGED INITIALLY 속성이 활성화된 테이블에 대하여 비로그 활동이 일어나고, 명령문이 실패하여 롤백이 발생하거나 ROLLBACK TO SAVEPOINT가 실행될 경우에는 전체 작업 단위가 롤백됩니다(SQL1476N). 또한, 롤백이 발생한 후 NOT LOGGED INITIALLY 속성이 활성화된 테이블은 액세스 불가로 표시되어 삭제(drop)만 가능합니다. 따라서 NOT LOGGED INITIALLY 속성이 사용 중인 작업 단위 내에서 오류가 발생할 가능성은 최소로 해야 합니다.

 

- 적용을 위한 alter table option

ACTIVATE NOT LOGGED INITIALLY

<주의사항 : 이 option을 사용하시려면 auto commit을 막으셔야 합니다. alter table ... ACTIVATE NOT LOGGED INITIALLY 다음에 commit이 실행되면 log가 쌓입니다.>

현재 작업 단위에 대한 테이블의 NOT LOGGED INITIALLY 속성을 활성화합니다.

이 명령문에 의해 테이블이 교체된 후 동일한 작업 단위에서 INSERT, DELETE, UPDATE, CREATE INDEX, DROP INDEX 또는 ALTER TABLE에 의한 테이블 변경사항은 기록되지 않습니다. NOT LOGGED INITIALLY 속성이 활성화되는 ALTER문에 의한 시스템 카탈로그 변경사항은 기록되지 않습니다. 동일한 작업 단위 내에서 이후의 시스템 카탈로그 정보 변경사항은 기록됩니다.

현재 작업 단위가 완료되면 NOT LOGGED INITIALLY 속성은 비활성화되고, 이후의 작업 단위에서 테이블에서 수행되는 모든 연산은 기록됩니다.

데이터를 삽입하면서 카탈로그 테이블에서의 잠금을 방지하기 위해 이 기능을 사용하는 경우, ALTER TABLE문에서 이 절만 지정해야 합니다. ALTER TABLE문에서 다른 절을 사용하면 카탈로그 잠금이 됩니다. ALTER TABLE문에 대해 다른 절이 지정되지 않는 경우, 시스템 카탈로그 테이블에서 SHARE 잠금만 됩니다. 이렇게 하면 이 명령문이 실행되어 실행된 작업 단위가 종료될 때까지의 시간 동안 동시성 충돌이 일어날 가능성이 현저히 줄어들게 됩니다.

테이블이 유형이 지정된 테이블이라면, 이 옵션이 유형이 지정된 테이블 계층의 루트 테이블에 대해서만 지원됩니다(SQLSTATE 428DR).

NOT LOGGED INITIALLY 속성에 대한 자세한 정보는 『CREATE TABLE』의 속성 설명을 참조하십시오.

주:

NOT LOGGED INITIALLY 속성이 활성화된 테이블에 대하여 비로그 활동이 일어나고, 명령문이 실패하여 롤백이 발생하거나 ROLLBACK TO SAVEPOINT가 실행될 경우에는 전체 작업 단위가 롤백됩니다(SQL1476N). 또한, 롤백이 발생한 후 NOT LOGGED INITIALLY 속성이 활성화된 테이블은 액세스 불가로 표시되어 삭제(drop)만 가능합니다. 따라서 NOT LOGGED INITIALLY 속성이 사용 중인 작업 단위 내에서 오류가 발생할 가능성은 최소로 해야 합니다.

 

 

도님이 2006-08-02 10:39에 작성한 댓글입니다.
이 댓글은 2006-08-03 17:53에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1073DB2의 한글 크기 3바이트 [3]
윤세관
2006-08-08
14458
1072[질문] 이거 좀 이상하지 않나요? [3]
이준식
2006-08-04
7237
1071검색건수가 2건일때 한건으로 나타나게 하고 싶은데 어떻게 해야할 까요? [4]
김현철
2006-08-03
7814
1070insert, update시에 로그 안남게 하는 방법? [1]
이문선
2006-07-31
8354
1069[질문] 프로시저를 삭제하려고 해도 삭제가 안됩니다. [2]
이준식
2006-07-31
7839
1068[질문] 스토어드 프로시져 실행방법이 궁금합니다. [2]
이준식
2006-07-29
8393
1067JOIN 결과 UPDATE ?? [2]
2006-07-28
9322
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다