Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

난이도: 

문제 1: redo 로그 group과 member를 create, add, drop 해보기 (5분)

 

/* 로그파일 그룹의 실행 상태를 표시하는 쿼리 */
SET LINESIZE 150
SELECT	group#, status
FROM	V$LOG;

/* 전체 로그파일 그룹과 그 멤버에 대한 정보를 표시하는 쿼리 */
SELECT     group#, MEMBER
FROM      V$LOGFILE;

/* 로그파일 그룹 추가하기 */
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/RYUHOUSE/redo04_01.log', 
'/u01/app/oracle/oradata/RYUHOUSE/redo04_02.log') SIZE 50M;

/* 로그파일 멤버 추가하기 */
ALTER DATABASE ADD LOGFILE MEMBER '/u01/app/oracle/oradata/RYUHOUSE/redo04_03.log') 
REUSE TO GROUP 4;

/* 로그파일 멤버 DROP */
ALTER DATABASE DROP LOGFILE MEMBER '/u01/app/oracle/oradata/RYUHOUSE/redo04_03.log';

/* 로그파일 그룹 DROP */
ALTER DATABASE DROP LOGFILE GROUP 4;

 

 

 

 

 

 

난이도: 

문제 2: 데이터베이스의 모든 파일을 relocate하기 (10분)

 

 

1. redo 로그파일 relocate

 

(1) 현재 데이터베이스의 redo log file 그룹과 멤버를 확인한다.

SELECT	GROUP#, member
FROM	v$logfile;

 

(2) 새로운 redo 로그파일 그룹들을 생성한다. 

ALTER DATABASE ADD LOGFILE GROUP 3 '/u01/app/oracle/oradata/RYUHOUSE/redo03.log' SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oracle/oradata/RYUHOUSE/redo04.log' SIZE 50M;

 

(3) 현재 redo 로그파일을 비워서 비활성화시킨다.

ALTER SYSTEM CHECKPOINT;

/* 현재 REDO 로그파일을 전부 Archive log 영역에 옮기고, 실행 중이던 redo 로그 파일은 비활성화시킨다. archive log mode 상태가 필수적이다. */
ALTER SYSTEM ARCHIVE LOG ALL;

/* 로그파일 그룹의 상태를 다시 확인한다. inactive, unused 상태의 로그파일 그룹은 삭제 가능하다. */
SELECT	group#, status
FROM	v$log;

 

 

 

 

 

 

2. 컨트롤파일 relocate

/* 컨트롤 파일 파라미터 확인하기 */
SHOW PARAMETER CONTROL_FILES

/* 컨트롤 파일 파라미터를 relocate 하고싶은 주소로 바꾸기, 컨트롤 파일은 2개 이상 지정하는 것이 좋음 */
ALTER SYSTEM SET CONTROL_FILES='/u01/app/oracle/oradata/RYUHOUSE/control01.ctl', '/u01/app/oracle/oradata/RYUHOUSE/control02.ctl' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;

/* 기존 컨트롤파일 위치를 relocate 하고싶은 주소로 복사하기 (접속 시 컨트롤 파일 깨짐 오류를 대비하기 위해, mv를 사용하지 않았다. */
$ cp /u01/app/oracle/oradata/ryuhome/control01.ctl /u01/app/oracle/oradata/RYUHOUSE/control01.ctl


sqlplus / as sysdba
STARTUP 
SHOW PARAMETER CONTROL_FILES

 

 

 

 

3. 데이터파일 relocate하기 

/* 실습용 테이블스페이스 mytbs01 생성 */
CREATE TABLESPACE mytbs01 DATAFILE '/u01/app/oracle/oradata/RYUHOUSE/mytbs01.dbf' SIZE 50M;


/* 테이블스페이스의 데이터파일을 offline 상태로 바꾸기 */
ALTER TABLESPACE mytbs01 DATAFILE OFFLINE;


/* 테이블스페이스의 데이터파일을 relocate하고싶은 위치에 복사하기 */
host cp /u01/app/oracle/oradata/RYUHOUSE/mytbs01.dbf /u01/app/oracle/oradata/RYUHOUSE/mytbs.dbf


/* 데이터파일을 rename지정하기 (controlfile에 그 내역이 자동으로 저장됨) */
ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/RYUHOUSE/mytbs01.dbf' TO '/u01/app/oracle/oradata/RYUHOUSE/mytbs.dbf';


/* 테이블스페이스를 RECOVER 하고 online으로 돌려놓기 */
RECOVER TABLESPACE mytbs01;
ALTER TABLESPACE mytbs01 ONLINE;

 

 

 

 

 

난이도: 

문제 3: SYSTEM, SYSAUX 테이블스페이스의 데이터파일을 relocate 하기 (10분)

 

 

1. 모든 테이블스페이스와 그 데이터파일 현황 쿼리하기

SELECT     FILE_NAME, TABLESPACE_NAME
FROM       DBA_DATA_FILES;

 

 

2. SYSAUX, SYSTEM 테이블스페이스의 데이터파일을 relocate하려는 주소에 복사하기

host cp /u01/app/oracle/oradata/MYHOME/datafile/o1_mf_sysaux_kzkzlwdv_.dbf /u01/app/oracle/oradata/MYHOME/datafile/o1_mf_sysaux_kzkzlwdv_1.dbf

host cp /u01/app/oracle/oradata/MYHOME/datafile/o1_mf_system_kzkzks7p_.dbf /u01/app/oracle/oradata/MYHOME/datafile/o1_mf_system_kzkzks7p_1.dbf

 

 

3. MOUNT모드로 열고, 데이터파일명을 변경하기

STARTUP MOUNT

ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/MYHOME/datafile/o1_mf_sysaux_kzkzlwdv_.dbf' TO '/u01/app/oracle/oradata/MYHOME/datafile/o1_mf_sysaux_kzkzlwdv_1.dbf'
ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/MYHOME/datafile/o1_mf_system_kzkzks7p_.dbf' TO '/u01/app/oracle/oradata/MYHOME/datafile/o1_mf_system_kzkzks7p_1.dbf';

 

 

4. 테이블스페이스를 RECOVER 한 후, 데이터베이스를 OPEN

RECOVER TABLESPACE SYSTEM;
RECOVER TABLESPACE SYSAUX;

ALTER DATABASE OPEN;

 

 

 

 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo