ms sql server database restore

데이타베이스 복원.

http://m.blog.naver.com/mavis5/10079514586
https://msdn.microsoft.com/ko-kr/library/ms189272(v=sql.120).aspx
— 복구 준비
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

Leave a Reply

Your email address will not be published. Required fields are marked *