|
▶ 이중화된 온라인 리두 로그의 온라인 리두 로그 멤버 손실 데이터베이스의 온라인 리두 로그가 이중화되어 있고 각 온라인 리두 로그 그룹 중 적어도 한 멤버가 매체 장애의 영향을 받지 않은 경우 오라클은 정상적으로 작동한다. (오류 멧시지가 데이터베이스의 LGWR 추적파일과 ALTER파일에 기록)
- 하드웨어 문제가 일시적인 경우 문제를 해결한다. 문제를 해결한후에는 LGWR은 이전에는 사용할 수 없었던 온라인 리두 로그 파일을 액세스한다.
- 하드웨어 문제가 영구적인 경우. DROP명령을 사용하여 손상된 멤버를 삭제하고 ADD명령어를 사용하여 새 맴버를 추가한다.
▶ 온라인 리두 로그 그룹의 모든 온라인 리두 로그 멤버 손실 매체 장애로 온라인 리루 로그 그룹의 모든 멤버가 손상된 경우 매체 장애의 영향을 받은 온라인 리두 로그 그룹 유형과 데이터베이스의 아카이브 모드에 따라 다른 생황이 발생할 수 있다. V$LOGFILE에서 파일명을 찾은 후 손실된 파일 상태(비활성화된 상태인지 확인)를 확인하기 위해 손실된 파일에 해당하는 그룹 번호를 찿는다.
SELECT * FROM v$logfile;
GROUP# STATUS MEMBER ----------------------------------------------------------------------------------------- 0001 log1 0002 log2 0003 log3
SELECT * FROM v$log;
GROUP MEMBER STATUS ARCHIVED ------------------------------------------------------------------------------------------------------------- 0001 1 INACTIVE YES 0002 1 ACTIVE YES 0003 1 CURRENT NO
● 비활성화된 온라인 리두 로그 그룹 손실 -비활성화된 온라인 리두로그 그룹만이 일시적인 매체 장애의 영향을 받았을 경우 문제점을 수정. LGWR은 필요시 해당 그룹을 재사용할 수 있다.
- 매체 장애로 인해 비활성화된 온라인 리두 로그 그룹에 영구적이로 액세스할 수 없게 되면 손상된 비활성화된 온라인 리두 로그 그룹은 정상 데이터베이스 작업을 중단할 것이다.
데이터베이스가 종료되기 전에 문제를 발견했다면 ALTER DATABASE CLEAR LOGFILE 명령어를 사용한다.
데이터베이스를 이미 종료했다면 다음 작업 수행 .1. 열린 데이터베이스를 SHUTDOWN ABORT하여 데이터베이스 종료.
2. 새인스턴스를 시작하고 데이터베이스를 마운트한다. MOUNT 옵션을 사용
3. 손실된 로그가 아카이브된 경우 ALTER DATABASE CLEAR LOGFILE 명령어 실행
4.손실된 로그가 아카이브되지 않은 경우 ALTER DATABASE CLEAR UNARCHIVE LOGFIEL 명령어를 실행하고 즉시 데이터베이스를 백업한다. ALTER DATABASE 명령어에 BACKUP COMROLFILE 옵션을 사용하여 데이터베이스의 제어 파일을 백업한다. 아카이브되지 않은 로그를 지우면 아카이브하지 않고도 재사용할 수 있다. 그러나 파일이 로그의 첯 번째 변경 이전에 오프라인으로 설정되지 않았다면 로그의 마지막 변경 전에 사작된 백업은 사용할 수 없다. 따라서 지워진 백업 복구 시 로그 파일이 필요하다면 해당 백업이 복구할 수 없게 된다. 지워진 아카이브되지 않은 로그를 온라인으로 설정하려는 오프라인 데이터 파일이 있다면 UNRECOVERABLE DATAFILE 키워드가 필요하다. 데이터 파일을 온라인으로 설정하는데 필요한 리두로그가 지워지고 복사본도 없으므로 데이터 파일과 해당 테이블 스페이스는 데이터베이스에서 삭제 되어야 한다.
주: ALTER DATABASE CLEAR LOGFILE명령어는 다음과 같은 두가지 경우에 매체 장애로 인한 입출력 오류로 실패할 수 있다. -현재 구성된 로그 파일 이름으로 로그 파일을 재생성하여 대체 저장 영역장치에 로그 파일의 위치를 재지정 할 수 없을 경우 -이름이 정확하지 않거나 사용할 수 없어 로그 파일을 재생성하기 위해 현재 구성된 로그 파일 이름을 재사용 할 수 없을 경우
위의 두가지 경우 입출력 오류가 발생하기 전에 CLEAR LOGFILE 명령어를 사용하여 로그 파일 상태를 "being cleard"와 "not requiring archiving" 으로 변경하기 위해 제어 파일을 갱신한다. 입출력 오류는 CLEAR LOGFILE 이 새로그 파일 생성을 시도하고 새 로그 파일에 0을 쓰는 단계에서 발생한다.
이 시점에서 다음 명령어를 순서대로 실행하여 복구를 완료할 수 있다. -새 이름으로 로그 파일을 추가한다. - 기존 이름의 로그 파일을 삭제한다.
이제 데이터베이스를 열 수 있다.
● 활성화된 온라인 리두 로그 그룹 손실 데이터베이스가 아직 실행 중이고 손실된 활성화 로그가 현재 로그가 아닌 경우 ALTER SYSTEM CHECKPOINT 명령어를 사용할 수 있다. 명령어 성공적으로 실행되면 실제 활성화된 로그는 비활성화 된다.
1. 일시적인 매체 장애인 경우 필요시 오라클이 해당 그룹을 재사용 할 수 있도록 문제 해결
2. 데이터베이스가 NOARCHIVELOG 모드고 영구적인 매체 장애로 활성화된 온라인 리두 로그 그룹에 액세스할 수 없는 경우 데이터베이스를 전체 백업으로 복원 데이터베이스를 복원한 후 RESETLOGS 옵션을 사용하여 작업을 제수행하고 데이터베이스를 연다. 백업 이후에 이루어진 갱신 사항을 손실되었으므로 재실행되어야 한다. 데이터베이스를 종료하고 전에 오프라인 백업을 수행한다.
3. 데이터베이스가 ARCHIVELOG 모드인 경우 불완전 매체 복구 수행해야 한다. 손상된 로그 이전의 로그를 사용하여 복구하는데 대한 내용을 취소에 준한 복구,시간에 준한 복구수행, 변경 사항에 준한 복구 수행에 있는 절차 사용한다. 손실된 리두 로그에 현재 이름이 새로 생성된 온라인 리두 로그 그룹을 새 위치로 이름을 변경하려면 RENAME 명령어를 실행한다.
4. RESETLOGS 옵션을 사용하여 데이터베이스를 연다.
주: 불완전 복구가 끝난 시점부터 현재까지 실행된 모든 갱신 사항은 재실행되어야 한다
▶ 여러 리두 로그 그룹 손실 가장 어려운 것에서 가장 쉬운 것까지 어려움의 정도는 다음과 같다. 1. 현재 온라인 리두 로그 2. 활성화된 온라인 리두 로그 3. 아카이브되지 않은 리두 로그 4. 비활성화된 온라인 리두 로그 |