mysql 백업 및 복구방안
글쓴이: 지수아비 / 작성시간: 수, 2010/04/21 - 2:29오후
mysql DB 를 매일 아침 6시에 백업을 하고 있는데요...
만약에 오전 10시쯤에 장애로 인하여 자료가 지워졌을경우 오전 6시에 백업된걸로 복구를 합니다.
그럼 6시부터 10시까지 4시간 동안의 자료는 복구가 안되는데요.
이 부분에 대한 대처 방안이 있을까요?
오라클에서는 undo log 인가?? 맞는지는 모르겠지만...
백업시점부터 DB가 변경된 로그를 저장한후에 필요한경우 복구가 가능하다고 하는데요....
mysql에는 그런 기능이 없나요?
Forums:
mysql의 binary log를
mysql의 binary log를 살펴보세요
http://dev.mysql.com/doc/refman/5.1/en/binary-log.html
감사합니다.
아~ 그런 기능이 있었네요.
좋은 정보 감사합니다.
혹시 mssql 의 경우엔
혹시 mssql 의 경우엔 이런경우에 어떻게 하는지 아시나요?
mssql 을 조금 쓰고 있는데 왠지 gui 가 넘 힘들어요 ㅠㅠ
---------------------------------------
http://www.waitfor.com/
---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/
MSSQL은요..
"트랜잭션 로그 백업"이라는 기능으로, 지정한 시간마다 로그백업이 가능합니다.
저같은 경우는, 매30분마다 로그백업을 걸어두었지요..
장애발생시, 최근 30분전의 데이터까지 복구할 수 있겠습니다..
1초단위로 해도 되겠지만..부하가 크지 않을까 해서...
MySQL은 좀..허접DB라...그런 개념들을 이제 만들어 나가고 있는 후발주자라고 볼수 있게씁니다..
로그백업 개념을 잘못 알고 계신듯 하군요.
로그 백업은 한 파일에서도 초 단위로 복구 가능합니다. 말 그대로 로그 니까요.
따라서 로그이기 때문에 30분 단위로 백업 하신다면(새로운 파일을 생성하신다면...)
가장 최근 로그로 복구하시려면 마지막으로 db백업을 한 후부터 지금까지의 시간*2개의 로그파일을 순차적으로 복구하셔야 하는데...... 삽질입니다 -_-;;;
그리고 정상적인 모든 rdbms들은 모든 트랜잭션 로그들을 로그파일에 기록합니다. mssql에서는
.ldf 파일이죠. 로그백업을 하면 이 파일의 용량이 줄어드는건(할당량은 안 줄지만 실행량은 줍니다.) 이 파일에 있던 데이터를 백업파일로 옮기기 때문이죠. 따라서 1시간에 한번 로그백업을 하던 6시간에 한번 로그백업을 하던 장애복구시 가장 최근 데이터로 복구하려면 이 ldf 파일이 손상되지 않았다면 복구를 원하는 시점에서 로그백업 한번 더 하고 그 파일로 복구하심 됩니다.(논리적 데이터 손상의 경우에는)