오라클 DB를 만들고 나서 restart 했나요?
제대로 DB 만드는 과정을 완료했다면 될텐데...
이 에러는 일반 트랜잭션 수행을 위한 rollback segment를
사용할 수 없다는 메세지입니다.
svrmgrl에서 connect internal 한 다음에 아래와 같이 확인해 보세요.
SVRMGR> select SEGMENT_NAME, TABLESPACE_NAME from DBA_ROLLBACK_SEGS ;
SVRMGR> select SEGMENT_NAME, TABLESPACE_NAME, status from DBA_ROLLBACK_SEGS ;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
R01 RBS ONLINE
R02 RBS ONLINE
R03 RBS ONLINE
R04 RBS ONLINE
일반적으로 정상적으로 DB를 만들고 restart 했으면 위와 같이
나옵니다. 즉 system rollback segment 이외에도
일반 트랜잭션을 위한 rollback segment가 4개 있습니다.
( r01, r02, r03, r04 ) 물론 더 만들면 더 생기겠지요?
그리고 상태가 online 이어야지만 일반 트랜잭션이 사용할 수 있습니다.
확인 사항은 상태가 offline 이라면 ( 만들어져 있다는 증거지요)
restart하시면 되고, 아니면 online 시키든가.
alter rollback segment r01 online;
alter rollback segment r02 online;
...
아예 없으면 RBS 테이블스페이스가 있는지 확인하고,
있으면 rollback segment를 만드세요
create rollback segment r01 tablespace rbs;
create rollback segment r02 tablespace rbs;
...
당연히 online 시켜주세요.
alter rollback segment r01 online;
alter rollback segment r02 online;
...
그러면 될 것입니다.
> oracle$ svrmgrl
> oracle$ connect system/manager
> oracle$ creat user scott identified by tiger
> default tablespace users
> temporary tablespace temp
> quota unlimited on users
> quota unlimited on temp
>
> oracle$ grant connect , resource to scott
> oracle$.......
>
>
> oracle$ sqlplus scott/tiger
> oracel$ @demobld.sql
>
> 이러구서 table name을 조회하고 desc를 해보면
> 테이블은 생성된것을 확인할 수 있었거든여...
> 그런데 insert는 안된거여여..
> 그래서 insert만 해보니까
> can't use system rollback segment for non-systemtablespace users라는
> 메시지가 뜨는데여
> 어찌해야 하남여...
> tablespace name두 조회해보니까네 users하구 temp하구 다 있데여...
>
|