SQL Server의 트랜잭션 로그 잘라내기 및 로그 파일 줄이기

Acronis Backup은(는) 디스크 백업 생성 후 트랜잭션 로그를 잘라내지 않습니다. Microsoft SQL Server의 기본 백업 엔진 또는 트랜잭션 로그를 자동으로 관리하는 다른 타사 백업 솔루션을 사용하지 않는 경우 다음 방법을 사용하여 로그를 관리할 수 있습니다.

SQL Server Management Studio를 사용하여 로그 잘라내기

데이터베이스를 단순 복구 모델로 전환하면 트랜잭션 로그를 자동으로 잘라냅니다.

  1. 데이터베이스를 단순 복구 모델로 전환하려면,
    1. Microsoft SQL Server Management Studio를 실행하고 인스턴스에 연결합니다.
    2. 데이터베이스를 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다. 그러면 데이터베이스 속성 대화 상자가 열립니다.
    3. 페이지 선택 창에서 옵션을 클릭합니다.
    4. 복구 모델 목록 상자에서 단순 모델 목록을 선택합니다.
  2. 트랜잭션 로그 파일을 자동으로 잘라냅니다.
  3. 1 단계와 동일한 방식으로 데이터베이스를 다시 전체 또는 벌크-로그 복구 모델로 전환합니다.
자동 로그 잘라내기 및 줄이기 

스크립트를 사용하여 위의 잘라내기 절차를 자동화할 수 있으며 선택적으로 로그 파일 줄이기를 추가할 수 있습니다. 백업 후 명령에 스크립트를 추가하면 백업 후 즉시 로그를 잘라내고 줄입니다. 이 방법은 사용자가 Transact-SQL 스크립트를 작성할 수 있고 sqlcmd 유틸리티에 대해 잘 알고 있는 것으로 가정합니다.

Transact-SQL 및 sqlcmd에 대한 자세한 내용은 다음 문서를 참조하십시오.

SQL 인스턴스의 트랜잭션 로그 잘라내기와 줄이기를 자동화하려면,

  1. 다음 템플릿을 사용하여 인스턴스 데이터베이스의 로그 파일을 잘라내고 줄이는 스크립트를 생성합니다.

    USE database_name
    ALTER DATABASE database_name SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(logfile_name);
    ALTER DATABASE database_name SET RECOVERY FULL;

    마지막 문자열에서 SET RECOVERY 값은 특정 데이터베이스의 원래 복구 모델에 따라 다르며 FULL 또는 BULK_LOGGED입니다.

    데이터베이스가 두 개(TestDB1 및 TestDB2)인 인스턴스 예:

    USE TestDB1;
    ALTER DATABASE TestDB1 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB1_log);
    ALTER DATABASE TestDB1 SET RECOVERY FULL;

    USE TestDB2;
    ALTER DATABASE TestDB2 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB2_log);
    ALTER DATABASE TestDB2 SET RECOVERY BULK_LOGGED;

  2. 백업 후 명령에 다음 sqlcmd 명령을 추가합니다.

    sqlcmd -S myServer\instanceName -i C:\myScript.sql

    위치:

여러 SQL 인스턴스의 트랜잭션 로그 잘라내기와 줄이기를 자동화하려면,

머신에 인스턴스가 여러 개 있고 해당 인스턴스에 위 절차를 적용하려면 다음과 같이 진행합니다.

  1. 각 인스턴스마다 개별 스크립트 파일을 생성합니다(예: C:\script1.sql 및 C:\script2.sql).
  2. 해당 인스턴스에 대한 명령을 포함하게 될 배치 파일(예: C:\truncate.bat)을 생성합니다.

    sqlcmd -S myServer\instance1 -i C:\script1.sql
    sqlcmd -S myServer\instance2 -i C:\script2.sql

  3. 백업 후 명령에서 배치 파일 경로를 지정합니다.