본문 바로가기
TechNical/MS SQL

다른 경로 + 트랜젝션 + 시간 기반 복구

by 강멍멍이 2008. 2. 20.
반응형

데이터베이스를 관리함에 있어서 백업은 매우 중요합니다.
소중한 데이터가 언제 날라갈지 모르기 때문에 항상 백업을 받아 두어야죠.
그렇게 백업을 받아 두었다면 문제가 발생 했을때 딱 하고 써 먹어야 합니다.

이번에 포스트는 백업 받아 놓은 데이터를 다른 경로에 복구 하고 트랜젝션 로그도 끼워 넣고
특정 시간으로 복구 하는 테스트 입니다. ^^


1. 일단 백업 받아둔 데이터 파일과 로그 파일을 다른경로에 덮어 씌웁니다.
    replace, move 명령어를 이용하여 다른 경로로 설정하고
    norecovery 옵션으로 복구를 시작합니다.


-- 전체 데이터베이스 복구(다른 경로에 복구 중인거임)
restore database test from disk='D:\TESTDB.BAK'
with replace,norecovery,
move 'TEST_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\TEST_Data.MDF',
move 'TEST_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\TEST_Log.LDF'

2. 그리고 트랜젝션 로그 파일도 복구 시킵니다.
   복구될 시점 이전까의 로그 파일까지만 요렇게 norecovery 옵션으로 복구를 시킵니다.


-- 트랜젝션 로그 복구
restore log test from disk='D:\TEST_tlog_200709181300.TRN' with norecovery
restore log test from disk='D:\TEST_tlog_200709181500.TRN' with norecovery
restore log test from disk='D:\TEST_tlog_200709181700.TRN' with norecovery

3. 복구될 시점이 포함된 트랜젝션 로그 파일을 이용하여 시간 기반 복구를 시도 합니다.
   stopat 과 recovery 옵션을 이용합니다.


-- 마지막 트랜젝션 로그 파일 시간기반 복구
restore log test from disk='D:\TEST_tlog_200709181900.TRN'
with stopat='2007-09-18 18:00:26.123'
,recovery

반응형

댓글