-- 실전 오라클 백업과 복구(생능출판사, 서진수 지음), p.115
-- Redo log file 관리방법 익히기
SQL> select member from v$logfile;
os]du -h /u01/app/oracle/oradata/orcl/redo01.log
51M /u01/app/oracle/oradata/orcl/redo01.log
--1. 신규 그룹 생성
SQL> alter database add logfile group 4
'/u01/app/oracle/oradata/orcl/redo04_a.log' size 51M;
--2. 멤버 추가
SQL> alter database add logfile member
'/u01/app/oracle/oradata/orcl/redo04_b.log' to group 4;
--3. 멤버 삭제
SQL> alter database drop logfile member
'/u01/app/oracle/oradata/orcl/redo04_b.log';
--4. 그룹 삭제
SQL> alter database drop logfile group 4;
--5. 강제로 log switch 발생
SQL> alter database switch logfile;
--6. 강제로 checkpoint 발생
SQL> alter system checkpoint;
위의 3, 4번 과정을 진행해도 실제로 해당 파일은 지워지지 않는다. 3, 4번 명령어는 단지 control file 안에 있는
해당 그룹과 멤버의 정보만 지울뿐 실제 파일은 지우지 못 한다. 따라서 위 명령어들은 수행하고 난 뒤 반드시 DBA가 직접 OS 명령어로 해당 파일을 지워야 한다. 다른 그룹이나 멤버를 지우지 않도록 각별히 조심해야 한다. 그리고 Redo log file의 상태를 나타내는 것이 CURRENT / ACTIVE / INACTIVE 이렇게 3가지가 있다. 만약 DBA가 어떤 필요에 의해서 Redo log file을 삭제하고 싶다면 반드시 INACTIVE 상태로 만들고 위 3, 4번의 명령어로 삭제를 수행해야 한다.
-- 실전 오라클 백업과 복구(생능출판사, 서진수 지음), p.117
만약 어떤 Redo log 그룹을 삭제하고 싶다면 우선 해당 그룹의 상태가 Inactive인지 확인 후 만약 Current 상태였다면 먼저 Active 상태로 변경하고(alter system switch logfile;) 그 후에 Active 상태를 Inactive 상태로 변경하여(alter system ckeckpoint;) 삭제하여야 한다.
-- 실전 오라클 백업과 복구(생능출판사, 서진수 지음), p.117~p.121
os] sqlplus / as sysdba;
SQL> set line 200
SQL> col a.group# for 999
SQL> col member for a50
SQL> select a.group#, a.member, b.bytes/1024/1024 MB, b.archived, b.status
from v$logfile a, v$log b
where a.group#=b.group#
order by 1, 2;
SQL> alter database add logfile group 4
'/u01/app/oracle/oradata/orcl/redo04_a.log' size 51M;
SQL> alter database add logfile member
'/u01/app/oracle/oradata/orcl/redo04_b.log' to group 4;
SQL> alter system switch logfile;
SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo04_b.log';
SQL> !ls /u01/app/oracle/oradata/orcl
SQL> !rm -rf /u01/app/oracle/oradata/orcl/redo04_b.log
SQL> !ls /u01/app/oracle/oradata/orcl
--SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/redo04_a.log';
--그룹에 멤버가 1개일 경우 멤보는 삭제가 안되며 그룹을 지워야 한다.
SQL> alter database drop logfile group 4;
SQL> !ls /u01/app/oracle/oradata/orcl
SQL> !rm -rf /u01/app/oracle/oradata/orcl/redo04_a.log
SQL> !ls ls /u01/app/oracle/oradata/orcl
SQL>
cf. 절대 주의 사항 - Redo log file을 삭제할 때 절대 OS 명령어로 먼저 삭제하면 안 된다.
P.S.
alter database clear unarchived logfile group 1;
-- 위 명령어를 치면 control file의 정보를 보고 해당 그룹의 멤버를 자동으로 생성한다.
alter database drop logfile group 1;
alter database add logfile group 1
('/u01/app/oracle/oradata/orcl/redo01_a.log',
'/u01/app/oracle/oradata/orcl/redo01_b.log') size 5m;
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
Redo log file 관리 II - 추가 Redo log 멤버를 '/u01/app/oracle/disk2/'에 추가 (0) | 2012.12.27 |
---|---|
Control file과 Redo log file 관리 (0) | 2012.12.27 |
ORA-00346, ORA-00340 Error (0) | 2012.12.27 |
컨트롤 파일 다중화, Controlfile Multiplexing (0) | 2012.12.26 |
파라미터 파일 관리 (0) | 2012.12.26 |