Die Verkleinerung wird nicht auf die Spiegeldatenbank dupliziert, wenn Sie die Datenbankspiegelung in SQL Server 2005

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 937531 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie die Datenbankspiegelung in Microsoft SQL Server 2005 verwenden, gibt SQL Server automatisch alle Änderungen auf der Prinzipaldatenbank zur Spiegeldatenbank weiter. Wenn Sie die DBCC SHRINKDATABASE-Anweisung oder der Anweisungen DBCC SHRINKFILE zum Verkleinern der Prinzipaldatenbank ausführen, wird die Verkleinerung jedoch nicht auf der Spiegeldatenbank dupliziert.

Ursache

Die Datenbankspiegelung wird die physische Dateigröße erst nach einem Prüfpunkt ändern.

Abhilfe

Methode 1

Um dieses Problem zu umgehen, führen Sie folgenden Anweisungen aus, um eine neue gespeicherte Prozedur in der master-Datenbank zu erstellen. 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'

Methode 2

Geben Sie einen manuellen Prüfpunkt nach dem Verkleinern der Dateien auf dem Prinzipal.

Status

Microsoft hat bestätigt, dass dies ein Problem in der Microsoft-Produkten handelt, die im Abschnitt "Beziehen sich auf" aufgeführt sind.

Eigenschaften

Artikel-ID: 937531 - Geändert am: Mittwoch, 12. Mai 2010 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbmt kbtshoot kbexpertiseadvanced kbsql2005engine kbprb KB937531 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 937531
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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