±â¼ú ÀÚ·á: 256650 - ¸¶Áö¸· °ËÅä: 2011³â 2¿ù 15ÀÏ È­¿äÀÏ - ¼öÁ¤: 1.1

INF: SQL Server 7.0 Æ®·£Àè¼Ç ·Î±×¸¦ ÁÙÀÌ´Â ¹æ¹ý

½Ã½ºÅÛ ÆÁº» ¹®¼­ÀÇ ³»¿ëÀº ±ÍÇϰ¡ »ç¿ëÇÏ´Â ¿î¿µ üÁ¦¿Í ´Ù¸¥ ¿î¿µ üÁ¦¿¡ ÇØ´çÇÕ´Ï´Ù. ¹®¼­ ³»¿ë Áß ±ÍÇÏ¿Í °ü·Ã ¾ø´Â ºÎºÐÀº Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.
ÀÌ ¹®¼­´Â ÀÌÀü¿¡ ´ÙÀ½ ID·Î ÃâÆÇµÇ¾úÀ½: KR256650

ÀÌ ÆäÀÌÁö¿¡¼­

¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

¿ä¾à

DBCC SHRINKFILE ¸í·É ¶Ç´Â DBCC SHRINKDATABASE ¸í·ÉÀ» »ç¿ëÇÒ ¶§ Æ®·£Àè¼Ç ·Î±×°¡ ÁÙ¾îµéÁö ¾Ê´Â ÀϹÝÀûÀÎ ÀÌÀ¯°¡ ¸î °¡Áö ÀÖ½À´Ï´Ù. º» ¹®¼­¿¡¼­´Â ÀÌ¿¡ ´ëÇØ °£·«ÇÏ°Ô ¼³¸íÇϸç, SQL Server Books OnlineÀÇ "DBCC SHRINKFILE" ¹× "DBCC SHRINKDATABASE" Ç׸ñ¿¡¼­ ÀÚ¼¼ÇÏ°Ô ´Ù·ì´Ï´Ù.

Ãß°¡ Á¤º¸

  • Microsoft SQL Server 7.0¿¡¼­ SHRINKFILE ¹× SHRINKDATABASE ¸í·ÉÀº ÁÙÀÌ·Á´Â ¸ñÇ¥ Å©±â¸¦ ¼³Á¤ÇÕ´Ï´Ù. °¢ ·Î±× ÆÄÀÏÀº ÀÌµé ¸í·É¿¡ ÀÇÇØ Ç¥½ÃµÇÁö¸¸, ½ÇÁ¦·Î ÆÄÀÏÀ» ÁÙÀ̱â À§ÇØ ·Î±× ¹é¾÷À̳ª ·Î±× ÀÚ¸£±â¸¦ ½ÃµµÇÏÁö´Â ¾Ê½À´Ï´Ù. µû¶ó¼­ SHRINKFILE ¶Ç´Â SHRINKDATABASE ¸í·ÉÀ» »ç¿ëÇÑ ÈÄ¿¡´Â ·Î±× ÀÚ¸£±â ¸í·ÉÀ» ÅëÇØ ÆÄÀÏÀ» ÁÙÀ̱â Àü¿¡ ·Î±×¸¦ ÀÚ¸£´Â ¸í·ÉÀ» ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.
  • ¾Æ·¡ÀÇ ±âÁØ¿¡¼­ Çã¿ëÇÏ´Â Å©±âº¸´Ù ÀÛÀº Å©±â·Î ·Î±×¸¦ ÁÙÀÏ ¼ö ¾ø½À´Ï´Ù.

    • ¿ø·¡ Å©±âº¸´Ù ·Î±×¸¦ ÀÛ°Ô ÁÙÀÌ·Á¸é °³º° ÆÄÀÏÀ» DBCC SHRINKFILEÀ» »ç¿ëÇÏ¿© ÁÙ¿©¾ß ÇÕ´Ï´Ù. DBCC SHRINKDATABASE¸¦ »ç¿ëÇÏ¸é ·Î±×¸¦ ¿ø·¡ Å©±â³ª ¸í½ÃÀûÀ¸·Î Á¤ÀÇÇÑ Å©±âº¸´Ù ÀÛ°Ô ÁÙÀÏ ¼ö ¾ø½À´Ï´Ù. CREATE DATABASE¿¡ ¸ðµç ¸í½ÃÀû ALTER DATABASE ¸í·ÉÀÌ ´õÇØÁö¹Ç·Î ¿ø·¡ Å©±â´Â ·Î±×ÀÇ Å©±â·Î Á¤Àǵ˴ϴÙ. ·Î±×ÀÇ ÀÚµ¿ Áõ°¡´Â ¿ø·¡ Å©±â¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.

    • ½ÇÁ¦ ·Î±× ÆÄÀÏÀº ÇØ´ç ·Î±× ÆÄÀÏ ³»¿¡¼­ ÇöÀç »ç¿ëµÇ°í ÀÖ´Â °ø°£ÀÇ ¾çº¸´Ù ÀÛÀ» ¼ö ¾ø½À´Ï´Ù. DBCC SQLPERF (LOGSPACE) ¸í·ÉÀ» »ç¿ëÇÏ¸é »ç¿ëµÈ °ø°£ÀÇ ¾çÀ» ¸ð´ÏÅÍ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

    • Model µ¥ÀÌÅͺ£À̽º ·Î±×ÀÇ ÇöÀç Å©±â´Â ÇØ´ç ¼­¹ö¿¡ ÀÖ´Â ¸ðµç µ¥ÀÌÅͺ£À̽º ·Î±×ÀÇ ÃÖ¼Ò Å©±âÀÔ´Ï´Ù. ±âº»ÀûÀ¸·Î Model µ¥ÀÌÅͺ£À̽ºÀÇ ·Î±×´Â 1MBº¸´Ù ÀÛ½À´Ï´Ù.

    • ·Î±×¸¦ °¡»ó ·Î±× ÆÄÀÏ(VLF) °æ°è±îÁö¸¸ ÁÙÀÏ ¼ö ÀÖÀ¸¹Ç·Î °ø°£À» »ç¿ëÇϰí ÀÖÁö ¾ÊÀº °æ¿ì¿¡µµ ·Î±× ÆÄÀÏÀ» VLFº¸´Ù ÀÛÀº Å©±â·Î ÁÙÀÌ´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. ¸¶Âù°¡Áö·Î VLFÀÇ ÀϺθ¦ »ç¿ë ÁßÀÎ °æ¿ì ÇØ´ç VLF¿¡¼­ »ç¿ë ÁßÀÎ °ø°£Àº ÁÙÀÏ ¼ö ¾ø½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº SQL Server Books OnlineÀÇ "Virtual Log Files" ¹× "Transaction Log Physical Architecture" Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ.


  • Æ®·£Àè¼Ç ·Î±×´Â "·¦¾î¶ó¿îµå" ·Î±×ÀÔ´Ï´Ù. À̴ ƯÁ¤ ½Ã°£¿¡ ·Î±× ½ÃÀÛ ºÎºÐ ¹×/¶Ç´Â ³¡ ºÎºÐ¿¡ "¿©À¯" ¶Ç´Â "Àç»ç¿ë °¡´É" °ø°£ÀÌ ÀÖ´Â VLF°¡ ÀÖÀ» ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ·Î±×¸¦ ÁÙÀÌ·Á¸é ÇØ´ç ·Î±×ÀÇ ¿©·¯ °÷¿¡ ¿©À¯ °ø°£ÀÌ ÀÖ¾î¾ß ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇØ´ç ·Î±×ÀÇ ³¡ ºÎºÐ¿¡ "¿©À¯" °ø°£ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ, Àüü VLF¸¦ ÁÙÀÏ ¼ö¸¸ ÀÖ½À´Ï´Ù. Æ®·£Àè¼Ç ·Î±×¸¦ ÁÙÀÌ·Á¸é ·Î±× ÆÄÀÏÀÇ ³¡¿¡ ÀÖ´Â VLF°¡ ºñȰ¼ºÈ­µÇ¾î Àß·Á¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº SQL Server Books OnlineÀÇ "Truncating the Transaction Log" Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ.
´ÙÀ½ ¸î °¡Áö »çÇ׿¡ À¯ÀÇÇϽʽÿÀ.
  • ½Ã½ºÅÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â º¯°æ ÀÛ¾÷À» ¼öÇàÇϱâ ÀüÀ̳ª ÈÄ¿¡ Ç×»ó ½Ã½ºÅÛ µ¥ÀÌÅͺ£À̽º ¹× »ç¿ëÀÚ µ¥ÀÌÅͺ£À̽º ¹é¾÷À» ¼öÇàÇϽʽÿÀ. DBCC SHRINKFILE ¹× DBCC SHRINKDATABASE´Â ·Î±ëµÇ´Â ÀÛ¾÷ÀÌ ¾Æ´Ï¸ç, À̵éÀ» ½ÇÇàÇϸé ÇâÈÄ Æ®·£Àè¼Ç ·Î±× ¹é¾÷µµ ¹«È¿È­µË´Ï´Ù. DBCC SHRINKFILE ¸í·ÉÀ̳ª DBCC SHRINKDATABASE ¸í·É Áß Çϳª¸¦ ½ÇÇàÇÑ ÈÄ¿¡´Â ¹Ýµå½Ã Àüü µ¥ÀÌÅͺ£À̽º ¹é¾÷À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.

  • Ãà¼Ò°¡ ÁøÇàµÉ ½Ã°£¿¡ ¿¹¾àµÈ ¹é¾÷ÀÌ ¾ø´ÂÁö È®ÀÎÇϽʽÿÀ.

  • ¿À·¡µÇ°Å³ª, Àå±â°£ ½ÇÇàÇϰųª ¶Ç´Â º¹Á¦µÇÁö ¾ÊÀº Æ®·£Àè¼ÇÀÌ ¾ø´ÂÁö È®ÀÎÇϽʽÿÀ. ÀÌ·¸°Ô È®ÀÎÇÏ·Á¸é ´ÙÀ½°ú À¯»çÇÑ Äڵ带 »ç¿ëÇϽʽÿÀ.
    DBCC OPENTRAN (database_name)
  • DBCC SHRINKFILE ¸í·ÉÀ̳ª DBCC SHRINKDATABASE ¸í·ÉÀ» ½ÇÇàÇÏ¿© Ãà¼Ò ÁöÁ¡À» Ç¥½ÃÇϽʽÿÀ. DBCC SHRINKFILE ¹× DBCC SHRINKDATABASE »ç¿ë ±ÇÇÑÀº sysadmin °íÁ¤ ¼­¹ö ¿ªÇÒÀ̳ª db_owner °íÁ¤ µ¥ÀÌÅͺ£À̽º ¿ªÇÒÀÇ ¸â¹ö¿¡ ±âº»ÀûÀ¸·Î Á¦°øµÇ¸ç, ±ÇÇÑ Àü°¡´Â ºÒ°¡´ÉÇÕ´Ï´Ù. ÀÌµé ¸í·ÉÀÇ Â÷ÀÌÁ¡¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº SQL Books OnlineÀÇ ´ÙÀ½ Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ. ¸Å°³ º¯¼ö°¡ ´Ù¸§¿¡ À¯ÀÇÇϽʽÿÀ.

    DBCC SHRINKFILE     (file_name, target_size)
    DBCC SHRINKDATABASE (database_name, target_percent)
  • ´õ¹Ì(dummy) Æ®·£Àè¼ÇÀ» ¸î °³ ¸¸µé¾î ·Î±×¸¦ °ãÄ¡°Ô ¸¸µç ÈÄ BACKUP ¸í·ÉÀ» ½ÇÇàÇÏ¿© ·Î±×¸¦ ÀÚ¸£½Ê½Ã¿À. BACKUP ¹®Àº ½ÇÁ¦·Î Ç¥½ÃµÈ ¸ñÇ¥ Å©±â·Î ·Î±×¸¦ ÁÙÀ̰íÀÚ ½ÃµµÇÕ´Ï´Ù.

    ´ÙÀ½Àº ÁÙÀÏ ¼ö ÀÖµµ·Ï ´ÜÀÏ ³í¸® ·Î±× ÆÄÀÏ¿¡ ´ëÇØ ·Î±×¸¦ °ãÄ¡°í ·Î±×°¡ À߸®°Ô ÇÏ´Â ´õ¹Ì Æ®·£Àè¼ÇÀ» ¸¸µå´Â ¹æ¹ýÀÇ »ùÇÃÀÔ´Ï´Ù. ÇÊ¿äÇÏ¸é »ç¿ëÀÚ È¯°æ¿¡ ¸Â°Ô »ùÇÃÀ» ¼öÁ¤ÇϽʽÿÀ.
    SET NOCOUNT ON
    DECLARE @LogicalFileName sysname,
            @MaxMinutes INT,
            @NewSize INT
    
    -- *** MAKE SURE TO CHANGE THE NEXT 3 LINES WITH YOUR CRITERIA. ***
    USE     Your_Database_Name              -- This is the name of the database 
    for which the log will be shrunk.
    SELECT  @LogicalFileName = 'Your_log',  -- Use sp_helpfile to identify the logical file name that you want to shrink.
            @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
            @NewSize = 100                  -- in MB
    
    -- Setup / initialize
    DECLARE @OriginalSize int
    SELECT @OriginalSize = size -- in 8K pages
      FROM sysfiles
      WHERE name = @LogicalFileName
    SELECT 'Original Size of ' + db_name() + ' LOG is ' + 
            CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + 
            CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
      FROM sysfiles
      WHERE name = @LogicalFileName
    CREATE TABLE DummyTrans
      (DummyColumn char (8000) not null)
    
    
    -- Wrap log and truncate it.
    DECLARE @Counter   INT,
            @StartTime DATETIME,
            @TruncLog  VARCHAR(255)
    SELECT  @StartTime = GETDATE(),
            @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
    -- Try an initial shrink.
    DBCC SHRINKFILE (@LogicalFileName, @NewSize)
    EXEC (@TruncLog)
    -- Wrap the log if necessary.
    WHILE     @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
          AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)  -- the log has not shrunk    
          AND (@OriginalSize * 8 /1024) > @NewSize  -- The value passed in for new size is smaller than the current size.
      BEGIN -- Outer loop.
        SELECT @Counter = 0
        WHILE  ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
          BEGIN -- update
            INSERT DummyTrans VALUES ('Fill Log')  -- Because it is a char field it inserts 8000 bytes.
            DELETE DummyTrans
            SELECT @Counter = @Counter + 1
          END   -- update
        EXEC (@TruncLog)  -- See if a trunc of the log shrinks it.
      END   -- outer loop
    SELECT 'Final Size of ' + db_name() + ' LOG is ' +
            CONVERT(VARCHAR(30),size) + ' 8K pages or ' + 
            CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
      FROM sysfiles 
      WHERE name = @LogicalFileName
    DROP TABLE DummyTrans
    PRINT '*** Perform a full database backup ***'
    SET NOCOUNT OFF
    ·Î±×°¡ ¿ø·¡ Å©±â¿¡¼­ ÁÙ¿©Á³´ÂÁö È®ÀÎÇϽʽÿÀ.ÇÊ¿äÇÑ °æ¿ì ¾ÕÀÇ ´Ü°è¸¦ ¹Ýº¹ÇϽʽÿÀ. ·Î±×°¡ ÁÙ¿©ÁöÁö ¾ÊÀ» °æ¿ì º» ¹®¼­ÀÇ ½ÃÀÛ ºÎºÐ¿¡ ³ª¿Í ÀÖ´Â ¿ä¾à Á¤º¸¸¦ Á¡°ËÇÏ¿© ·Î±×¸¦ ÁÙÀÌ´Â µ¥ ¹®Á¦°¡ ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.
