DB2로 테이블들을 복사해놓고 있습니다.
그런데...
Error: SQL0964C The transaction log for the database is full. SQLSTATE=57011
튜플이 4만개 이상인 테이블들에서는 위와 같은 에러가 발생합니다.
이런문제를 해결해주는 방법이 어떻게 되는지 모르겠습니다.
짧은 조언이라도 해주시면 감사하겠습니다.
자문자답 ^_~@
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
이벤트 저장소가 기본값인 순환 로깅을 사용하는지 판별하려면 다음 명령을 사용하십시오.
db2 get db cfg for dbname
여기서 dbname은 이벤트 저장소 데이터베이스의 이름입니다.
LOGRETAIN 값이 OFF로 설정된 경우, 이벤트 저장소는 순환 로깅을 사용합니다.
다음 구성 매개변수는 트랜잭션 로그의 총 크기를 구성합니다.
· 각 로그 파일의 4K 페이지 수인 LOGFILSIZ
· 작성할 1차 로그 파일의 수인 LOGPRIMARY, 크기의 각 LOGFILSIZ
· 작성할 2차 로그 파일의 수인 LOGSECOND, 필요한 경우 크기의 각 LOGFILSIZ
로그 파일에 필요한 공간량(바이트)의 범위는 (logprimary * (logfilsiz + 2) * 4096) + 8192에서부터 ((logprimary + logsecond) * (logfilsiz + 2) * 4096) + 8192까지입니다.
로그 공간을 변경하려면, 다음을 완료하십시오.
1. 다음 명령을 사용하여 LOGFILSIZ, LOGPRIMARY 및 LOGSECOND 구성 매개변수를 변경하십시오.
db2 update db cfg for dbname using parameter newvalue
여기서 dbname은 이벤트 저장소 데이터베이스의 이름이고, parameter는 설정 중인 구성 매개변수, newvalue는 구성 매개변수의 새 값입니다.
2. 다음 명령을 사용하여 1단계에서 작성한 변경사항을 적용하십시오.
db2 force application all
만약.. import를 수행하시는 거라면..
import시에 commitcount라는 옵션을 주어 자주 commit을 수행하도록 하는것이 좋습니다.ex) db2 import from filename of del commitcount 5000 insert into tabname