-
SQL Server를 사용하는 과정에서 데이터베이스 로그가 매우 큰 상황에 자주 직면하게 됩니다. 이 문제가 발생하면 이를 해결하는 두 가지 방법을 소개합니다.
방법 1
일반적인 상황에서는 SQL 데이터베이스를 축소해도 데이터베이스 크기를 크게 줄일 수 없습니다. 주요 기능은 로그 크기를 축소하는 것입니다. 이 작업은 데이터베이스 로그가 너무 커지는 것을 방지하기 위해 정기적으로 수행해야 합니다.
1. 데이터베이스 모드를 단순 모드로 설정합니다. SQL Enterprise Manager를 열고 콘솔 루트 디렉터리에서 Microsoft SQL Server를 클릭합니다.->SQL Server 그룹->서버를 열려면 두 번 클릭합니다.->데이터베이스를 열려면 두 번 클릭합니다. 디렉터리-- >데이터베이스 이름 선택(예: 포럼 데이터베이스 포럼)-->마우스 오른쪽 버튼을 클릭하고 속성을 선택합니다-->옵션 선택-->장애 조치 모드에서 "단순"을 선택한 다음 확인을 눌러 저장합니다.
2. 현재 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 모든 작업에서 축소된 데이터베이스를 확인합니다. 일반적으로 기본 설정은 조정할 필요가 없습니다.
3. 데이터베이스를 축소한 후에는 데이터베이스 속성을 표준 모드로 재설정하는 것이 좋습니다. 왜냐하면 로그는 비정상적인 상황에서 데이터베이스를 복원하는 데 중요한 기반이 되는 경우가 많기 때문입니다.
카운트 없음 설정
@LogicalFileName 시스템 이름을 선언하세요.
@MaxMinutes INT,
@NewSizeINT
USE tablename - 작업할 데이터베이스의 이름
SELECT @LogicalFileName = 'tablename_log', -- 로그 파일 이름
@MaxMinutes = 10, -- 로그 래핑에 허용되는 시간 제한입니다.
@NewSize = 1 -- 설정하려는 로그 파일의 크기(M)
--설정/초기화
@OriginalSize int 선언
SELECT @OriginalSize = 크기
sysfile에서
WHERE 이름 = @LogicalFileName
SELECT '원본 크기' + db_name() + ' LOG는 ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K 페이지 또는 ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
sysfile에서
WHERE 이름 = @LogicalFileName
테이블 생성 DummyTrans
(DummyColumn char(8000)은 null이 아님)
@Counter INT 선언,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = '백업 로그' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE(@LogicalFileName, @NewSize)
EXEC(@TruncLog)
-- 필요한 경우 로그를 래핑합니다.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- 시간이 만료되지 않았습니다.
AND @OriginalSize = (이름 = @LogicalFileName인 경우 sysfiles에서 크기 선택)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN - 외부 루프.
선택 @카운터 = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
시작 - 업데이트
DummyTrans 값 삽입('채우기 로그')
DummyTrans 삭제
SELECT @Counter = @Counter + 1
끝
EXEC(@TruncLog)
끝
SELECT '최종 크기' + db_name() + ' LOG는 ' +
CONVERT(VARCHAR(30),size) + ' 8K 페이지 또는 ' +
CONVERT(VARCHAR(30),(크기*8/1024)) + 'MB'
sysfile에서
WHERE 이름 = @LogicalFileName
드롭 테이블 DummyTrans
카운트 없음 설정