현상
삭제하려는 테이블스페이스(TS)의 상태가 OFFLINE이거나 READ ONLY인 경우, 오브젝트 삭제 시 _DD_DROPPED_SGMT에 메타 정보는 남지만 실제 세그먼트를 제거할 수 없습니다.
이로 인해 suspended _DD_DROPPED_SGMT : not writable ts (10) 에러가 발생하게 됩니다.
원인
삭제 대상 오브젝트의 테이블스페이스가 READ ONLY 또는 OFFLINE 상태이면 세그먼트를 제거할 수 없어 _DD_DROPPED_SGMT에 메타만 남게 됩니다.
해결
변경 방법
suspended _DD_DROPPED_SGMT : not writable ts (10) 에러 출력 방지
해당 에러 메시지를 출력하지 않도록 하려면 아래와 같이 파라미터 값을 변경합니다.
SQL> alter system set _LAZY_SGMT_DROP_NOT_WRITABLE_TS_LOG = N;
SQL
복사
_DD_DROPPED_SGMT 목록 제거
테이블스페이스 상태를 ONLINE 또는 READ WRITE 상태로 변경합니다.
SQL> alter tablespace <TABLESPACE_NAME> read write;
SQL
복사
예제 확인
테이블 스페이스, 테이블 생성 및 TS 상태 변경
SQL> CREATE TABLESPACE TS1 DATAFILE '/home/viera/tibero7/database/tibero/ts1.dtf' SIZE 100M;
Tablespace 'TS1' created.
SQL> create table t (a number) tablespace ts1;
Table 'T' created.
SQL> alter tablespace ts1 read only;
Tablespace 'TS1' altered.
SQL
복사
Object 목록 확인
SQL> select * from sys._dd_obj where name='T';
OBJ_ID OWNER_ID
---------- ----------
NAME
--------------------------------------------------------------------------------
SUBNAME
--------------------------------------------------------------------------------
BO_ID TYPE_NO FLAGS
---------- ---------- ----------
CTIME
--------------------------------------------------------------------------------
MTIME
--------------------------------------------------------------------------------
STIME
--------------------------------------------------------------------------------
RESERVED1 RESERVED2 RESERVED3
---------- ---------- ----------
RESERVED4
--------------------------------------------------------------------------------
4064 18
T
4294967295 1 0
2025/02/19
2025/02/19
2025/02/19
0 0 0
1 row selected.
SQL> select * from sys._dd_dropped_sgmt;
0 row selected.
SQL
복사
테이블 삭제 및 sys.log에 에러 발생
•
테이블 삭제
SQL> drop table t;
Table 'T' dropped.
SQL
복사
•
sys.log
[2025-02-19T10:46:57.379133] [DDL-102] [I] sgmt(4064) suspended _DD_DROPPED_SGMT : not writable ts (10)
SQL
복사
Object 목록 확인
•
오브젝트 존재 확인
SQL> select * from sys._dd_obj where name='T';
0 row selected.
SQL
복사
•
_dd_dropped_sgmt 목록 등록 확인
SQL> select * from sys._dd_dropped_sgmt;
SESSID SGMT_ID TS_ID SHDRDBA FLAGS
---------- ---------- ---------- ---------- ----------
89 4064 10 37748745 1
1 row selected.
SQL
복사
파라미터 변경 및 sys.log 확인
•
sys.log에 에러 미출력
SQL> alter system set _LAZY_SGMT_DROP_NOT_WRITABLE_TS_LOG = N;
System altered.
SQL
복사
Tablespace STATUS 변경 (READ ONLY → READ WRITE)
•
ts status 변경
SQL> alter tablespace ts1 read write;
Tablespace 'TS1' altered.
SQL
복사
•
_dd_dropped_sgmt에 목록 제거된 사항 확인
SQL> select * from sys._dd_dropped_sgmt;
0 row selected.
SQL
복사
파라미터 변경 후에도 에러 미출력
•
sys.log에 에러 미출력
SQL> alter system set _LAZY_SGMT_DROP_NOT_WRITABLE_TS_LOG =Y;
System altered.
SQL
복사