백업과 복구/Redo log
17. 다중화 된 상태에서 inactive 리두 로그 멤버를 손상시키기
오운학
2024. 4. 14. 19:11
OCP문제 : 위의 상태에서 DB를 내렸다면 DB가 정상적으로 운영되는가?
■ 실습 구성
#1 지금 현재 있는 그룹에 멤버를 2개씩 유지하게 하세요
#2. 1번 그룹만 current이고 나머지는 inactive상태가 되게 하시오
#3. 3번 그룹의 멤버중 하나를 삭제하세요
#4. 로그스위치를 수동으로 여러 번 일으키는게 가능한지 확인하세요
※ 리두 로그 그룹의 멤버를 삭제할 때 os의 해당 파일이 같이 삭제가 안되었다
그래서 다음과 같이 따로 삭제해야한다
그런데 이때 주의할 사항이 @/home/oracle/logfile.slq 을 해서 결과에 없는 logfile 멤버를 지워야지 기존에 잘쓰고 있던 멤버를 지우면 안된다
◆ 실습 구현
기존에 있던 redolog0*b.log 파일들을 지우기
#1 지금 현재 있는 그룹에 멤버를 2개씩 유지하게 하세요
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo01b.log' to group 1;
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo02b.log' to group 2;
alter database add logfile member '/u01/app/oracle/oradata/Ouh/redo03b.log' to group 3;
#2. 1번 그룹만 current이고 나머지는 inactive상태가 되게 하시오
@logsw
#3. 3번 그룹의 멤버중 하나를 삭제하세요
오라클은 지금 redo03b.log가 없는지 모른다
-> LGWR이 redo03b.log를 사용하려 할 때 알게된다
#4. 로그스위치를 수동으로 여러 번 일으키는게 가능한지 확인하세요
alter system switch logfile;
@/home/oracle/log_status
alter system switch logfile;
@/home/oracle/log_status
파일이 깨진건 알고 있지만 rodo03.log가 남아있어서 정상적으로 운영되지만
alert로그 파일에 계속해서 메시지를 남긴다 -> 주인님 redo03b.log가 없어요!!!
alter database drop logfile member '/u01/app/oracle/oradata/Ouh/redo03b.log';