none
백업 및 복구관련

    질문

  • 안녕하세요!

    저는 사내의 DB를 담당하고 DBA입니다.

    MSSQL에서 작업자 실수에 의해서 테이블을 DROP을 했습니다.

    복구할수 있는 방법에는 어떤것들이 있나요?

    오라클에는 FLASHBACK이라는 기능으로 특정 시간대의 자료를

    복구하는 기능있다고 들었는데

    MSSQL도 가능하나요!

    또한 LDF파일만 가지고 과거의 DB변경내역을 볼수 있는 방법이

    있는지요?

    - 윤상철 올림 -

    2006년 9월 22일 금요일 오전 2:17

모든 응답

  • 다음의 조건이 만족되면 테이블 DROP 이전으로 복구가 가능합니다.

    - 해당 DB의 복구모델이 '최대'('대량로그'모델도 가능하나 제한적임)이고 DROP전 전체백업본이 존재

    - DROP이 수행된 이후 다음의 명령을 수행해 그때까지의 Transaction Log 백업을 받습니다.

    BACKUP LOG <dbname> TO DISK = '...' WITH NO_TRUNCATE

    위의 전체백업 및 마지막 트랜잭션 로그 백업본(전체백업과 마지막 트랜잭션로그 백업사이에 이미 받은 트랜잭션 로그 백업포함)을 이용하여 아래와 같이 데이터를 복원합니다. (우선 테스트서버에 복원시도하거나 다른 이름으로 복원시도하세요)

    1. 전체백업본 RESTORE

    RESTORE DATABASE <dbname> FROM '백업본 경로' WITH NORECOVERY

    2. 위의 전체백업본 이후 마지막 트랜잭션 로그 백업전까지 받아둔 트랜잭션 로그 백업본이 있다면 순차적으로 RESTORE함

    RESTORE LOG <dbname> FROM '백업본 경로' WITH NORECOVERY

    3. 마지막 트랜잭션로그 백업본을 STOPAT 옵션을 이용하여 장애가 발생하기전까지 적용

    RESTORE LOG pubs FROM disk = ‘마지막 트랜잭션 로그 백업본’

    WITH STOPAT = ‘2006-09-22 09:53:07.310’

    감사합니다

    박 상 준

    2006년 9월 22일 금요일 오전 3:03