본문 바로가기

Programming/mssql2005

테이브 백업 및 복구(단순 복구), Transact SQL

USE master;
--Ensure the database is using the simple recovery model:
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Create a logical backup device for the full AdventureWorks backup.
EXEC sp_addumpdevice 'tape', 'DumpTape', '\\.\TAPE0';
GO
-- Back up the full AdventureWorks database:
BACKUP DATABASE BackupDB TO DumpTape
  WITH FORMAT, NOUNLOAD;
GO

--Restore the last of full backup (from backup set 1):
RESTORE DATABASE BackupDB FROM DumpTape
   WITH RECOVERY, NOUNLOAD, KEEP_REPLICATION
GO

--Restore the full backup (from backup set 1):, FILE = 2(Backup Pos)
use master;
RESTORE DATABASE [BackupDB] FROM  TAPE = N'\\.\TAPE0' WITH  FILE = 2,  NOUNLOAD,  STATS = 10

OR

use master;
RESTORE DATABASE [BackupDB] FROM  DumpTape WITH  FILE = 2,  NOUNLOAD,  STATS = 10;

-- List backup set
RESTORE HEADERONLY FROM  [DumpTape] WITH  NOUNLOAD
======================================================================
테스트 후 결과
- 백업 및 복구를 완료하고 난 후엔 테이프를 뱉어버린다.(항상 테이프가 삽입되어 있는지 확인 후 작업)
   . NOUNLOAD 옵션을 주면 뱉지 않는다. 이 옵션을 주도록 하자!!
- 백업할 때 WITH FORMAT 옵션을 주면 기존 데이터를 모두 삭제후 백업한다.
- 복구 시에 use master; 를 하지 않으면 다른 세션에서 사용중이라고 복구를 하지 않는다.(테스트 필요)
  . 다른 세션이 중일 때는 여전히 복구를 못함, 서버를 리붓 시키거나 세션을 종료시키는 작업 필요
- 특정 날짜에 대하여 복구를 할 때는 RESTORE HEADEONLY를 통해 백업 파일 위치를 알아내서 복구한다.
  . Position 필드에 백업 파일 포지션이 나옴
  . FILE = position 으로 넣어주면 됨

'Programming > mssql2005' 카테고리의 다른 글

디스크에 백업/복구  (0) 2008.01.15
MSSQL 2005 복구 모델  (0) 2008.01.09
MSSQL2005 병합복제 방법(Merge Replication)  (0) 2007.12.20
MSSQL 2005 미러링 하기  (1) 2007.09.17
데이터베이스 미러링 강제 제거  (0) 2007.09.13