[sql] 특정 테이블 복구를 위한 SQL 데이터베이스 복구 시나리오

데이터베이스에서 실수로 특정 테이블의 데이터가 삭제되었거나 손상된 경우, 데이터베이스 복구가 필요합니다. 복구 시나리오는 데이터베이스 복구 작업을 수행하기 위한 체계적인 방법을 제시합니다.

1. 데이터베이스 백업 확인

가장 먼저, 삭제 또는 손상된 테이블의 데이터가 포함된 데이터베이스의 백업 상태를 확인해야 합니다. 백업이 없거나 최신 상태가 아니라면, 복구를 위한 기본 자료가 부족할 수 있습니다.

SELECT *
FROM msdb.dbo.backupset AS ubs
JOIN msdb.dbo.backupmediafamily AS ubmf ON ubs.media_set_id = ubmf.media_set_id
WHERE database_name = 'YourDatabaseName' AND type = 'D' -- Full backup
ORDER BY backup_start_date DESC;

2. 백업 복구

최신 백업을 사용하여 데이터베이스를 복구합니다.

RESTORE DATABASE YourDatabaseName
FROM disk = 'D:\YourBackupPath\YourBackupFile.bak'
WITH REPLACE, RECOVERY;

3. 누락된 테이블 데이터 복구

복구된 데이터베이스에서 누락된 테이블 데이터를 복구합니다. Transaction Log를 사용하여 삭제된 데이터를 복구할 수 있습니다.

RESTORE DATABASE YourDatabaseName
FROM disk = 'D:\YourBackupPath\YourLogBackupFile.trn'
WITH STOPBEFOREMARK = 'lsn:YourLastLSN', RECOVERY;

위의 SQL 쿼리에서 YourLastLSN은 삭제가 발생한 시점의 Log Sequence Number 입니다.

확실히 하기 위한 점검

데이터베이스 무결성을 위해, 복구된 테이블 데이터가 정확하게 복구되었는지를 점검해야 합니다. 추가적인 점검 단계를 통해 복구의 확실성을 검증할 수 있습니다.

위의 방법들은 SQL Server를 기준으로 작성된 것이며, 사용하는 데이터베이스 시스템에 따라 차이가 있을 수 있습니다.