Операция сжатия не дублируется в зеркальной базе данных при использовании зеркального отображения базы данных в SQL Server 2005

Переводы статьи Переводы статьи
Код статьи: 937531 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

При использовании зеркального отображения базы данных Microsoft SQL Server 2005, SQL Server автоматически передает все изменения в основной базе данных на зеркальную базу данных. Тем не менее если инструкция DBCC SHRINKDATABASE инструкции или инструкции DBCC SHRINKFILE сжать основной базы данных, операция сжатия не дублируется в зеркальной базе данных.

Причина

Зеркальное отображение базы данных будет изменен размер физического файла только после контрольной точки.

Временное решение

Способ 1.

Чтобы обойти эту проблему, выполните следующие инструкции для создания новой хранимой процедуры в базе данных master. Затем с помощью этой хранимой процедуры для основной базы данных вместо выполнения инструкции DBCC SHRINKDATABASE или DBCC SHRINKFILE оператора уменьшения.
     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
Например, если вы хотите сжатьmydbБаза данных, выполните следующую инструкцию.
EXEC sp_shrink_mirrored_database 'mydb'

Способ 2

Выполните вручную контрольной точки после сжатия файлов на основном сервере.

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к»..

Свойства

Код статьи: 937531 - Последний отзыв: 28 ноября 2010 г. - Revision: 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
Ключевые слова: 
kbtshoot kbexpertiseadvanced kbsql2005engine kbprb kbmt KB937531 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:937531

Отправить отзыв

 

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