INF: Làm th? nào đ? thu nh? SQL Server 7.0 giao d?ch đăng nh?p

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 256650 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Có m?t s? l? do ph? bi?n t?i sao m?t Nh?t k? giao d?ch có th? không co l?i khi b?n s? d?ng DBCC SHRINKFILE ho?c DBCC SHRINKDATABASE l?nh. Các ch? đ? SQL Server sách tr?c tuy?n "dbcc shrinkfile" và "dbcc shrinkdatabase" cung c?p thông tin chi ti?t, nhưng tóm t?t sau.

THÔNG TIN THÊM

  • Trong Microsoft SQL Server 7.0, SHRINKFILE và SHRINKDATABASE l?nh đ?t m?t m?c tiêu c? cho thu h?p l?i. M?i t?p tin đăng nh?p đư?c đánh d?u b?ng các l?nh, nhưng th?c t? nó là m?t sao lưu đăng nh?p ho?c đăng nh?p truncation mà c? g?ng thu h?p l?i các t?p tin. V? v?y, sau khi b?n s? d?ng SHRINKFILE ho?c SHRINKDATABASE l?nh b?n ph?i c?ng l?nh m?t mà truncates đăng nh?p trư?c khi có b?t k? cơ h?i mà nó s? gi?m.
  • B?n không th? co l?i m?t đăng nh?p cho m?t kích thư?c nh? hơn so v?i nh?ng g? đư?c cho phép b?i các tiêu chí:

    • Thu h?p l?i m?t b?n ghi nh? hơn so v?i kích thư?c ban đ?u c?a nó b?n ph?i co l?i t?p tin cá nhân v?i DBCC SHRINKFILE. B?n không th? s? d?ng DBCC SHRINKDATABASE thu h?p l?i m?t đăng nh?p cho m?t kích thư?c nh? hơn so v?i c? g?c ho?c đư?c xác đ?nh m?t cách r? ràng. Kích thư?c ban đ?u đư?c đ?nh ngh?a là kích thư?c c?a Nh?t k? do đ? t?o ra cơ s? d? li?u c?ng v?i b?t k? l?nh thay đ?i cơ s? d? li?u r? ràng. Kích thư?c ban đ?u không bao g?m s? tăng trư?ng t? đ?ng các b?n ghi.

    • T?p nh?t k? v?t l? không bao gi? có th? nh? hơn so v?i s? lư?ng không gian hi?n đang đư?c s? d?ng trong các t?p tin log. B?n có th? s? d?ng l?nh DBCC SQLPERF (LOGSPACE) đ? theo d?i s? lư?ng không gian đư?c s? d?ng.

    • Kích thư?c hi?n th?i c?a cơ s? d? li?u mô h?nh đăng nh?p là kích thư?c t?i thi?u cho b?t k? m?t cơ s? d? li?u đăng nh?p vào máy ch? đó. Theo m?c đ?nh, cơ s? d? li?u mô h?nh đăng nh?p là ít hơn 1 MB.

    • B?i v? m?t Nh?t k? có th? đư?c thu nh? ch? đ? m?t ?o đăng nh?p t?p tin (BOÅ) ranh gi?i, nó là không th? đ? thu nh? m?t t?p s? ghi cho m?t kích thư?c nh? hơn so v?i m?t BOÅ th?m chí n?u không gian không đư?c s? d?ng. Tương t?, n?u m?t ph?n c?a m?t BOÅ là s? d?ng b?n không th? co l?i b?t k? không gian trong đó BOÅ. Đ? bi?t thêm chi ti?t, xem các ch? đ? "T?p tin đăng nh?p ?o" và "Giao d?ch đăng nh?p v?t l? ki?n trúc" trong SQL Server sách tr?c tuy?n.


  • Nh?t k? giao d?ch là m?t "b?c xung quanh" đăng nh?p. Đi?u này có ngh?a r?ng t?i b?t k? th?i gian nh?t đ?nh có th? có VLFs v?i không gian "mi?n phí" ho?c "tái s? d?ng" ? các đ?u, trung, và/ho?c k?t thúc các b?n ghi. Thu h?p l?i các b?n ghi có ph?i là "tr?ng" ? ph?n cu?i c?a các đăng nh?p, không ch? mi?n phí không gian b?t c? nơi nào trong Nh?t k?. Ngoài ra, b?n ch? có th? co l?i toàn b? VLFs. Thu h?p l?i các giao d?ch đăng nh?p VLFs ? ph?n cu?i c?a các t?p tin log ph?i không ho?t đ?ng và c?t ng?n. Đ? bi?t thông tin chi ti?t hơn, đ? c?p đ?n ch? đ? "Truncating the Log giao d?ch" trong SQL Server sách tr?c tuy?n.
