Created by 솔루션사업팀
<aside> 💡 테이블에서 데이터가 삭제된 것을 복원하는 방법에 대해서 알아 본다. 실습용 데이터베이스와 테이블을 생성한다. 전제조건 : Full Backup이 존재해야함. 복구모델이 단순이 아니라 전체 이어야 함.
</aside>
USE [master];
GO
CREATE DATABASE ReadingDBLog;
GO
backup database ReadingDBLog to disk = 'C:\\SQL_Backup\\ReadingDBLog.bak'
USE ReadingDBLog;
GO
CREATE TABLE [Location] (
[Sr.No] INT IDENTITY,
[Date] DATETIME DEFAULT GETDATE (),
[City] CHAR (25) DEFAULT 'Seoul');
USE ReadingDBLog
go
INSERT INTO Location DEFAULT VALUES ;
GO 100
USE ReadingDBLog
Go
DELETE Location
WHERE [Sr.No] < 10
go
select * from Location
트랜잭션 로그에서 삭제 된 행에 대한 정보를 얻기 위해 다음의 스크립트를 실행 한다.
Delete 구문이 실행된 트랜잭션 ID를 확인 할 수 있으며 AllocUnitName 열에서 테이블의 이름을 확인 할 수 있다.트랜잭션ID가 동일하게 사용된 것은 삭제 된 행이 일괄적으로 수행 되었다는 것을 뜻한다.
use ReadingDBLog
go
SELECT
[Current LSN],
[Transaction ID],
Operation,
Context,
AllocUnitName
FROM
fn_dblog(NULL, NULL)
WHERE Operation = 'LOP_DELETE_ROWS'