oracle 리두 로그 버퍼 캐시에 대한 질문 0 4 2,087

by 푸른기린 [Oracle 백업/복구] [2014.09.03 11:43:56]


안녕하세요.

 

오라클의 경우 리두로그버퍼캐시에 변경된 사항이 적용되고

특정 이벤트가 발생할때(커밋, 체크포인트, 버퍼가 1/3을 넘거나, DBWR이 쓰기작업을 하기전)

LGWR이 리두로그 파일에 데이터를 쓰는 것으로 알고있습니다.

그리하여 비정상적인 종료나 복구시 이 리두로그 파일을 이용하여 데이터를 복구하는것으로 알고있는데,

리두로그버퍼캐시에 존재하는 자료들이 리두로그파일에 쓰여지기전에

시스템이 내려가거나 비정상적인 종료를 맞이한다면, 그사이 쌓인 자료들은 복구가 불가능한것인지 궁금합니다.

 

 

이러한 궁금증은, 몽고DB를 알아보던중 몽고DB가 메모리 기반이고

메모리에서 특정시점에 파일에 데이터를 쓰는데, 파일에 쓰기전에 비정상적인 종료를 맞이하면

작업 데이터가 날아가는것으로 알고있습니다. 이 점때문에 몽고DB사용하기가 불안하다고들 하는데

 

이러한점이 오라클과 다른것인지. 아니면 동일한것인지 또는 다른 개념인지 궁금하여 질문을 남기게 되었습니다.

 

 

요약하자면

1. 오라클 또한 리두로그파일에 쓰기전 날아간 리두로그버퍼의 데이터는 복구가 불가능한지

2. 이 점이 몽고DB의 데이터가 날아가는것과 차이가있는지. 개념이 다른것인지

에 대해 질문을 드립니다.

 

감사합니다.

 

 

 

by DJ [2014.09.03 14:52:29]

직접적인 질문에 답은 아닌것 같은데요. 참고하시기 바랍니다.

언급하신 것 처럼 기본적으로 Oracle은 commit 이 완료된 data는 redo log file에 저장이 되기 때문에 작업이 완료된(Commit된) 자료가 날아갈 일을 없는거죠.

몽고DB는 아래 내용을 한번 참조해 보시기 바랍니다.
http://docs.mongodb.org/manual/core/write-concern/


by 푸른기린 [2014.09.03 16:05:42]

먼저 답변 감사합니다.

그렇다면, 오라클의 경우 리두버퍼에서 파일로 쓰지 못한 자료는 날아가는것이 맞는것인가요?


by DJ [2014.09.04 09:16:10]

오라클과 상관없이 리두버퍼 (메모리)에서 화일로 쓰여지기 전에 갑자기 시스템 전원이 내려가서 메모리가 날라간다면야 (전원 코드를 직접 확 빼지 않는한 실제 일어날 경우는 거의 없다고 판단됩니다) 데이타를 잃을 수도 있겠습니다.

 


by 푸른기린 [2014.09.05 14:15:21]

네 감사합니다.

생각해보니 실제로는 버퍼캐시의 데이터가 날아가는 문제는 그렇게 크리티컬해보이지 않고

트랜잭션의 지원여부에 따라 디스크 쓰기작업시 중단되는 문제가 더 큰것같네요. ㅎㅎ

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