설치 후 파일 경로 변경

현스·2026년 3월 25일

ORACLE 설치 script

목록 보기
17/17

설치하고 나면 컨트롤파일 삼중화 해달라고 하거나
리두로그 그룹 멤버 수 정해서 어디다가 해달라고 지정해주는 경우가 있음.

어제 개발계 하나 정규 HA 구성 하나 설치했는데

둘 다 컨트롤파일 삼중화 하고 리두로그 경로 변경, 멤버설정, 크기 변경 함.

컨트롤 파일 경로 변경 및 삼중화 실습

  • 현재 컨트롤파일 경로 확인
SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/UPTEST
                                                 /control01.ctl, /u01/app/oracl
                                                 e/fast_recovery_area/UPTEST/co
                                                 ntrol02.ctl

현재 컨트롤 파일의 경로는 /u01/app/oracle/oradata/UPTEST/control01.ctl 인데
=> /u01/app/oracle/DB/control01.ctl 로 바꾸고자 한다.


SQL> ALTER SYSTEM SET control_files = 
  '/u01/app/oracle/DB/control01.ctl',
  '/u01/app/oracle/DB/control02.ctl',
  '/u01/app/oracle/DB/control03.ctl' 
SCOPE=SPFILE;

SQL> shutdown immediate;

SQL> startup nomount;

SQL> exit

rman target /

RMAN> RESTORE CONTROLFILE FROM '/u01/app/oracle/oradata/UPTEST/control01.ctl';

RMAN> EXIT;

SQL> shutdown immediate;

SQL> startup;

#확인

SQL> show parameter control_files

잘 바뀐 것을 확인 할 수 있다 !


리두로그 경로 및 멤버, 사이즈 변경

현재의 리두로그를 확인하는 쿼리

SET LINESIZE 200
SET PAGESIZE 100
COL MEMBER FORMAT A60
COL GROUP_STATUS FORMAT A15

SELECT A.GROUP#, 
       A.MEMBER, 
       B.BYTES / 1024 / 1024 AS SIZE_MB, 
       B.STATUS AS GROUP_STATUS
FROM V$LOGFILE A
JOIN V$LOG B ON A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, A.MEMBER;

현재 리두로그 그룹 3개에 각각 멤버 1개씩 50MB 로 구성되어있다.
=> 멤버 2 1GB 그룹 10개 총 20G 로 구성하라는 요청이 있었다.

  • 그룹 4부터 만들기
ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oracle/DB/redo04a.log' SIZE 1G;
ALTER DATABASE ADD LOGFILE MEMBER '/u01/app/oracle/DB/redo04b.log' TO GROUP 4;

ALTER 문이 잘 들어가는 것 같아서 그룹 5번까지 만들고 확인해보니
기존에 있던 그룹 1번과 3번이 INACTIVE 상태 => DROP 가능

-- 그룹 삭제

ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 3;

-- 재생성

ALTER DATABASE ADD LOGFILE GROUP 1 (
    '/u01/app/oracle/DB/redo01a.log', 
    '/u01/app/oracle/DB/redo01b.log'
) SIZE 1G;

ALTER DATABASE ADD LOGFILE GROUP 3 (
    '/u01/app/oracle/DB/redo03a.log', 
    '/u01/app/oracle/DB/redo03b.log'
) SIZE 1G;

-- 확인

잘 들어갔으니 계속 진행 한다.

-- 그룹 2번 삭제 후 재생성


-- 확인

-- 그룹 8,9,10 만드는데 용량 부족

공간부족 ~ 작게만들기

ALTER DATABASE ADD LOGFILE GROUP 6 ('/u01/app/oracle/DB/redo06a.log', '/u01/app/oracle/DB/redo06b.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 7 ('/u01/app/oracle/DB/redo07a.log', '/u01/app/oracle/DB/redo07b.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 8 ('/u01/app/oracle/DB/redo08a.log', '/u01/app/oracle/DB/redo08b.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 9 ('/u01/app/oracle/DB/redo09a.log', '/u01/app/oracle/DB/redo09b.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 10 ('/u01/app/oracle/DB/redo10a.log', '/u01/app/oracle/DB/redo10b.log') SIZE 50M;

이런저런

공간을 확보하려고 해봤지만.. 맘에 안들어서 그냥 지우기

ALTER DATABASE DROP LOGFILE GROUP 8;

ALTER DATABASE DROP LOGFILE GROUP 9;

ALTER DATABASE DROP LOGFILE GROUP 10;

checkpoint 를 일으키고 로그스위치 하면서

이렇게 정리한다.

profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글