본문 바로가기

IT-Consultant

how to terminate or kill rollback ?


대용량 테이블 업데이트를 하다가 취소가 되버리면 내부적으로 미친짓을 한다.
사실 트랜잭션이 중요한 DB에서는 중요하겠지만, 난 트랜젹션이 불 필요한 상황이다.
어찌되었든, 어제하루동안 돌았는데도 오늘 보니 아직도 rollback 중이다. 이 경우 외국 사례를 찾아보니 거의 100% 원본 테이블을 지워야 한다고 했다. 하지만 그 방법만은 피하고 싶어서 내 나름대로 방법을 찾아보았다. 다행히 성공 ㅎㅎ

1. pfile 생성
create pfile from spfile;

2. create undo tablespace undotbs2
create undo tablespace undotbs2 datafile '/oracle/app/oracle/oradata/orcl/undotbs02.dbf' size 1024M;

3. pfile 편집
undo_management = manual
_offline_rollback_segments=('_SYSSMU26_2277353892$') ==> 문제가 되는 세그먼트 offline

4. oracle shutdown & startup
startup  pfile='/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/work.ora'

5. delete original undo tablespace

...  이후 생략.. 아 귀잖다. 다 적을려니