Al momento sei offline in attesa che la connessione Internet venga ristabilita

L'operazione di compattazione non viene duplicata nel database mirror quando si utilizza il mirroring del database in SQL Server 2005

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 937531
Sintomi
Quando si utilizza il mirroring del database in Microsoft SQL Server 2005, SQL Server propaga automaticamente eventuali modifiche al database principale al database mirror. Tuttavia, se si esegue DBCC SHRINKDATABASE o più istruzioni DBCC SHRINKFILE per compattare il database principale, l'operazione di compattazione non viene duplicata nel database mirror.
Cause
Il mirroring del database verrà modificata la dimensione dei file fisici solo dopo un checkpoint.
Workaround

Metodo 1

Per aggirare il problema, eseguire le istruzioni riportate di seguito per creare una nuova stored procedure nel database 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'

Metodo 2

Emettere un checkpoint manuale dopo la compattazione dei file sul principale.
Status
Microsoft ha confermato che si tratta di un problema con i prodotti elencati nella sezione "Si applica a".

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 937531 - Ultima revisione: 05/12/2010 15:56:15 - Revisione: 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 KbMtit
Feedback
did=1&t=">