1. /**********************************************************************************************
    -- Title : [2k5] 부분 백업(Partial Backup)
    -- Reference : hanbitbook.co.kr
    -- Key word : filegroup create database read_write_filegroups
    **********************************************************************************************/
    drop database backupDB;

    --DB 생성
    create database backupDB;

    --읽기쓰기 파일그룹 추가
    alter database backupDB
    add filegroup read_write_fg;

    --읽기쓰기 파일그룹에 파일 추가
    alter database backupDB
    add file (  name = read_write_fi,
       filename = 'd:\read_write_fi.ndf'
       ) to filegroup read_write_fg;

    --읽기전용 파일그룹 추가
    alter database backupDB
    add filegroup read_fg;

    --읽기전용 파일그룹에 파일 추가
    alter database backupDB
    add file (  name = read_fi,
       filename = 'd:\read_fi.ndf'
       ) to filegroup read_fg;

    use backupdb;

    --읽기전용 파일그룹에 테이블 생성
    create table read_t
    (a int, b int)
    on read_fg;

    insert into read_t values(1,1);
    insert into read_t values(2,2);
    insert into read_t values(3,3);

    --읽기전용 파일그룹 설정
    alter database backupDB
    modify filegroup read_fg read_only;

    --읽기쓰기 파일그룹에 테이블 생성
    create table read_write_t
    (a int, b int)
    on read_write_fg;

    insert into read_write_t values(100,100);
    insert into read_write_t values(200,200);
    insert into read_write_t values(300,300);

    --부분 백업 수행
    backup database backupDB
    read_write_filegroups to disk='d:\partial_backupdb';

    --데이터베이스 삭제
    use master;

    drop database backupDB;

    --데이터베이스 복원
    RESTORE DATABASE [backupdb]
    FROM  DISK = N'D:\partial_backupdb'
     WITH  FILE = 1    /* mdf가 없어도 replace여서인지 강제 복원이 된당.. */
               ,  MOVE N'read_write_fi' TO N'd:\backupdb_1.ndf'
               ,  MOVE N'read_fi' TO N'd:\backupdb_2.ndf'
               ,  MOVE N'backupDB_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1
                                                                 \MSSQL\DATA\backupdb_3.LDF'
               ,  NOUNLOAD,  REPLACE,  STATS = 10

    --데이터 확인
    select * from backupdb..read_write_t;

    select * from backupdb..read_t;
    /*
    메시지 8653, 수준 16, 상태 1, 줄 2
    테이블 'read_t'이(가) 온라인 상태가 아닌 파일 그룹에 있어서
    쿼리 프로세서에서 이 테이블 또는 뷰에 대한 계획을 생성할 수 없습니다.
    */

신고

+ Recent posts