1-4 서버 구성 – Stripe

어려움:

문제 1: 리두 로그 그룹 및 멤버 생성, 추가 및 삭제(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: 데이터베이스의 모든 파일 이동(10분)

1. 리두 로그 파일 이동

(1) 리두 로그 파일 그룹과 현재 데이터베이스의 멤버를 확인합니다.


SELECT	GROUP#, member
FROM	v$logfile;

(2) 새 리두 로그 파일 세트를 생성합니다.


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) 현재 리두 로그 파일을 지워 비활성화합니다.


ALTER SYSTEM CHECKPOINT;

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

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

2. 컨트롤 파일 이동


/* 컨트롤 파일 파라미터 확인하기 */
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. 데이터 파일 이동



/* 실습용 테이블스페이스 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 테이블스페이스로 이동(10분)

1. 모든 테이블스페이스 및 해당 데이터 파일의 상태 쿼리


SELECT     FILE_NAME, TABLESPACE_NAME
FROM       DBA_DATA_FILES;

2. SYSAUX 및 SYSTEM 테이블스페이스의 데이터 파일을 이동할 주소에 복사합니다.


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. 테이블스페이스를 RESTORE한 후 데이터베이스를 OPEN합니다.


RECOVER TABLESPACE SYSTEM;
RECOVER TABLESPACE SYSAUX;

ALTER DATABASE OPEN;