출처 : http://www.devpia.com

[상황]
1:00 FULL BACKUP완료.
2:00 INSERT TABLE1 VALUES("데이터A")
3:00 INSERT TABLE1 VALUES("데이터B")
4:00 DELETE TABLE1 -- 실수로 데이터를 지움


위의 상황에서 데이터B까지 전부복구하기를 원한다. 하지만, 데이터A와 데이터B는 백업을 해놓지 않아
1:00 FULL BACKUP파일을 복구하여도 데이터A,데이터B는 복구할 수 없다.
그렇다면, 어떻게 데이터를 살릴수 있는 가 ?
1. 로그백업을 수행한다. -- 로그파일에는 4:00까지 모든 작업들이 기록되어 있다.

2. 로그백업한 것을 stopat옵션을 사용하여 특정한 시간을 기준으로 복구한다.
-- 왜냐하면 로그백업한 내용에는 insert작업도 있지만, delete작업도 있다. 따라서, 3:00까지만
데이터를 복구해야만 데이터A,데이터B가 복구된다.


-- stopat을 사용한 T - SQL 참조 --

restore database testdb from testdbback
with norecovery -- 회복프로세서를 시작하지 않는다.
restore log testdb from testdbback
with recovery, stopat ="jan 01,2000 3:00 am"
-- 3:00까지의 데이터를 복구하고,with recovery로 회복프로세서를 시작한다.


-- 주의 사항 --
모든 백업의 시작은 fullbackup이다. 한 번의 fullbackup도 없다면, 로그백업을 하더라도 복구할 수가 없
다. 그리고, 로그가 생성되지 않는 옵션을 설정해 놓았다면, 로그가 없으므로 로그백업은 무의미하다.
2005/06/15 13:48 2005/06/15 13:48

트랙백 주소 :: http://thinkit.or.kr/database/trackback/151