SQL Server 복구 모델

SQL Server 복구 모델 소개



복구 모델: 다음을 제어하는 ​​데이터베이스 제어 속성입니다.
  • 트랜잭션이 기록되는 방식
  • 트랜잭션 로그에 백업이 필요한지/허용되는지 여부.
  • 어떤 종류의 복원 작업을 사용할 수 있습니까(단순, 전체, 대량 로그 복구 모델)

  • 샘플 DB HR을 생성하고 여기에 Table People을 생성하고 몇 가지 값을 삽입합니다.

    -- Create Database HR
    CREATE DATABASE HR;
    
    GO
    -- swith the current databse to HR
    USE HR;
    
    -- Create Table Poeple in DB HR
    CREATE TABLE People(
    Id INT IDENTITY PRIMARY KEY,
    FristName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    );
    
    --Insert some values into Poeple Table
    INSERT INTO People (FristName,LastName)
        Values('John', 'Doe'),
                ('Joan', 'Njeri'),
                ('Jane', 'M'),
                ('Kyle', 'G')
    GO 
    -- Query all items from Table People
    SELECT * FROM People;
    


    데이터베이스의 복구 모델을 보려면 다음을 사용하십시오.

    USE master;
    
    GO 
    /** To view Recovery model for HR DB **/
    
    SELECT name, recovery_model_desc
    
    FROM master.sys.databases
    
    ORDER BY name;
    


    산출


    참고: 다음을 사용하여 복구 모델을 변경할 수 있습니다.

    ALTER DATABASE database_name 
    SET RECOVERY recovery_model;
    


    이 경우 복구 모델을 FULL에서 SIMPLE로 변경해 보겠습니다.

    GO 
    -- Change Recovery model for HR Database from FULL to SIMPLE
    
    ALTER DATABASE HR
    SET RECOVERY SIMPLE;
    


    산출



    복구 모델의 차이점



    1. 간단한 복구 모델
    SQL Server는 모든 검사점에서 트랜잭션 로그 파일에서 트랜잭션 로그를 삭제합니다. 또한 이 모델은 트랜잭션 기록을 저장하지 않으므로 데이터 손실을 최소화하기 위한 고급 백업 전략을 사용할 수 없습니다.
    따라서 이 모델은 데이터베이스를 다른 소스에서 다시 로드할 수 있는 경우에만 사용하십시오. 보고에 사용되는 데이터베이스.

    2. 전체 복구 모델
    단순 복구 모델과 달리 FULL 복구 모델에서는 SQL Server가 BACKUP LOG 문이 실행될 때까지 트랜잭션 로그 파일을 유지하여 트랜잭션 로그 파일에서 트랜잭션 로그를 삭제합니다.
    즉, BACKUP LOG 문을 정기적으로 실행하지 않으면 SQL Server는 트랜잭션 로그 파일이 가득 차서 데이터베이스에 액세스할 수 없게 될 때까지 모든 트랜잭션 로그 파일을 보관합니다.
    전체 복구 모델을 사용하면 언제든지 데이터베이스를 복원할 수 있습니다.

    요점: 전체 복구 모델의 경우 BACKUP LOG 문이 정기적으로 실행되도록 일정을 잡습니다.

    2. BULK_LOGGED 복구 모델
    FULL의 동작과 거의 유사하지만 플랫 파일BULK INSERT과 같은 대량 로그 작업에 사용되어 트랜잭션 로그 파일에 작업을 기록할 수 있습니다. 또한 특정 시점에 데이터베이스 복원을 수행할 수 없습니다.

    Bulk_logged 복구 모델 시나리오:
  • FULL 복구 모델을 사용하는 주기적인 대량 데이터 로드의 경우 복구 모델을 BULK_LOGGED로 설정합니다
  • .
  • DB에 데이터 로드
  • 데이터 로드가 완료된 후 복구 모델을 다시 FULL로 SET합니다
  • .
  • 데이터베이스를 백업하십시오.
    자세한 내용은 Recovery Models (SQL Server)을 방문하십시오.
  • 좋은 웹페이지 즐겨찾기