=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- TABLESPACE 생성
실습을 위해 아래의 조건으로 TABLESPACE를 생성한다. |
TABLESPACE NAME : SALESTBS
D:\khdata\SALESTBS01.DBF 20M D:\projectdata\SALESTBS02.DBF 16M (=테이블 스페이스 1개에 구성되어지는 파일은 2개로 생성) |
CREATE TABLESPACE SALESTBS
DATAFILE 'D:\khdata\SALESTBS01.DBF' SIZE 20M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
ALTER TABLESPACE SALESTBS
ADD DATAFILE 'D:\projectdata\SALESTBS02.DBF' SIZE 16M;
- 테이블 생성
CREATE TABLE TBLSALES01
(NAME VARCHAR2(10)
,DANGA NUMBER
)TABLESPACE SALESTBS;
- 자료 삽입
INSERT INTO TBLSALES01 VALUES
('새우깡',800);
COMMIT;
- 테이블의 내용 확인
SELECT *
FROM TBLSALES01;
실습가정> |
위에서 SALESTBS의 물리적인 하드 공간(D드라이브 공간 OVERFLOW 상태)이 다 찼다. 이를 해결하기 위한 방법으로 기존의 테이블 스페이스를 공간이 꽉찬 D드라이브가 아닌 다른 드라이버로 이동시켜보자. |
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
방법1>
- D 드라이브에 폴더를 하나 만들고 그것을 가상의 드라이버로 실습
- 테이블스페이스에 존재하는 데이터파일 확인
SELECT FILE_NAME
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='SALESTBS';
- 테이블스페이스의 상태 확인 (온라인)
SELECT STATUS
FROM DBA_TABLESPACES
WHERE TABLESPACE_NAME='SALESTBS';
- 테이블스페이스를 이동시키는 중 사용자의 Access를 막기 위해 테이블을 OFFLINE상태로 변경시킨다.
ALTER TABLESPACE SALESTBS OFFLINE;
- 접근 불가 확인을 위해 테이블에 접근을 시도
SELECT * FROM TBLSALES01;
(ORA-00376: 현재 파일 11를 읽을 수 없습니다)
(ORA-01110: 11 데이터 파일: 'D:\KHDATA\SALESTBS01.DBF')
- 이제 DBF 파일을 HDD의 다른 드라이브로 이동시킨다.
- 그리고 아래와 같이 ORACLE에게 TABLESPACE위치의 변경을 입력한다.
ALTER TABLESPACE SALESTBS
RENAME DATAFILE 'D:\KHDATA\SALESTBS01.DBF' TO 'D:\EDRIVE\SALESTBS01.DBF';
ALTER TABLESPACE SALESTBS
RENAME DATAFILE 'D:\PROJECTDATA\SALESTBS02.DBF' TO 'D:\EDRIVE\SALESTBS02.DBF';
- 마지막으로 테이블스페이스의 상태를 온라인(활성화)시킨다.
ALTER TABLESPACE SALESTBS ONLINE;
- 변경 정보 확인
SELECT *
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='SALESTBS';
SELECT *
FROM TBLSALES01;
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
방법2>
SHUTDOWN IMMEDIATE로 ORACLE을 내린 후, 위에서 변경시켜준 DBF 파일의 위치를 다시 원 위치로 변경시켜준다.
그리고 다시 Oracle을 구동시켜보면 오류가 난다.
STARTUP MOUNT로 우선 구동 한 후 아래의 내용들을 실행한다. |
SQL> STARTUP MOUNT ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 369098752 bytes Fixed Size 788932 bytes Variable Size 145749564 bytes Database Buffers 222298112 bytes Redo Buffers 262144 bytes ORA-00205: ????? ????? ??, ?? ??? ? ?? ??? ?? ??? ?????? ( 위와 같이 정상적이지 않은 메시지가 오류 Message가 출력된다.) |
|
SQL> ALTER DATABASE 2 RENAME FILE 'D:\EDRIVE\SALESTBS01.DBF' 3 TO 'D:\KHDATA\SALESTBS01.DBF';
SQL> alter database 2 rename file 'd:\edrvie\salestbs02.dbf' 3 to 'd:\projectdata\salestbs02.dbf'; |
|
'Database' 카테고리의 다른 글
CHAPTER18. Oracle Password Management (0) | 2009.04.21 |
---|---|
Chapter16. Oracle OS authentication User create (0) | 2009.04.21 |
CHAPER 10 ORACLE TEMPORARY TABLE (0) | 2009.04.20 |
chaper 9 oracle extent & segment 정보확인 (0) | 2009.04.20 |
TABLESPACE의 생성 및 관리 (0) | 2009.04.20 |
REDO LOG 파일의 관리 (0) | 2009.04.17 |
Undo TableSpace 관리(생성/제거) (0) | 2009.04.16 |
Control File의 추가 및 삭제 그리고 복구 (0) | 2009.04.16 |
일반 USER가 임의적으로 LOCK을 발생시키고, 관리자가 LOCK을 찾아내는 법 (0) | 2009.04.16 |
Oracle Structure 셋째날(Undo Table) (0) | 2009.04.16 |