Oracle/Admin

[Admin] 컨트롤파일, 데이터파일, 리두로그파일 경로 변경

알 수 없는 사용자 2016. 11. 1. 17:49
# 컨트롤파일 경로 변경 

/*
1. 파라미터 파일 확인 
2. 컨트롤파일 경로 확인 
3. DB 종료 
4. 컨트롤파일 복사 
5. 컨트롤파일 경로 변경 
6. 컨트롤파일 경로 변경 확인 
*/ 

 -- 1. 파라미터 파일 확인
show parameter spfile;
-- 2. 컨트롤파일 경로 확인
SELECT    A.NAME
FROM      V$CONTROLFILE A;
-- 3. DB 종료
shutdown immediate;
-- 4. 컨트롤파일 복사 -
- 기존 컨트롤파일을 대상 디렉토리로 복사 

 -- 5. 컨트롤파일 경로 변경 
-- 5.1. mount로 시작
startup mount;

-- 5.2. controlfile 경로 변경
alter system set control_files ='경로','경로' scope=spfile;
(ex. ALTER SYSTEM SET CONTROL_FILES='C:\test\CONTROL01.CTL' SCOPE=SPFILE;)

-- 5.3. DB 종료
shutdown immediate;

-- 5.4. DB open
startup;

-- 6. 컨트롤파일 경로 변경 확인
SELECT    *
FROM      V$CONTROLFILE;


# 테이블스페이스 및 리두로그 파일 경로 변경 
/* 
1. 기존 파일의 경로를 확인 
2. DB 종료 
3. Data file 복사 
4. 마운트 상태로 시작 
5. Data file 파일경로 변경 
6. DB open 
7. 테이블스페이스 경로 변경 확인 
*/ 

 -- 1. 기존 파일의 경로를 확인 -- 1.1. 테이블스페이스 데이터파일 경로
SELECT    A.TABLESPACE_NAME, A.FILE_NAME AS TABLESPACE_PATH
FROM      DBA_DATA_FILES A;

-- 1.2. TEMP 데이터파일 경로
SELECT    A.TABLESPACE_NAME, A.FILE_NAME AS TABLESPACE_PATH
FROM      DBA_TEMP_FILES A;

-- 1.3. REDO LOG파일 경로
SELECT    A.GROUP# 
         ,A.MEMBER AS REDO_LOG_PATH
FROM      V$LOGFILE A
         ,V$LOG B
WHERE     A.GROUP# = B.GROUP#
ORDER BY A.GROUP#;

-- 2. DB 종료
shutdown immediate;

-- 3. Data file 복사 
-- 기존 데이터파일을 대상 디렉토리로 복사 

 -- 4. 마운트 상태로 시작한다.
startup mount;

-- 5. 파일경로 변경
 alter database rename file [기존파일경로] to [대상파일경로] ;
 (ex. alter database rename file '/app/oracle/oradata/testdb/system01.dbf' to '/mnt/hgfs/Shareddisk/system01.dbf';)

-- 6. db open
ALTER DATABASE OPEN;

-- 7. 테이블스페이스 경로 변경 확인 
-- 7.1 테이블스페이스 데이터파일 경로
SELECT    A.TABLESPACE_NAME, A.FILE_NAME AS TABLESPACE_PATH
FROM      DBA_DATA_FILES A;

-- 7.2. TEMP 데이터파일 경로
SELECT    A.TABLESPACE_NAME, A.FILE_NAME AS TABLESPACE_PATH
FROM      DBA_TEMP_FILES A;

-- 7.3. REDO LOG파일 경로
SELECT    A.GROUP# 
         ,A.MEMBER AS REDO_LOG_PATH
FROM      V$LOGFILE A
         ,V$LOG B
WHERE     A.GROUP# = B.GROUP#
ORDER BY A.GROUP#;