MS-SQL 2005 에서 적용된 부분백업에 대한 내용 ^^
부분 백업은 전체 데이터베이스 백업과 유사하지만 부분 백업에 모든 파일 그룹이 포함되지는 않습니다.
대신 부분 백업은 주 파일 그룹, 모든 읽기/쓰기 파일 그룹, 선택적으로 지정된 읽기 전용 파일의 모든 데이터를 포함합니다. 부분 백업은 읽기 전용 파일 그룹을 제외할 때마다 유용하게 사용할 수 있습니다. 읽기 전용 데이터베이스의 부분 백업에는 주 파일 그룹만 포함됩니다.
l 구문 예제
BACKUP DATABASE database_name READ_WRITE_FILEGROUPS [ , <file_filegroup_list> ] TO <backup_device>
USE MASTER
GO
-- BackupTest FileGroup DB CREATE
CREATE DATABASE BAKTEST
ON PRIMARY
(NAME = 'BAKTEST', FILENAME = 'D:\DBTEST\BAKTEST.MDF'),
FILEGROUP SECONDGROUP
(NAME = 'BAKTEST2', FILENAME = 'D:\DBTEST\BAKTEST2.NDF'),
FILEGROUP THIRDGROUP
(NAME = 'BAKTEST3', FILENAME = 'D:\DBTEST\BAKTEST3.NDF'),
FILEGROUP FOURTHGROUP
(NAME = 'BAKTEST4', FILENAME = 'D:\DBTEST\BAKTEST4.NDF')
LOG ON
(NAME = 'BAKTEST_LOG', FILENAME = 'D:\DBTEST\BAKTEST_LOG.LDF')
GO
--부분 백업 (전체백업과 비슷하지만 읽기 전용파일그룹은 백업하지 않음)
BACKUP DATABASE BAKTEST READ_WRITE_FILEGROUPS
TO DISK = 'D:\DBTEST\BAKTEST0.BAK' WITH INIT
GO
/*
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST'에대해176개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST2'에대해8개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST3'에대해8개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST4'에대해8개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST_LOG'에대해3개의페이지를처리했습니다.
BACKUP DATABASE...FILE=<name>이(가) 203개의페이지를0.350초동안처리했습니다(4.527MB/초).
*/
-- THIRDGROUP 그룹 데이터 베이스를 읽어 전용으로 변경
ALTER DATABASE BAKTEST MODIFY FILEGROUP THIRDGROUP READ_ONLY
GO
USE BAKTEST
GO
SELECT * FROM SYS.FILEGROUPS
GO
BACKUP DATABASE BAKTEST READ_WRITE_FILEGROUPS TO DISK = 'D:\DBTEST\BAKTEST0.BAK' WITH INIT
GO
/*
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST'에대해176개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST2'에대해8개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST4'에대해8개의페이지를처리했습니다.
파일1에서데이터베이스'BAKTEST', 파일'BAKTEST_LOG'에대해2개의페이지를처리했습니다.
BACKUP DATABASE...FILE=<name>이(가) 194개의페이지를0.254초동안처리했습니다(5.963MB/초).
*/
-- 복원테스트
-- SQL SERVER를정지하고D:\DBTEST\BAKTEST2.NDF를삭제한후SQL SERVER를실행시킨다.
USE MASTER
GO
--우선최근로그까지백업(NO_TRUNCATE를사용)을받는다.
BACKUP LOG BAKTEST TO DISK = 'D:\DBTEST\BACKUP\BAKTEST_LOG1.BAK' WITH NO_TRUNCATE, INIT
GO
--복원시작
RESTORE DATABASE BAKTEST FILEGROUP = 'SECONDGROUP'
FROM DISK = 'D:\DBTEST\BACKUP\BAKTEST0.BAK' WITH NORECOVERY
GO
RESTORE LOG BAKTEST
FROM DISK = 'D:\DBTEST\BACKUP\BAKTEST_LOG1.BAK' WITH RECOVERY
GO