Created by 솔루션사업팀


<aside> 💡 테이블에서 데이터가 삭제된 것을 복원하는 방법에 대해서 알아 본다. 실습용 데이터베이스와 테이블을 생성한다. 전제조건 : Full Backup이 존재해야함. 복구모델이 단순이 아니라 전체 이어야 함.

</aside>

Create DB.

USE	[master];  
GO
CREATE	DATABASE	ReadingDBLog;
GO

Full backup

backup database ReadingDBLog to disk = 'C:\\SQL_Backup\\ReadingDBLog.bak'

Create tables.

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'