최근 사이트에서 랜섬웨어로 서버자체가 날아간 적이 있다.
작년에 backup 받았던 begin/end 백업이 있었다 하지만 archive log file는 존재하지 않기에..불완전복구로 가야했다.
(expdp full backup본도 있었음)
일단 oracle을 설치해서 dumpfile로 tablespace 정보를 빼냈고 생성까지 하였다.
expdp log에 ora-01555 error 가 제일 큰 테이블에 있었고 (거의 업무에 모든 자료들 존재하는 300G짜리 테이블이었음..)
해당 테이블은 import가 안되었다.
(SR문의 했으나 .....................)

ORA-31693: Table data object "username"."table_name" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10_600653064$
그래서 hotbackup본을 해당 경로에 넣었고 controlfile을 다시 생성해주었다.
alter database backup controlfile to trace 로 빼냈고 이미 테이블스페이스들은 생성해놓은 상태라 조금의 수정을 하고 resetlogs로 올렸다. 당연히 alter database open resetlogs시 일관성으로 인한 복구필요 메세지가 나면서 open이 안된다.
_offline_rollback_segments 를 넣으려 했으나 옛날 롤백세그먼트들의 이름을 몰라서 따로 시도 하지않았고.
init file에 아래의 파라미터 두개를 넣고 올리니 open이 되었다.
데이터베이스의 open시 Active한 rollback segment를 통해 Rolling Backward 과정을 수행하게 되는데 이 Rolling Backward 과정을 진행하지 않게함 또한 active한 rollback segment와 undo tablespace를 삭제할 수 있도록 해줌
_allow_resetlogs_corruption=true
redo log 의 한계범위 내에서 데이터파일의 SCN이 틀어져 있거나 또는 recover시에 archive를 찾지 못해서 fail났을 경우, 즉 current redo log를 통해서 복구가 불가능할 경우, 억지로 current redo log를 reset log 시키고 open하는 파라미터
============================================================================================
'Oracle' 카테고리의 다른 글
| oracle instance 선택 화면 출력 스크립트 (0) | 2023.07.19 |
|---|---|
| TIMESTAMP를 통해 과거 DML 수행 횟수 조회 (0) | 2023.07.17 |
| oracle patch set 작업 (11.2.0.1 to 11.2.0.4) (0) | 2023.07.07 |
| ODA Database 삭제(WEB-console(Mgmt)안될때 - Derby db사용) (0) | 2023.07.07 |
| ora-600[kdsgrp1](index/table corrupt/crash) , ora-600[6006](check corrupt and smon kill db) (0) | 2023.07.04 |