datafile, redolog, controlfile 위치 변경하기
2012.08.02 18:03
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
모든 데이터파일, 온라인리두로그파일, 컨트롤파일의 위치를 변경하기
예)
기존 파일들의 위치 : /old
변경할 위치 : /new
일 경우
1. controlfile의 위치를 변경
alter system set control_files = '/new/control/control01.ctl','/new/control/control02.ctl','/new/control/control03.ctl' scope=spfile;
2. DB 정지
SQL> shutdown immediate
3. 모든 파일들을 복사
# cp /old/* /new/
4. DB start(mount)
SQL> startup mount;
SQL> start rename_files.sql;
-- 다음의 스크립트를 작성하여 실행시킨다.
-- rename_files.sql ------------------------------------------------------------------------------
alter database rename file '/old/SYSTEM01.DBF' to '/new/SYSTEM01.DBF';
alter database rename file '/old/UNDOTBS01.DBF' to '/new/UNDOTBS01.DBF';
alter database rename file '/old/CWMLITE01.DBF' to '/new/CWMLITE01.DBF';
alter database rename file '/old/DRSYS01.DBF' to '/new/DRSYS01.DBF';
alter database rename file '/old/EXAMPLE01.DBF' to '/new/EXAMPLE01.DBF';
alter database rename file '/old/INDX01.DBF' to '/new/INDX01.DBF';
alter database rename file '/old/ODM01.DBF' to '/new/ODM01.DBF';
alter database rename file '/old/TOOLS01.DBF' to '/new/TOOLS01.DBF';
alter database rename file '/old/USERS01.DBF' to '/new/USERS01.DBF';
alter database rename file '/old/XDB01.DBF' to '/new/XDB01.DBF';
alter database rename file '/old/REDO03.LOG' to '/new/REDO03.LOG';
alter database rename file '/old/REDO02.LOG' to '/new/REDO02.LOG';
alter database rename file '/old/REDO01.LOG' to '/new/REDO01.LOG';
---------------------------------------------------------------------------------------------------
5. DB start(open) 및 확인
SQL> alter database open;
SQL> select name from v$datafile; // 데이터파일 위치
SQL> select * from v$logfile; // 리두로그파일 위치
SQL> select * from v$controlfile; // 컨트롤파일 위치
추가) TEMP 테이블스페이스 이동 시키기
TEMP 테이블스페이스에 속해있는 데이터파일은 속성이 TEMP라서 alter database rename file 명령어로 이동시킬수 없다.
그러므로 새로운 TEMP 테이블스페이스를 생성하고 기존 테이블스페이스를 제거하는 순으로 이동을 시켜야 한다.
* database open 상태에서 수행
- 제거할 기존 테이블스페이스 확인 : TEMP
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
- 새로운 TEMP 테이블스페이스와 데이터파일 생성
SQL> create temporary tablespace temp02 tempfile '/new/temp02.dbf' size 40M
autoextend on next 5M maxsize unlimited extent management local uniform size 1M;
SQL> alter database default temporary tablespace temp02;
- 기존 테이블스페이스 제거
SQL> drop tablespace temp;
- 결과 확인
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------------
DEFAULT_TEMP_TABLESPACE TEMP02 Name of default temporary tablespace