database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 21873 게시물 읽기
No. 21873
테이블스페이스 삭제시 이상해요.
작성자
재키
작성일
2005-03-02 10:22
조회수
4,413

안녕 하세요.

테이블 삭제시 좀 이상해서요.

테이블 삭제시 아래 순서대로 했거든요.

C:\> SVRMGRL

Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 2000, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SVRMGR> CONNECT INTERNAL
접속되었습니다.

SVRMGR> STARTUP MOUNT
ORACLE 인스턴스가 시작되었습니다.
시스템 글로벌 영역 80594972 바이트 합계
Fixed Size 75804 바이트
Variable Size 56963072 바이트
Database Buffers 23478272 바이트
Redo Buffers 77824 바이트
데이터베이스가 마운트되었습니다.

SVRMGR> alter database datafile 'C:\ORACLE\ORADATA\TEST\TEST.DAT' offline drop;
명령문이 처리되었습니다.

SVRMGR> alter database open;
명령문이 처리되었습니다.

SVRMGR> drop tablespace TEST;
명령문이 처리되었습니다.
SVRMGR> exit
Server Manager 완료.

 

실행하고 나서 ,

'C:\ORACLE\ORADATA\TEST' 폴더로 들어가 확인해 보니

TEST.DAT이 아직 지워지지 않았습니다.

 

원래 남아 있는건지 아니면.,. 지우는 방법이 따로 있는건지 알려 주세요.

 

 

 

 

 

이 글에 대한 댓글이 총 6건 있습니다.

님께서 궁금해 하시는 부분은 데이터 파일 부분입니다.

즉, 님은 테이블스페이스를 삭제를 하신거구여.

테이블스페이스 안에 할당되어 있는 데이터 파일은 제가 알기론

운영체제 내에서 직접 삭제를 해주는걸로 알고 있습니다.

테이블스페이스가 삭제 되었는지는 DB관리자 권한으로 접속을

하셔서

select * from dba_tablespaces where name = 'TEST';

이렇게 쿼리를 사용해 테이블스페이스 존재 유무를 확인하시고

직접 지우시면 됩니다.

김충일(justkci)님이 2005-03-02 13:18에 작성한 댓글입니다.

테이블스페이스가 삭제 되었는지 알고 싶어서  DB관리자 권한으로 접속을 해서  

select * from dba_tablespaces where TABLESPACE_NAME = 'TEST';

의 실행결과 없습니다.

 

데이터 파일을 운영체제 내에서 직접 삭제를 하고

테이블스페이스를 다시 생성을 할려고 하니 에러가 나왔습니다.

 

테이블 생성 스크립트

CREATE TABLESPACE TEST
DATAFILE
 'C:\oracle\oradata\TEST\TEST.dat' SIZE 500M 
LOGGING
DEFAULT STORAGE (
 INITIAL 1M
 NEXT 1M
 PCTINCREASE 0 )
ONLINE
PERMANENT
;

 

에러메세지

ORA-01119: 'C:\oracle\oradata\TEST\TEST.dat' 데이터베이스 파일 작성시 오류가 생겼습니다
ORA-27038: skgfrcre: 파일이 존재합니다
OSD-04010: <작성> 옵션이 지정되었지만 파일은 이미 존재합니다

 

위의 에러가 나온 이유룰 알고 싶습니다.

재키님이 2005-03-02 15:09에 작성한 댓글입니다.
이 댓글은 2005-03-02 15:14에 마지막으로 수정되었습니다. Edit

select * from DBA_DATA_FILES

으로 다시 확인해보십시오.

dba_tablespaces 에서는 실제 데이타 파일 부분이 빠져있습니다.

v$datafiles, dba_data_files 에서 사용하는 데이타 파일이 삭제 되었는지 확인 후, os 에서 데이타 파일을 삭제하십시오.

 

그럼~

박대권(mitra)님이 2005-03-02 15:35에 작성한 댓글입니다.

8i 버전에서는 tablespace 삭제 시 datafile이 삭제되지 않습니다.

해당 경로에 가셔서 반드시 delete 해주셔야 합니다.

남아 있는게 당연합니다.

그리고 dba_data_files에 존재하지 않으면

위 명령 수행하신 걸로 보아 잘 삭제하셨습니다.

해당 경로에서 delete하시구요.

 

참고로 9i버전부터는 drop tablespace including contents and datafiles라고 하는 option으로

OS 상에 file을 함께 지워주기도 합니다.

 

ehsky님이 2005-03-02 16:28에 작성한 댓글입니다. Edit

테이블 스페이스는 논리적인 개념이고 이 테이블 스페이스 관리하는 데이터 파일은 실제 운영체제 상에서 남아 있는 파일입니다 .

 

8i에서는 테이블 스페이스 삭제시 해당 논리적인 정보만 딕셔너리에서 삭제할 뿐이지 실제 운영체제 상에서 존재하는 데이터 파일은 삭제하지 못합니다 .

 

물론 9i부터는 같이 삭제할 수있게끔 테이블 스페이스 생성시에 지정을 해 줄수 있습니다 .

 

그런데 문제는 데이터 파일이 있는것도 있는것이지만 테이블 스페이스를 테스트로 다시 만드시면서 동일 경로 에 이름도 같게 하여서 다시 데이터 파일을 생성하는 명령문을 내리신 것인데요 .

 

이 경우 조치 사항은

 

 기존에 데이터 파일을 삭제 후 tablespace 새로 생성하셔야 할꺼 같습니다 .

최영준(bstar36)님이 2005-03-02 18:01에 작성한 댓글입니다.

여러분들 감사합니다.

해결 했습니다.

많은것을 배웠네여.

정말 감사 합니다.

재키님이 2005-03-03 13:48에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
21876alert.log에 기록된 에러메세지에 대한 처리.. [1]
김태진
2005-03-02
2102
21875리스너인지 [7]
김보균
2005-03-02
4767
21874테이블스페이스 부족현상.. [2]
권민성
2005-03-02
2779
21873테이블스페이스 삭제시 이상해요. [6]
재키
2005-03-02
4413
21872오라클 9i 리눅스용 구하고 있습니다. [1]
곽희태
2005-03-01
1146
21871Tablespace생성이 지정한 대로 되지 않아요.. 제발 답변 부탁합니다. [1]
쨍스~
2005-03-01
8913
21870아주 간단한 백업방법부탁드려요..
마징가A
2005-03-01
1270
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.010초, 이곳 서비스는
	PostgreSQL v17.4로 자료를 관리합니다