- Fail이 발생하는이유
- File Loss
- User Error
- Application Error
- Media Failure(Disk + Disk Controller)
- 잘못된 논리적 흐름에 의한 손상
- Critical vs Noncritical
- 시스템에 영향을 주지 않는 것들 -> Non Critical
- 시스템에 영향을 주는 것들 -> Critical
- 해결책
- 파일을 새로 생성한다
- 파일을 재작성한다
- 백업된 데이터로부터 복구수행한다
- Index의 강점
- 검색속도를 빠르게한다
- 제약조건의 강점
- Index Table Space가 날아갈경우 시스템에 영향을 줄수있다
- Temporary Tablespace가 날아갈경우 복구될 때까지 Query가 안될수 있다
- Losing a TEMPFILE
- 발생이유 : 손상이거나 공간부족
- 해결책
- 파일이 날아간 상태에서 DB를 Shutdown 했다가 Startup을 해주면 자동으로 TEMP File이 생성된다.
- 수동생성작업
- ALTER TABLESPACE temp ADD DATAFILE
'경로/파일이름.dbf' SIZE nM
- 기존파일은 완전히 물리적으로 삭제
- ALTER TABLESPACE temp DROP TEMPFILE
'경로/기존파일이름.dbf';
- ALTER TABLESPACE temp ADD DATAFILE
- Log Group Status
- CURRENT
- 현재 LWWR가 Writing 중이다!
- Log Switch가 발생하면 ACTIVE 상태로 간다
- ACTIVE
- Instance Recovery 할때 필요
- ALTER SYSTEM CHECKPOINT -> Inactive 상태로 바꾼다
- INACTIVE
- Instance Recovery에 필요하지 않다
- UNUSED
- Clear라는 명령어로 초기됐거나 생성 직후의 상태
- Clearing_Current : I/O Error가 발생한 상태
- Member가 손상이 됐을경우
- 논리적 삭제를 하고
- ALTER DATABASE DROP LOGFILE MEMBER
'경로/파일이름';
rm '경로/파일이름';
- ALTER DATABASE DROP LOGFILE MEMBER
- Member 추가준다
- ALTER DATABASE ADD LOGFILE MEMBER
'경로/파일이름';
TO GROUP N
- ALTER DATABASE ADD LOGFILE MEMBER
- Index의 재생성
- 대용량의 DB일 경우 상당히 많은 시간이 걸린다. 그래서 다음 옵션들을 이용하면 시간을 조금 절약할수 있다
- PARALLEL
- 다중프로세서를 이용해서 병렬작업
- NOLOGGING
- 복구정보를 생성할것인것인가, 말것인가
- NO SORT
- 정렬을 하지 않는다
- Index가 손상되었다면 다시 만든것보다 재생성하는 것이 더 빠르다.
- DATAPUMP로 expdp output을 받아 놓는것도 좋은 방법중 하나다
- Password File
- REMOTE_LOGIN_PASSWORDFILE 파라미터가 NONE으로 되어 있다면 인증하지 않는다
- REMOTE_LOGIN_PASSWORDFILE 파라미터가 EXCLUSIVE로 되어 있다면 Share 모드드(1개의 패스워드로 다중 접속) 가능
- 패스워드 파일을 재생성하는 방법
- # orapwd file=$ORACLE_HOME/dbs/orapwORCL
password=SYSPASSWORD entries=n - 주의 : NT : orapwSID.ora
UNIX : orapwSID
- # orapwd file=$ORACLE_HOME/dbs/orapwORCL
- Recovery Method
- 사용자에 의한 복구방법
- File을 직접 이동시키고 관리한다
- OS의 CP CMD 혹은
- SQL>Recover
- datafile : Only Open에서 해야한다!
- database : Only mount에서 해야한다! -> 전체 DB에 문제가 생겼거나, System TBS가 날아갔을 경우
- tablespace
- AUTOMATIC 옵션을 주면 자동으로 Redo Log를 덮어쓴다
- SQL>SET AUTORECOVERY ON -> 해놓으면 AUTOMATIC 옵션이 자동으로 들어간다
- RMAN에 의한 복구방법
- RMAN이 갖고 있는 복구기능을 사용해서 관리
- EM에서 복구 과정을 수행할수도 있다
- EM에 의한 복구방법
- 유지관리 -> 복구수행
- 시스템 TBS에 문제가 생겼을 경우에는 직접 RMAN이나 수동으로 작업해야한다
- 완전복구와 불완전 복구
- 완전복구 : 문제 발생시 바로 이전 시점
- 필수적으로 아카이브가 필요하다!
- 필수적으로 아카이브가 필요하다!
- 불완전 복구
- 불완전한 특정시점(완전한 아키이브까지만)
- 특정 아카이브에 손상이 생겼을 경우
- Cancel을 써서 특정한 아카이브 까지만 복구한다
- ALTER DATABASE OPEN RESETLOGS으로 OPEN 한다
- Type
- Tile-based Recovery
- Cancle-Based Recovery
- Change-Based Recovery
- Log Sequence Recover
- 복구 절차
- Shutdown
- Restore
- Mount The Database
- Recover Database
- ALTER DATABASE OPEN RESETLOGS
- 현재까지의 아카이브로그 삭제
- Whole/Full Backup 수행
- 불완전한 특정시점(완전한 아키이브까지만)
- 복구 시나리오
- Time Based Recovery
- DB 종료후 Restore -> MOUNT상태로 가서 -> RECOVER -> RESETLOGS 옵션으로 OPEN
- DB 종료후 Restore -> MOUNT상태로 가서 -> RECOVER -> RESETLOGS 옵션으로 OPEN
- Cnacle Based Recovery
- 현재 Redolog가 다중화 되어 있지 않다
- Current 상태의 Archive가 날아갔다
- 약 30분정도의 Data가 날아갔다
- 이럴경우에는 그냥 다시 수동으로 Data를 입력하는 것이 더 빠를수도있다
- DB 종료후 Restore -> MOUNT상태로 가서 -> RECOVER DATABASE UNTIL CANCEL로 복구시작후 RESETLOGS 옵션으로 OPEN 한다
- RMAN을 이용한 불완전 복구 작업
- LNS_LANG과 LNS_DATE_FORMAT이 지정되어 있지 않은경우 설정해줘야한다
- SYSDBA 권한을 갖고있는 RMAN 계정으로 접속
- Mount 상태로 간다 -> 수동으로 다중채널을 할당 -> 모든 Data File을 Restore, RECOVER를 한다. (UNTIL TIME, UNTIL SEQUENCE, INTIL SCN) -> RESETLOGS 옵션으로 OPEN 한다
- RUN {
SET INTIL TIME='YYYY-MM-DD-12H:MI:SS';
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;
다음검색