BACKUP LOG database_name TO WITH NORECOVERY, no_truncate
-- stopat -- 로그 복원시만 가능
restore log wookki25 from disk = 'c:\data\tailog.bak' with stopat = '0000-00-00 00:00:00.000', recovery
-- move to, replace
restore database wookki25 from disk = 'c:\backup\wookki25_full.bak'
with replace
, move 'wookki25_data' to 'c:\data\wookki25_data.mdf'
, move 'wookki25_log' to 'c:\data\wookki25_log.ldf'
-- 복구 준비
USE MSDB
GO
-- 백업파일 확인 (TYPE:D - 풀, L - 로그, I - 차등백업)
SELECT BACKUP_START_DATE, TYPE, DATABASE_NAME, PHYSICAL_DEVICE_NAME
FROM MSDB.DBO.BACKUPSET A JOIN MSDB.DBO.BACKUPMEDIAFAMILY B ON A.MEDIA_SET_ID = B.MEDIA_SET_ID
WHERE DATABASE_NAME = 'ELOC2001'
AND BACKUP_START_DATE > GETDATE() - 2
ORDER BY BACKUP_START_DATE DESC
-- 풀백업 파일 정보 확인
RESTORE HEADERONLY FROM DISK = @FILEPATH --'L:\SQL_BACKUP\AAA.FULL
RESTORE FILELISTONLY FROM DISK = @FILEPATH --'L:\SQL_BACKUP\AAA.FULL
-- 복구 진행
USE MASTER
GO
-- 복구모델이 SIMPLE인경우
-- 1. 풀백업 복구 백업진행
RESTORE DATABASE @DB_NAME
FROM DISK = @FILEPATH WITH NORECOVERY
--, REPLACE -- 복구시 기존 파일 교체할 때
--, MOVE '@LOGICAL_NAME' TO '@PYSICAL_PATH' -- 복구시 파일 위치 변경할 때
-- 2. 차등백업 복구 (해당하는경우 만)
RESTORE DATABASE @DB_NAME
FROM DISK= @FILEPATH WITH NORECOVERY
-- 3. 복구 마무리
RESTORE DATABASE @DB_NAME WITH RECOVERY
-- 4. 다중 사용자로 변경
ALTER DATABASE @DB_NAME SET MULTI_USER
-- 복구모델이 FULL, BULK_LOGGED인경우 (차등백업, 로그백업 사용한다)
-- 0. 비상로그 백업 : 마지막 로그 백업로 사용
BACKUP LOG @DB_NAME TO DISK = @FILEPATH
WITH NORECOVERY -- db상태를 복구중으로 변경한다 -> DB 변경사항 없게 한다!
--, { CONTINUE_AFTER_ERROR | NO_TRUNCATE }
-- 1. 풀백업 복구
RESTORE DATABASE @DB_NAME FROM DISK = @FILEPATH WITH NORECOVERY
--, MOVE '@LOGICAL_NAME' TO '@PYSICAL_PATH' -- 복구시 파일 위치 변경할 때
-- 2. 차등백업 복구 (해당하는경우 만)
RESTORE DATABASE @DB_NAME FROM DISK= @FILEPATH WITH NORECOVERY
-- 3. 로그백업 복구
RESTORE LOG @DB_NAME FROM DISK=@LOG_BAL_FILE_1_PATH WITH NORECOVERY
RESTORE LOG @DB_NAME FROM DISK=@LOG_BAL_FILE_2_PATH WITH NORECOVERY
RESTORE LOG @DB_NAME FROM DISK=@LOG_BAL_FILE_3_PATH WITH NORECOVERY
RESTORE LOG @DB_NAME FROM DISK=@LOG_BAL_FILE_4_PATH WITH NORECOVERY--, STOPAT = '0000-00-00 00:00:00.000' -- 지정시간 복구
-- 4. 복구 마무리
RESTORE DATABASE @DB_NAME WITH RECOVERY
-- 5. 다중 사용자로 변경
ALTER DATABASE @DB_NAME SET MULTI_USER