테이블 데이터 복구 질문입니다.(commit 사용) 1 4 1,685

by 헐레벌떡 [Oracle 백업/복구] [2015.09.23 20:43:53]


안녕하세요.

 

다름이 아니라 금일 오전 9시쯤 10만건 정도 특정테이블에 특정컬럼 업데이트를 잘못한 상황입니다.ㅠㅠ

타임스탬프로 인한 백업은 이미 시간이 지나서 할 수 없는 상황입니다;

 

어느정도는 수작업으로 복구는 했지만 좀 더 명확한 방법이 있는지 궁금합니다.

DB서버에 스케쥴러로 인한 새벽2시쯤 핫백업 및 아카이브로그 백업이 되는걸로 알고 있습니다.

배치파일이랑 실제 용량은 얼마 안되는 파일들이더라고요 ㅠ

이 파일들은 내일 새벽에 갱신될거 같아 제 로컬로 백업을 받아논 상태입니다.

 

예를들어 개발DB에 백업된 데이타 적용 후 관련데이타만 뽑아 업데이트 시킬수 있을까 궁금합니다.

 

많은 도움과 지도 부탁드립니다.

 

은혜는 잊지 않겠습니다. __)

by 개발뉴비 [2015.09.24 09:30:01]

SELECT * FROM TABLE_NAME AS OF TIMESTAMP TO_TIMESTAMP('이전 데이터 시간', '날짜 포멧')

WHERE ... ... ...

이렇게 하면 업데이트 이전의 데이터를 조회할 수 있습니다.

몇일 이전 데이터 까지 조회가 가능한걸로 알고있어요...

복구가 잘 되시길 바랍니다~


by 헐레벌떡 [2015.09.24 10:14:19]

답변 감사합니다.

 

시간이 지난상황이라 안되는걸로 파악이 되는데

 

ORA-01555: snapshot too old: rollback segment number 5 with name "_SYSSMU5_520982619$" too small
 

이런 메세지가 나오네요.

 

하 답답하네요.


by 이재현 [2015.09.24 17:21:13]

로그 마이너로 작업 시간 아카이브 까서 돌리신 SQL 찾으시고, 원복스크립트 돌리세요 시간에 맞겠끔 소트 해서 돌리세요.

겁나 시면 테으블 업데이트 친거만 템프로 만드시고, 돌리시며 될듯합니다.


by 헐레벌떡 [2015.09.25 09:18:35]

재현님 답변 감사드립니다.

 

우선은 중요데이타만 수작업으로 복구한 상황입니다.

 

설명해주신 방법이 생소하긴 하지만 한번 알아봐야겠네요.

 

감사합니다.

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