ORACLE 복구 방법 0 3 895

by 보컬 [Oracle 백업/복구] [2017.12.08 00:51:07]


안녕하세요.

ORACLE 백업 방법에 대해 궁금한 것이 있어 이렇게 글을 남기게 되었습니다.

먼저 오라클은 아카이브 로그 상태이며, 매일 데이터파일을 백업을 받고 있는 상태 입니다.

 

어느날 개발자가 특정 테이블에서 DELETE 쿼리를 실행 후 COMMIT 을 하였습니다.

이 때 DELETE 를 하기 전 상태로 백업을 할려면 어떠한 방법이 있을까요 ?

 

제가 알고 있는 방법은,

1. DB를 셧다운,

2. 현재의 데이터 파일들은 다른 디렉토리에 이동,

3. 기존에 백업 받아놨던 데이터 파일들을 현재의 데이터파일 위치에 복사,

4. MOUNT 상태로 STARTUP

5. RECOVER DATABASE UNTIL TIME '특정 시간 입력'

6. ALTER DATABASE OPEN RESETLOGS

 

이런 순서로 복구 한다고 알고 있습니다만,

저 위의 방법들 외에 다른 방법이 있을까요 ?

by 마농 [2017.12.08 08:40:10]

플래시백 쿼리를 이용하는게 간단할 듯 합니다.


by 보컬 [2017.12.08 09:12:26]

플래시백 쿼리도 알고 있습니다만,

만약에 시간이 어느 정도 소요된 다음에 복구를 해야 한다면, 위의 방법외에 다른 방법도 있는지 궁금합니다.


by 그로밋 [2017.12.08 10:32:48]

DB를 셧다운하기 전에 alter database backup controlfile to trace; 를 수행해서 이 트레이스파일을 모든 데이터파일 (dbf) 파일들과 잘 보관하세요.  그래야지 만약 복구가 실패하더라도, 현재 상태로 문제없이 돌아 올수 있읍니다.

서버에 여유가 있으면, 백업데이터파일들로 임시 디비를 만들고, 거기서 특정 테이블만 export하고 이 것을 현재 디비로 import하는 방법이 있읍니다.  (만약의 경우를 대비해, import하기전 현재의 테이블을 백업혹은 export하는것이 좋읍니다.)

오라클 버젼 12c에서는 RMAN 백업에서 특정 테이블만 복구하는 옵션이 있읍니다.

Full database export나 중요한 schema export를 주기적으로 하는것도 이런 경우에 유용합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입