DB (데이터베이스)/MS-SQL

[MS-SQL] ms-sql 스냅샷으로 복구

뜽배 2024. 5. 30. 11:16
728x90
반응형


- ms-sql은 스냅샷 데이터베이스에 대한 일관된 뷰(특정 시점의 데이터)를 제공한다.
- 특정 시점의 데이터 보고서로 작성되거나, 반복된 복원대신에 스냅샷을 활용할 수 있다.
- 스냅샷은 오로지 읽기 전용이며, 중요 데이터베이스 변경 시 스냅샷 데이터베이스를 만들어두고 작업을 하면 문제가 생길 시 바로 원복이 가능하다.

이 때 3번 째인 중요 데이터베이스 변경 시 작업하고 문제가 생길 시 바로 복원이 가능한 방법 예제를 알아보자

 

USE master
GO

CREATE DATABASE AW2022_snapshot_20240313_1349
ON (
	NAME = 'AdventureWorks2022', 
	FILENAME = 'C:\SQLServer\SQLData\AdventureWorks2022.ss'
) AS SNAPSHOT OF AdventureWorks2022
GO

 

create database 뒤에는 스냅샷 명
name = 데이터베이스 마우스 우클릭 -> 속성 -> 파일 탭 에서 mdf의 논리적이름을 지정한다.
filename = 저장할 파일명
as snapshot of 뒤에는 지정할 DB명을 적는다.

 

 

위 사진 처럼 스냅샷이 읽기 전용으로 생성된 것을 확인 할 수 있다.

이제 원본 데이터를 실수로 삭제 또는 업데이트 했다고 가정합니다.

 

USE AdventureWorks2022
GO

UPDATE PERSON.PERSON
SET FIRSTNAME = 'A'

 

위 처럼 AdventureWorks2022 DB의 person.person 테이블의 firstname을 전부 update했습니다.

 

SELECT *
FROM AW2022_snapshot_20240313_1349.PERSON.PERSON


하지만 위 쿼리를 통해 스냅샷의 person.person을 조회하면 스냅샷을 뜬 시점의 데이터가 조회됩니다.

 


복구를 하려면 아래와 같은 SQL을 입력하면 된다.

USE MASTER
GO

RESTORE DATABASE AdventureWorks2022
FROM DATABASE_SNAPSHOT = 'AW2022_snapshot_20240313_1349'
GO

 

728x90
반응형