728x90

데이터베이스 특정 시점을 복원하는 방법을 정리하였습니다.

간단한 예제를 참고하도록 합니다.


-- 테스트 데이터베이스를 생성합니다. 이때, 복구모드는 FULL(전체)로 되어 있어야 합니다.

CREATE DATABASE LAIGO

go


USE
LAIGO

go


-- 테스트 테이블을 생성합니다.

CREATE TABLE TB_TEST

(

DATA char(1)

)

go

-- A,B,C 데이터를 삽입합니다.

INSERT INTO TB_TEST VALUES('A')

INSERT INTO TB_TEST VALUES('B')

INSERT INTO TB_TEST VALUES('C')


-- 데이터를 확인합니다.
SELECT
* FROM TB_TEST


DATA

----

A

B

C


-- Full Backup 합니다.

BACKUP DATABASE LAIGO TO DISK = 'D:\LAIGO.bak' WITH INIT

-- D,E,F 데이터를  삽입합니다.

INSERT INTO TB_TEST VALUES('D')

INSERT INTO TB_TEST VALUES('E')

INSERT INTO TB_TEST VALUES('F')


-- 데이터를 확인합니다.
SELECT
* FROM TB_TEST


DATA

----

A

B

C

D

E

F



-- 로그백업1

BACKUP LOG LAIGO TO DIsk = 'D:\LAIGO_LOG1.bak'


-- G,H,I 데이터를 삽입합니다.

INSERT INTO TB_TEST VALUES('G')

INSERT INTO TB_TEST VALUES('H')

INSERT INTO TB_TEST VALUES('I')


-- 데이터를 확인합니다.
SELECT
* FROM TB_TEST


DATA

----

A

B

C

D

E

F

G

H

I



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

select getdate()


2008-06-11 11:30:56.293



-- 과감히 데이터를 삭제합니다.

DELETE FROM TB_TEST


(
9개행적용됨)


-- 모두 삭제 되었음을 확인할 수 있습니다.
SELECT
* FROM TB_TEST

DATA

----


-- 이제부터 복구 절차입니다. 현재 트랜잭션 로그를 백업합니다.

BACKUP LOG LAIGO TO DISK = 'D:\LAIGO_LOG2.bak' WITH NO_TRUNCATE



use
master

go

-- Full Backup 데이터 복원합니다.

RESTORE DATABASE LAIGO FROM DISK = 'D:\LAIGO.bak' WITH NORECOVERY



-- 그 다음 로그 백업 데이터를 복원합니다.

RESTORE LOG LAIGO FROM DISK = 'D:\LAIGO_LOG1.bak' WITH NORECOVERY



-- 역시 그 다음, 최종 로그 백업 데이터를 이용하여 데이터가 삭제되기 전 시점으로 복원합니다.

RESTORE LOG LAIGO FROM DISK = 'D:\LAIGO_LOG2.bak'

WITH STOPAT = '2008-06-11 11:30:56.293' , RECOVERY



-- 확인절차

USE LAIGO

Go


-- 복구가 완료되었습니다.

SELECT * FROM TB_TEST


DATA

----

A

B

C

D

E

F

G

H

I



작성자 : Lai Go / 작성일자 : 2008.06.12

+ Recent posts