'시점 복원'에 해당되는 글 1건

  1. 2014.03.03 SQL Server 특정 시점 복원 방법
MS SQL2014.03.03 23:03

 

 

[내용]

   

데이터베이스를 사용 하던 특정 시점 복원 하는 방법에 대해 알아 봅시다.

   

   

[환경]

   

OS: Windows Server 2008 R2

Product: SQL Server 2008 R2

   

   

[ACTION PLAN]

   

-- 테스트에 사용할 데이터베이스(etleeDB)를 생성합니다.

-- 이때, 복구모델은 Full이어야 합니다.

CREATE DATABASE etleeDB

GO

   

USE etleeDB

GO

   

-- 예제 테이블을 생성합니다.

CREATE TABLE TestTbl

(

NUM INT

)

GO

   

-- 1,2,3 데이터를 입력합니다.

INSERT INTO TestTbl VALUES (1),(2),(3)

GO

   

-- 입력한 데이터를 확인합니다.

SELECT * FROM TestTbl

GO

   

-- 확인한 데이터

   

-- 전체 백업 진행

BACKUP DATABASE etleeDB TO DISK='C:\BACKUP\etleeDB_Full_20140303.bak' WITH INIT

GO

   

-- 4,5,6 데이터를 추가 입력합니다.

INSERT INTO TestTbl VALUES (4),(5),(6)

GO

   

-- 입력한 데이터를 확인합니다.

SELECT * FROM TestTbl

GO

   

-- 확인한 데이터

   

-- 1차 로그백업

BACKUP LOG etleeDB TO DISK='C:\BACKUP\etlee_log1_20140303.trn'

GO

   

-- 7,8,9 데이터를 추가 입력합니다.

INSERT INTO TestTbl VALUES (7),(8),(9)

GO

   

-- 입력한 데이터를 확인합니다.

SELECT * FROM TestTbl

GO

   

-- 확인한 데이터

   

-- 현재시간 확인합니다.

SELECT GETDATE()

   

   

-- 데이터 모두 삭제합니다.

DELETE FROM TestTbl

GO

   

-- 데이터가 삭제 되었는지 확인합니다.

SELECT * FROM TestTbl

GO

   

-- 데이터 확인

   

/*

이제 부터 복구 시작

*/

 

-- 비상로그 백업을 진행합니다.

BACKUP LOG etleeDB TO DISK='C:\BACKUP\etleeDB_tlog_20140303.trn' WITH NO_TRUNCATE

GO

   

-- 전체 백업을 복원합니다.

USE MASTER

GO

   

RESTORE DATABASE etleeDB FROM DISK ='C:\BACKUP\etleeDB_Full_20140303.bak' WITH NORECOVERY

GO

   

-- 1차 로그 백업을 복원합니다.

RESTORE LOG etleeDB FROM DISK='C:\BACKUP\etlee_log1_20140303.trn' WITH NORECOVERY

GO

   

-- 비상 로그 백업을 복원하면서 데이터가 지워지기 이전 시점으로 복원합니다.

RESTORE LOG etleeDB FROM DISK='C:\BACKUP\etleeDB_tlog_20140303.trn'

WITH STOPAT ='2014-03-03 22:43:16.120', RECOVERY

GO

   

-- 복원된 데이터를 확인합니다.

USE etleeDB

GO

   

SELECT * FROM testTbl

GO

   

-- 확인된 데이터

  

   

   

[참고]

   

http://support.microsoft.com/kb/983139/ko

http://technet.microsoft.com/ko-kr/library/ms179314(v=sql.105).aspx

 

신고
Posted by TM ~ing