2006. 10. 20. 13:20ㆍOracle/Oracle Error
사용자의 데이터가 저장되어 있는 테이블에 입력, 수정, 삭제작업을 수행하다 보면 자주 발생하는 에러현상이 있습니다. 이 현상은 테이블이 저장되어 있는 테이블스페이스의 공간이 부족한 경우에 주로 발생합니다.
• ORA-01653 에러코드가 발생하는 경우
• 테이블스페이스를 생성 또는 변경하거나 크기를 관리해야 경우
<ORA-01653 상황 만들기>
1) 테스트를 위해 TEST 테이블스페이스를 생성하십시오.
[C:\] sqlplus "/as sysdba"
SQL> startup force
SQL> create tablespace test
datafile 'c:\oracle\oradata\ora92\test_01.dbf' size 3M;
SQL> select tablespace_name, bytes, file_name from dba_data_files;
2) TEST 테이블을 TEST 테이블스페이스에 생성하십시오.
[C:\] sqlplus "/as sysdba"
SQL> create table test(name char(30))
tablespace test
storage(initial 2M);
3) TEST 테이블이 생성되었으면 연속적으로 행들을 입력하여 익스텐트 확장 시 에러가 발생하도록 하십시오.
SQL> declare
x number(2);
begin
for x in 1 .. 10000 loop
insert into test values('111111111111111111111111111111');
end loop;
end;
/
SQL> /
SQL> /
SQL> / ← 익스텐트 에러가 발생할 때 까지 반복적으로 실행하십시오.
SQL> /
declare
*
1행에 오류:
ORA-01653: SYS.TEST 테이블을 128(으)로 TEST 테이블스페이스에서 확장할 수
없습니다
ORA-06512: 줄 5에서
<ORA-01653 해결 방법>
4) 테이블스페이스의 크기가 부족하여 발생하는 에러를 해결하기 위해서는 해당 테이블스페이스에 새로운 데이터 파일을 추가하는 방법입니다.
SQL> alter tablespace test
add datafile 'c:\oracle\oradata\ora92\test_02.dbf' size 3M;
SQL> declare
x number(2);
begin
for x in 1 .. 10000 loop
insert into test values('111111111111111111111111111111');
end loop;
end;
/
SQL> select tablespace_name, bytes, file_name from dba_data_files;
SQL> host dir c:\oracle\oradata\ora92
→ "test_02.dbf" 파일의 존재여부와 파일 크기를 확인하십시오.
test_01.dbf
test_02.dbf
5) 테이블스페이스의 크기를 늘리는 두 번째 방법은 기존의 데이터 파일을 RESIZE절로 늘리는 방법입니다.
SQL> alter database
datafile 'c:\oracle\oradata\ora92\test_02.dbf' resize 5M;
SQL> select tablespace_name, bytes, file_name from dba_data_files;
SQL> host dir c:\oracle\oradata\ora92
6) 실습이 끝나면 TEST 테이블스페이스를 삭제하십시오. 해당 테이블스페이스 내에 관련 테이블이나 인덱스가 생성되어 있으면 테이블스페이스를 삭제할 수 없습니다.
SQL> drop tablespace test;
drop tablespace test
*
1행에 오류:
ORA-01549: 테이블스페이스가 비어있지 않으므로 INCLUDING CONTENTS 옵션
을 사용해 주십시오
SQL> drop tablespace test including contents;
SQL> select tablespace_name, bytes, file_name from dba_data_files;
SQL> host dir c:\oracle\oradata\ora92
test_01.dbf
test_02.dbf
7) 테이블스페이스를 삭제하더라도 관련 데이터 파일은 삭제되지 않습니다. 추가적인 작업을 통해 관련 데이터 파일을 함께 삭제하십시오.
SQL> host del c:\oracle\oradata\ora92\test_0*
SQL> host dir c:\oracle\oradata\ora92
SQL> exit
'Oracle > Oracle Error' 카테고리의 다른 글
ORA-14400 (0) | 2010.04.01 |
---|---|
ora-27476, ora-06512 (0) | 2010.01.26 |
Linux Oracle9i Ora-01031:insufficient privileges (0) | 2008.11.19 |
Ora-32004, Ora-19905:10g Archive mode 설정 후 Error (0) | 2008.10.02 |
ORA-01653 (0) | 2006.10.02 |