노아카이브 로그 모드에서 복구

 

Case 1. 노아카이브 모드에서 복구가 가능한 경우. (전체파일 복원)

 

 [준비 : 노아카이브 모드에서 오류발생] 

  1. archive 상태인지 no archive 상태인지 조회.

 

 2. noarchive mode로 변경해주기위해 mount상태로 open해서 변경한다음에 db를 다시 킨다.

 

 3. no archive mode인 것을 확인.

 

 4. users01.dbf 파일을 삭제한 후, 해당 tablespace에 table을 생성해서 값을 넣어준다. (commit)

 

 5. switch log를 일으키다보면 에러가 난다.(3번째에)

 

 

[해결]

1. sys로 로그인해서 db를 startup 하면 mount까지만 되고, user01.dbf파일이 없다는 오류가 난다.

 

2. backup file에서 copy해서 복구한 후 recover tablespace users 명령어를 내린다.(전체파일 복원)

 ->아까 logswitch를 많이 일으키지 않아서 redo log에 파일이 남아있었다. 그래서 복원이 바로 됨.

3.  db를 open한다.

 

 

 

 



 

 

 

 

Case2. 노아카이브 모드에서 복구가 불가능한 경우.(장애가 난 파일 포기) (아카이브 로그가 없는 경우)

 

 

 [준비 : noarchive mode에서 에러 발생]

 

 1. datafile을 조회한 후, log switch를 계속 일으키면 계속 덮어써버리므로 log file에서 기록된 SCN이 없어지게 만든다.

 

2. log switch 계속 일으켜준뒤, users01.dbf 파일을 삭제하는 오류를 발생시킨다.

 

3. table을 생성하고 값을 insert 시켜준뒤 commit 한다.

 

4. log switch를 일으킨다.

 

 

[해결]

1. db를 껐다 키면 에러 발생하면서 켜지지 않는다.

 

2. 복원해주기위해 copy한 뒤, recover tablespace users 명령어를 내리면 아까 log switch를 너무 많이 일으켜서, log file을 덮어버리는 바람에 SCN이 남지 않아서 복원할 수 없다.

 

3. 이 때 해당 파일을 더이상 쓰지 않겠다고 명령어를 친다. : alter database datafile '경로' offline drop

 

4. db를 킨후, 확인해보면 users01.dbf 파일이 비어있다. (용량 없음)

 

 



 

 

Case3. 노아카이브 모드에서 임시 디렉토리에 data file을 이동시키고 복원. 

???

 

Print Friendly and PDF Posted by JJ*
: