您目前已離線,請等候您的網際網路重新連線

當您使用資料庫鏡像在 SQL Server 2005 中壓縮作業不是在鏡像資料庫上重複

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

937531
徵狀
當您使用資料庫鏡像在 Microsoft SQL Server 2005 中時,SQL Server 會自動傳播到鏡像資料庫主體資料庫上的任何變更。 不過,如果您執行 DBCC 式陳述式或 DBCC 式陳述式,以縮小主體資料庫,壓縮作業鏡像資料庫上不重複。
發生的原因
資料庫鏡像將只在檢查點之後變更實體檔案大小。
其他可行方案

方法 1

若要解決這個問題,執行下列陳述式在 master 資料庫中建立新的預存程序。 Then, use this stored procedure to shrink the principal database instead of running the DBCC SHRINKDATABASE statement or the DBCC SHRINKFILE statement.
     use master       go       if object_id ('sp_shrink_mirrored_database', 'P') is not null          drop proc sp_shrink_mirrored_database        go       create procedure sp_shrink_mirrored_database @dbname sysname, @target_percent int = null       as       begin         declare @filename sysname         declare @filesize int         declare @sql nvarchar(4000)                  if @target_percent is null           dbcc shrinkdatabase (@dbname)         else            dbcc shrinkdatabase (@dbname, @target_percent)         declare c cursor for          select [name], [size] from sys.master_files where type=0 and database_id = db_id (@dbname)         open c         fetch next from c into @filename, @filesize         while @@fetch_status=0         begin           set @filesize=(@filesize+1)*8           set @sql='alter database [' + @dbname + '] modify file ( name='              + @filename + ', size=' + cast(@filesize as nvarchar) + 'kb )'           execute sp_executesql @sql           fetch next from c into @filename, @filesize         end         close c         deallocate c       end       go
For example, if you want to shrink the mydb database, run the following statement.
EXEC sp_shrink_mirrored_database 'mydb'

方法 2

壓縮在主體上的檔案後發出手動檢查點。
狀況說明
Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

警告:本文已自動翻譯

內容

文章識別碼:937531 - 最後檢閱時間:05/12/2010 15:56:15 - 修訂: 2.0

  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • kbmt kbtshoot kbexpertiseadvanced kbsql2005engine kbprb KB937531 KbMtzh
意見反應