Dư?i đây là m?t s? đi?u c?n lưu ?:
  • Luôn th?c hi?n h? th?ng cơ s? d? li?u và ngư?i s? d?ng cơ s? d? li?u sao lưu trư?c khi và sau khi b?n th?c hi?n thay đ?i ?nh hư?ng đ?n h? th?ng. DBCC SHRINKFILE và DBCC SHRINKDATABASE không ho?t đ?ng đăng nh?p, và ch?y chúng invalidates ti?p t?c giao d?ch đăng nh?p sao lưu. B?n ph?i th?c hi?n m?t sao lưu đ?y đ? cơ s? d? li?u sau khi b?n ch?y DBCC SHRINKFILE ho?c DBCC SHRINKDATABASE l?nh.

  • Đ?m b?o r?ng không có không có sao lưu theo l?ch tr?nh đ? x?y ra trong th?i gian co ngh?a v? ph?i x?y ra.

  • Đ?m b?o r?ng không có không có giao d?ch c?, dài ch?y ho?c unreplicated. Đ? làm như v?y, h?y s? d?ng m? tương t? như:
    DBCC OPENTRAN (database_name)
    					
  • Ch?y l?nh DBCC SHRINKFILE ho?c DBCC SHRINKDATABASE đ? đánh d?u m?t shrinkpoint. DBCC SHRINKFILE và DBCC SHRINKDATABASE c?p phép m?c đ?nh cho các thành viên c?a vai tr? máy ch? c? đ?nh Ilos ho?c các db_owner cơ s? d? li?u c? đ?nh vai tr?, và đư?c không th? chuy?n như?ng. Thông tin v? s? khác nhau gi?a các l?nh, là các ch? đ? sau trong SQL sách tr?c tuy?n (lưu ? các tham s? khác nhau):

    DBCC SHRINKFILE     (file_name, target_size)
    DBCC SHRINKDATABASE (database_name, target_percent)
    					
  • T?o m?t s? giao d?ch gi? đ? th?c hi?n đăng nh?p b?c xung quanh và sau đó phát hành m?t l?nh sao lưu đ? truncate Nh?t k?. Sao lưu tuyên b? là nh?ng g? th?c s? c? g?ng thu h?p l?i các đăng nh?p kích thư?c m?c tiêu đánh d?u.

    Đây là m?t m?u như th? nào đ? t?o ra m?t giao d?ch gi? mà k?t thúc t?t đ?p đăng nh?p cho m?t t?p s? ghi đơn h?p l? và làm cho nó truncate, cho phép cho s? hao h?t. S?a đ?i m?u như c?n thi?t cho môi trư?ng c?a b?n.
       SET NOCOUNT ON
       DECLARE @LogicalFileName sysname,
               @MaxMinutes INT,
               @NewSize INT
    
       -- *** MAKE SURE TO CHANGE THE NEXT 4 LINES WITH YOUR CRITERIA. ***
       USE     [Test DB]              -- This is the name of the database
                                      -- for which the log will be shrunk.
       SELECT  @LogicalFileName = 'Test DB 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    = 10       -- 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
    					
    Ki?m tra xem n?u các b?n ghi đ? thu nh? t? kích thư?c ban đ?u c?a nó.L?p l?i các bư?c trư?c n?u c?n thi?t. N?u các b?n ghi không thu h?p l?i, l?i ph?n tóm t?t ? trên cùng c?a bài vi?t đ? xem n?u b?n đang g?p ph?i b?t k? v?n đ? thư?ng g?p v?i thu h?p l?i Nh?t k?.
Sau khi thu nh? đăng nh?p:
  1. Th?c hi?n m?t sao lưu cơ s? d? li?u đ?y đ? c?a cơ s? d? li?u t?ng th?.
  2. Th?c hi?n m?t sao lưu đ?y đ? cơ s? d? li?u cơ s? d? li?u ngư?i dùng. Đi?u này là c?n thi?t v? l?nh SHRINK không đăng nh?p và invalidates trong tương lai giao d?ch đăng nh?p b?n sao lưu tr? khi m?t sao lưu cơ s? d? li?u đ?y đ? hoàn t?t.
Đ? xác đ?nh l? do t?i sao Nh?t k? đang tăng trư?ng r?t l?n t?i đ?a đi?m đ?u tiên, b?n có th? ki?m tra đ?i v?i các giao d?ch m?, các giao d?ch ch?y dài, unreplicated giao d?ch ho?c các giao d?ch liên l?c nhi?u d? li?u.

TÀI LIỆU THAM KHẢO

Đ? bi?t thêm chi ti?t, b?m vào nh?ng con s? bài vi?t dư?i đây đ? xem các bài vi?t trong cơ s? ki?n th?c Microsoft:
110139 INF: Nguyên nhân c?a SQL giao d?ch đăng nh?p đi?n
62866 Thông tin: L? do t?i sao SQL giao d?ch đăng nh?p không đư?c c?t ng?n
66057 PRB: Ch?y đăng nh?p không gian khi ch?y l?n v?i s? lư?ng l?n t?i
80629 PRB: Giao d?ch đăng nh?p m?t ph?n c?t ng?n
SQL Server sách tr?c tuy?n; các ch? đ?: "Giao d?ch đăng nh?p v?t l? Architecture"; "T?i ưu hóa hi?u su?t s? ghi c?a giao d?ch"

Thu?c tính

ID c?a bài: 256650 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 7.0 Standard Edition
T? khóa: 
kbsqlsetup kbinfo kbsqlserv kbsqlserv700 kbmt KB256650 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:256650

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com