mysql 백업 및 복구방안

지수아비의 이미지

mysql DB 를 매일 아침 6시에 백업을 하고 있는데요...
만약에 오전 10시쯤에 장애로 인하여 자료가 지워졌을경우 오전 6시에 백업된걸로 복구를 합니다.
그럼 6시부터 10시까지 4시간 동안의 자료는 복구가 안되는데요.
이 부분에 대한 대처 방안이 있을까요?

오라클에서는 undo log 인가?? 맞는지는 모르겠지만...
백업시점부터 DB가 변경된 로그를 저장한후에 필요한경우 복구가 가능하다고 하는데요....

mysql에는 그런 기능이 없나요?

lacovnk의 이미지

mysql의 binary log를 살펴보세요

http://dev.mysql.com/doc/refman/5.1/en/binary-log.html

지수아비의 이미지

아~ 그런 기능이 있었네요.
좋은 정보 감사합니다.

망치의 이미지

혹시 mssql 의 경우엔 이런경우에 어떻게 하는지 아시나요?
mssql 을 조금 쓰고 있는데 왠지 gui 가 넘 힘들어요 ㅠㅠ
---------------------------------------
http://www.waitfor.com/

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

nixor의 이미지

"트랜잭션 로그 백업"이라는 기능으로, 지정한 시간마다 로그백업이 가능합니다.
저같은 경우는, 매30분마다 로그백업을 걸어두었지요..
장애발생시, 최근 30분전의 데이터까지 복구할 수 있겠습니다..
1초단위로 해도 되겠지만..부하가 크지 않을까 해서...

MySQL은 좀..허접DB라...그런 개념들을 이제 만들어 나가고 있는 후발주자라고 볼수 있게씁니다..

huhushow의 이미지

로그 백업은 한 파일에서도 초 단위로 복구 가능합니다. 말 그대로 로그 니까요.
따라서 로그이기 때문에 30분 단위로 백업 하신다면(새로운 파일을 생성하신다면...)
가장 최근 로그로 복구하시려면 마지막으로 db백업을 한 후부터 지금까지의 시간*2개의 로그파일을 순차적으로 복구하셔야 하는데...... 삽질입니다 -_-;;;
그리고 정상적인 모든 rdbms들은 모든 트랜잭션 로그들을 로그파일에 기록합니다. mssql에서는
.ldf 파일이죠. 로그백업을 하면 이 파일의 용량이 줄어드는건(할당량은 안 줄지만 실행량은 줍니다.) 이 파일에 있던 데이터를 백업파일로 옮기기 때문이죠. 따라서 1시간에 한번 로그백업을 하던 6시간에 한번 로그백업을 하던 장애복구시 가장 최근 데이터로 복구하려면 이 ldf 파일이 손상되지 않았다면 복구를 원하는 시점에서 로그백업 한번 더 하고 그 파일로 복구하심 됩니다.(논리적 데이터 손상의 경우에는)