본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

NUL Device 를 통해서 로그백업이 가능하다.

 

BACKUP LOG TD TO DISK = 'NUL'

 

Q. 언제 사용할까?

A. 로그백업할 디스크 공간이 없을 때 사용하며, 로그파일의 크기가 너무 커서 로그 트랜잭션을 truncate 효과를 보기 위해서 사용해야 한다.

단, 주의해야한다. 해당 백업도 LSN 에 영향을 주기 때문에 해당 작업을 한 후 전체백업 및 로그백업을 반드시 수행해야 한다.

 

[데모]

-- 환경 구성하기 --

    use master

    GO

 

    IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'BACKUPTEST')

        DROP DATABASE BACKUPTEST

    GO

 

    CREATE DATABASE BACKUPTEST

    GO

 

    USE BACKUPTEST

    GO

 

    IF OBJECT_ID('dbo.TBL') IS NOT NULL

        drop table TBL

    GO

 

    CREATE TABLE TBL(COL1 VARCHAR(50))

    GO

 

-- 백업하기 --

    INSERT INTO TBL VALUES('백업전')

    BACKUP DATABASE BACKUPTEST TO DISK='E:\LAB\D___FUL1.BAK'

    INSERT INTO TBL VALUES('로그백업전1')

    BACKUP LOG BACKUPTEST TO DISK='E:\LAB\D___TRN1.TRN'

    INSERT INTO TBL VALUES('로그백업전2')

    BACKUP LOG BACKUPTEST TO DISK='NUL'

    INSERT INTO TBL VALUES('로그백업전3')

    BACKUP LOG BACKUPTEST TO DISK='E:\LAB\D___TRN2.TRN'

 

 

 

-- 백업상태 확인 --

    restore headeronly from DISK='E:\LAB\D___FUL1.BAK'

    restore headeronly from DISK='E:\LAB\D___TRN1.TRN'

    restore headeronly from DISK='E:\LAB\D___TRN2.TRN'

 

    39000000016800183    39000000026400001    39000000016800183    0

    39000000016800183    39000000029600001    39000000016800183    39000000016800183

    NUL Deive Log Backup Line - NULL Info.

    39000000031200001    39000000032800001    39000000016800183    39000000016800183

 

-- 복원하기 --

    use master

    go

 

    IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'BACKUPTEST_BAK')

        DROP DATABASE BACKUPTEST_BAK

    GO

 

 

    RESTORE DATABASE BACKUPTEST_BAK FROM DISK = N'E:\LAB\D___FUL1.BAK' WITH FILE = 1,

    MOVE N'BACKUPTEST' TO N'E:\SQLDATA\BACKUPTEST_BAK.mdf',

    MOVE N'BACKUPTEST_log' TO N'E:\SQLDATA\BACKUPTEST_BAK_log.ldf', NOUNLOAD, STATS = 5

    , NORECOVERY

 

    GO

    RESTORE LOG [BACKUPTEST_BAK] FROM DISK = N'E:\LAB\D___TRN1.TRN' WITH FILE = 1, NOUNLOAD, STATS = 10 , NORECOVERY

 

 

    RESTORE LOG [BACKUPTEST_BAK] FROM DISK = N'E:\LAB\D___TRN2.TRN' WITH FILE = 1, NOUNLOAD, STATS = 10 , RECOVERY

    /*

    메시지 4305, 수준 16, 상태 1, 줄 62

    이 백업 세트의 로그는 LSN 39000000031200001에 시작하므로 데이터베이스에 적용하기에는 너무 이른 로그입니다. LSN 39000000029600001을(를) 포함하는 더 이전의 로그 백업이 복원될 수 있습니다.

    메시지 3013, 수준 16, 상태 1, 줄 62

    RESTORE LOG이(가) 비정상적으로 종료됩니다.

    */

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday