전에 제가 load의 commit시점에 대하여
질문 올린적이 있었는데..그때 마지막 한번이라고 하여..좌절하였던..ㅠㅠ
근데 savecount가 말만 다르고 commit기능을 한다고 하더라구요
혹여 다른분들도 쓰실일이 있을까 하여 글 올림니다.
import는 data가 insert될 때마다 log를 발생시키고 commitcount option을 줄 경우 해당 시점에 commit을 발생시킵니다. 이럴경우 중간에 import가 중단되어도 마지막 commit이 발생된 시점까지의 데이터는 정상적으로 입력이 됩니다. 이후 시점부터 이어서 import를 하려면
마지막 commitcount 값에 restartcount option을 주면 됩니다. 입력 건수를 제한하고 싶으시면 rowcount option을 사용하면 됩니다.
load는 data를 저장할때 log를 발생시키지 않습니다. 그러므로 중간에 commit을 실행할 수 없습니다. savecount option을 적용하면 load를 중단했다 다시 시작할 경우 마지막 savecount 시점이후부터 이어서 작업을 할 수 있습니다.
import는 중간에 중단되면 commitcount시점까지 작업이 완료되지만 load는 terminate를 하여 완전 종료를 하거나 restart를 하여 작업을 완료해야 합니다.
ex)
db2 load from t1.ixf of ixf SAVECOUNT 10000 insert into t1
db2 load query table t1
-> SQL3519W 일관성 지점 로드 시작. 입력 레코드 계수 = "1093656".
ctl^c로 interrupt 를 발생
db2 "select count(*) from t1"
-> SQL0668N 이유 코드 "3"
-> db2 "? sql0668"
3 테이블이 로드 보류 상태입니다. 이 테이블에서 이전의 LOAD시도가 실패되었습니다. LOAD 조작을 재시작하거나 종료해야테이블에 대한 액세스가 허용됩니다.