·Î±×¸¦ ÁÙ¿´À¸¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.
  1. ¸¶½ºÅÍ µ¥ÀÌÅͺ£À̽º¸¦ Àüü µ¥ÀÌÅͺ£À̽º ¹é¾÷ÇÕ´Ï´Ù.
  2. »ç¿ëÀÚ µ¥ÀÌÅͺ£À̽º¸¦ Àüü µ¥ÀÌÅͺ£À̽º ¹é¾÷ÇÕ´Ï´Ù. SHRINK ¸í·ÉÀÌ ·Î±ëµÇÁö ¾Ê°í, Àüü µ¥ÀÌÅͺ£À̽º ¹é¾÷À» ¿Ï·áÇÏÁö ¾ÊÀ¸¸é ÇâÈÄ Æ®·£Àè¼Ç ·Î±× ¹é¾÷ÀÌ ¹«È¿È­µÇ±â ¶§¹®¿¡ ÀÌ·¯ÇÑ ÀÛ¾÷ÀÌ ÇÊ¿äÇÕ´Ï´Ù.
·Î±×°¡ Ä¿Áö´Â ÀÌÀ¯¸¦ È®ÀÎÇÏ·Á¸é ¿­¸° Æ®·£Àè¼Ç, Àå±â°£ ½ÇÇàµÇ´Â Æ®·£Àè¼Ç, º¹Á¦µÇÁö ¾ÊÀº Æ®·£Àè¼Ç ¶Ç´Â ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ´Â Æ®·£Àè¼ÇÀ» Á¡°ËÇÏ¸é µË´Ï´Ù.

ÂüÁ¶

ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.
110139? (http://support.microsoft.com/kb/110139/KO/ ) INF: SQL Æ®·£Àè¼Ç ·Î±×°¡ °¡µæ Â÷´Â ¿øÀÎ
62866? (http://support.microsoft.com/kb/62866/EN-US/ ) INFO: Reasons Why SQL Transaction Log Is Not Being Truncated
66057? (http://support.microsoft.com/kb/66057/EN-US/ ) PRB: Running Out of Log Space When Running Large Bulk Loads
80629? (http://support.microsoft.com/kb/80629/EN-US/ ) PRB: Transaction Log Partially Truncated
SQL Server Books Online; topics: "Transaction Log Physical Architecture"; "Optimizing Transaction Log Performance"
Ű¿öµå:?
kbsqlmanagementtools kbinfo kbsqlserv kbsqlserv700 KB256650