Oracle DBMS를 운영하다보면 전임자의 실수이거나, 게으른 본인의 생각없는 설치 및 운영으로 인해서 디스크 공간의 부족함으로 인해서 서비스가 중단되는 일이 생기기도 합니다. 본사 내에서 마구잡이로 사용하는 개발용 DB중에 그런 장비가 있었는데 /opt/oracle 디렉토리가 사용율 100%에 이르러서야 확인을 하게 되었습니다.
문제는 현재 각종 로그가 쌓이는 디렉토리와 $ORACLE_HOME, 그리고 각종 시스템 관련 Datafile, redo log file 등이 같은 파티션에 저장이 되고 있더군요. 그래서 ... 서비스를 중지시키지 않고 작업을 해야겠다는 생각에 redo log file을 옮기기로 결정했습니다. 이게 제일 만만해보이더군요.
문제는 현재 각종 로그가 쌓이는 디렉토리와 $ORACLE_HOME, 그리고 각종 시스템 관련 Datafile, redo log file 등이 같은 파티션에 저장이 되고 있더군요. 그래서 ... 서비스를 중지시키지 않고 작업을 해야겠다는 생각에 redo log file을 옮기기로 결정했습니다. 이게 제일 만만해보이더군요.
리두로그 그룹 및 파일 현황 확인
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#;
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/edo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /opt/oracle/oradata/redo03.log
네번째 리두로그 그룹 및 파일 추가
SQL> alter database add logfile group 4('/data/orasys/redo04.log') size 100M;
Database altered.
SQL>
리두로그 그룹 및 파일 추가 결과 확인
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#;
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /opt/oracle/oradata/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
기존 리두로그 파일 그룹중 하나 삭제
SQL> alter database drop logfile group 3;
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
4 UNUSED ONLINE /data/orasys/redo04.log
리두로그 파일 그룹 3을 새로운 위치에 추가
SQL> alter database add logfile group 3 ('/data/orasys/redo03.log') SIZE 100M;
Database altered.
리두로그 파일 그룹 3이 정상적으로 추가되었는지 확인
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 UNUSED ONLINE /data/orasys/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
SQL>
로그 스위치를 강재로 일으키며 상태값을 확인해본다.
SQL> alter system switch logfile;
System altered.
SQL>
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 ACTIVE ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 CURRENT ONLINE /data/orasys/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
SQL>
SQL> alter system switch logfile;
System altered.
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 INACTIVE ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /data/orasys/redo03.log
4 CURRENT ONLINE /data/orasys/redo04.log
SQL>
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#;
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/edo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /opt/oracle/oradata/redo03.log
네번째 리두로그 그룹 및 파일 추가
SQL> alter database add logfile group 4('/data/orasys/redo04.log') size 100M;
Database altered.
SQL>
리두로그 그룹 및 파일 추가 결과 확인
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#;
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /opt/oracle/oradata/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
기존 리두로그 파일 그룹중 하나 삭제
SQL> alter database drop logfile group 3;
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
4 UNUSED ONLINE /data/orasys/redo04.log
리두로그 파일 그룹 3을 새로운 위치에 추가
SQL> alter database add logfile group 3 ('/data/orasys/redo03.log') SIZE 100M;
Database altered.
리두로그 파일 그룹 3이 정상적으로 추가되었는지 확인
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 CURRENT ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 UNUSED ONLINE /data/orasys/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
SQL>
로그 스위치를 강재로 일으키며 상태값을 확인해본다.
SQL> alter system switch logfile;
System altered.
SQL>
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 ACTIVE ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 CURRENT ONLINE /data/orasys/redo03.log
4 UNUSED ONLINE /data/orasys/redo04.log
SQL>
SQL> alter system switch logfile;
System altered.
SQL> select a.group#, a.status, b.type, b.member from v$log a, v$logfile b where a.group#=b.group#(+);
GROUP# STATUS TYPE MEMBER
---------- ---------------- ------- ----------------------------------------
1 INACTIVE ONLINE /opt/oracle/oradata/redo01.log
2 INACTIVE ONLINE /opt/oracle/oradata/redo02.log
3 INACTIVE ONLINE /data/orasys/redo03.log
4 CURRENT ONLINE /data/orasys/redo04.log
SQL>
'IT 기술 > Oracle' 카테고리의 다른 글
Oracle Pro*C 전처리기에서 PCC-02081 오류 발생시 처리 방법 (0) | 2009.07.14 |
---|---|
Pro*C 설정 (0) | 2009.07.09 |
Oracle에서 날짜 자료를 원하는 형태로 보여주는 법. (0) | 2009.06.10 |
Oracle 10g 관련 문서들입니다. (0) | 2009.05.22 |
Oracle 9i Streams 관련 문서 (0) | 2009.05.07 |