SQL Server 2008 에서 대용량 데이터베이스를 복구하는 데 발생하는 메모리 부족 오류!
-- Virtual Address 확인
추가적으로 701 오류 발생 시 덤프를 생성할 수 있도록 설정하는 DUMP TRIGGER 방법은 다음과 같습니다.
[참고자료]
            
				오류: 701, 심각도: 17, 상태: 123.
There is insufficient system memory in resource pool 'internal' to run this query.
30만개가 넘는 VLF 를 가진 트랜잭션 로그가 포함된 데이터베이스를 복원하면서 발생하는 MemToLeave 공간 부족 이슈!
아무튼 MemToLeave 관련 이슈를 만났을 때, 우선 확인해 봐야 할 스크립트입니다. 예약된 작업에 추가하여 문제 발생 예상 시점에 SQL server process 내의 Max free block size 를 다음 쿼리를 통해 확인해 봅니다.
32bit SQL Server 환경에서 데이터베이스 복원 시, 쿼리 실패 이슈가 있어 정리해 봅니다.
30만개가 넘는 VLF 를 가진 트랜잭션 로그가 포함된 데이터베이스를 복원하면서 발생하는 MemToLeave 공간 부족 이슈!
아무튼 MemToLeave 관련 이슈를 만났을 때, 우선 확인해 봐야 할 스크립트입니다. 예약된 작업에 추가하여 문제 발생 예상 시점에 SQL server process 내의 Max free block size 를 다음 쿼리를 통해 확인해 봅니다.
32bit SQL Server 환경에서 데이터베이스 복원 시, 쿼리 실패 이슈가 있어 정리해 봅니다.
USE LAIGO
GO
-- 테이블 생성
CREATE TABLE TblVA (regdate datetime, total bigint, free bigint)
CREATE TABLE TblVA (regdate datetime, total bigint, free bigint)
-- Virtual Address 확인
With VASummary(Size,Reserved,Free) AS 
(SELECT 
    Size = VaDump.Size, 
    Reserved =  SUM(CASE(CONVERT(INT, VaDump.Base)^0) 
    WHEN 0 THEN 0 ELSE 1 END), 
    Free = SUM(CASE(CONVERT(INT, VaDump.Base)^0) 
    WHEN 0 THEN 1 ELSE 0 END) 
FROM 
( 
    SELECT  CONVERT(VARBINARY, SUM(region_size_in_bytes)) 
    AS Size, region_allocation_base_address AS Base 
    FROM sys.dm_os_virtual_address_dump  
    WHERE region_allocation_base_address <> 0x0 
    GROUP BY region_allocation_base_address  
UNION   
    SELECT CONVERT(VARBINARY, region_size_in_bytes), region_allocation_base_address 
    FROM sys.dm_os_virtual_address_dump 
    WHERE region_allocation_base_address  = 0x0 
) 
AS VaDump 
GROUP BY Size) 
INSERT INTO TblVA
SELECT getdate(), SUM(CONVERT(BIGINT,Size)*Free)/1024 AS [Total avail mem, KB] ,CAST(MAX(Size) AS BIGINT)/1024 AS [Max free size, KB]  
FROM VASummary  
WHERE Free <> 0
추가적으로 701 오류 발생 시 덤프를 생성할 수 있도록 설정하는 DUMP TRIGGER 방법은 다음과 같습니다.
DBCC TRACEON(2551, 2546, -1)
DBCC DUMPTRIGGER ('set',701)
Get memory
http://technet.microsoft.com/en-us/library/2007.05.sqlqa.aspx
작성자 : Lai Go / 작성일자 : 2011.04.01
DBCC TRACEON (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187329.aspx
 
Trace Flags (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188396.aspx작성자 : Lai Go / 작성일자 : 2011.04.01

