Oracle - Redo log file 관리하기
Posted 05 1, 2011 18:09, Filed under: DataBase/Oracle
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.
# Redo log file 관리하기
-- 단계 1 : 현재 상태 확인하기 SQL> SET LINE 200 SQL> COL A.GROUP# FOR 99 SQL> COL MEMBER FOR A50 SQL> SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP # MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO INACTIVE 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO CURRENT -- 단계 2 : 신규 그룹(4번 그룹) / 멤버 추가 하기 SQL> ALTER DATABASE ADD LOGFILE GROUP 4 2 '/app/oracle/product/10.2.0/oracle/redo04_a.log' 3 SIZE 10M 4 ; 데이타베이스가 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO INACTIVE 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO CURRENT 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 YES UNUSED SQL> ALTER DATABASE ADD LOGFILE MEMBER 2 '/app/oracle/product/10.2.0/oracle/redo04_b.log' to group 4 3 ; 데이타베이스가 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO INACTIVE 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO CURRENT 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 YES UNUSED GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 4 /app/oracle/product/10.2.0/oracle/redo04_b.log 10 YES UNUSED SQL> ALTER SYSTEM SWITCH LOGFILE ; 시스템이 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO INACTIVE 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO ACTIVE 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 NO CURRENT GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 4 /app/oracle/product/10.2.0/oracle/redo04_b.log 10 NO CURRENT -- 단계 3 : 기존 멤버 삭제 / 그룹 삭제하기 - 여기선 4번 그룹을 삭제하려 합니다. SQL> ALTER SYSTEM SWITCH LOGFILE ; 시스템이 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO INACTIVE 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO ACTIVE 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 NO ACTIVE GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 4 /app/oracle/product/10.2.0/oracle/redo04_b.log 10 NO ACTIVE SQL> ALTER SYSTEM CHECKPOINT ; 시스템이 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO CURRENT 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO INACTIVE 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 NO INACTIVE GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 4 /app/oracle/product/10.2.0/oracle/redo04_b.log 10 NO INACTIVE SQL> ALTER DATABASE DROP LOGFILE MEMBER '/app/oracle/product/10.2.0/oracle/redo04_b.log' ; 데이타베이스가 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO CURRENT 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO INACTIVE 4 /app/oracle/product/10.2.0/oracle/redo04_a.log 10 NO INACTIVE --# ALTER DATABASE DROP LOGFILE MEMBER 로그파일 redo04_b.log 를 삭제하면 -- 위와같이 검색은 되지 않지만 물리적인 파일은 해당 위치에 그대로 남아있습니다. -- 수동으로 삭제를 해줘야 합니다. SQL> ALTER DATABASE DROP LOGFILE MEMBER '/app/oracle/product/10.2.0/oracle/redo04_a.log' ; ALTER DATABASE DROP LOGFILE MEMBER '/app/oracle/product/10.2.0/oracle/redo04_a.log' *1행에 오류: ORA-00361: 마지막 로그 멤버 /app/oracle/product/10.2.0/oracle/redo04_a.log는 그룹 4를 옮길수 없습니다 -- 그룹에 MEMBER 가 1개일 경우 MEMBER는 삭제가 안되며 그룹을 지워야 합니다. SQL> ALTER DATABASE DROP LOGFILE GROUP 4 ; 데이타베이스가 변경되었습니다. SQL> SELECT A.GROUP#, A.MEMBER, B.BYTES/1024/1024 MB, B.ARCHIVED, B.STATUS 2 FROM V$LOGFILE A, V$LOG B 3 WHERE A.GROUP#=B.GROUP# 4 ORDER BY 1, 2 5 ; GROUP# MEMBER MB ARCHIV STATUS ---------- -------------------------------------------------- ---------- ------ -------------------------------- 1 /app/oracle/product/10.2.0/oracle/redo01.log 50 NO CURRENT 2 /app/oracle/product/10.2.0/oracle/redo02.log 50 NO INACTIVE 3 /app/oracle/product/10.2.0/oracle/redo03.log 50 NO INACTIVE -- 역시 redo04_a.log 파일을 삭제하면 위와같이 검색은 되지 않지만 -- 물리적인 파일은 해당 위치에 그대로 남아있습니다. -- 수동으로 삭제를 해줘야 합니다.
자료 출처 : 서진수 지음 - 원리부터 실무까지 오라클 백업과 복구
"DataBase / Oracle" 분류의 다른 글
| Oracle - 바인드 변수에 대하여(테스트) (0) | 2012/05/06 |
| Oracle - 디폴트 롤, DBA, CONNECT, RESOURCE (0) | 2012/04/27 |
| Oracle - 권한 및 롤 관리 (0) | 2012/04/27 |
| Oracle - SQL*PLUS의 SYSDBA 접근 제어 (0) | 2012/04/27 |
| Oracle - PFILE, SPFILE 에 관하여 (0) | 2012/04/27 |
| Oracle - Listener 포트 변경 (0) | 2012/04/27 |
| Oracle - 사용자 패스워드 정책 변경 (0) | 2012/04/03 |
| Oracle - SYS_CONTEXT 함수를 이용하여 접속 세션 정보 추출 (2) | 2011/12/13 |
| Oracle - ASSM(Automatic Segment Space Management) (0) | 2011/09/18 |
| Oracle - 사용자의 테이블 스페이스 검색및 이동 (0) | 2011/09/18 |
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.
Response :
0 Trackback
,
0 Comment
Trackback URL : http://develop.sunshiny.co.kr/trackback/614