Operace zmenšení není duplikována na zrcadlení databáze při použití zrcadlení databáze SQL Server 2005

Příznaky

Při použití zrcadlení databáze na serveru Microsoft SQL Server 2005, SQL Server automaticky šíří změny v hlavní databázi zrcadlení databáze. Však pokud spustíte DBCC SHRINKDATABASE příkaz nebo příkazy DBCC SHRINKFILE zmenšení hlavní databáze, operace zmenšení není duplikována na zrcadlení databáze.

Příčina

Zrcadlení databáze bude změnit velikost fyzického souboru až po kontrolní bod.

Jak potíže obejít

Metoda 1

Chcete-li tento problém vyřešit, spusťte následující příkazy k vytvoření nové uložené procedury v hlavní databázi. Zmenšení hlavní databáze namísto spuštění příkazu DBCC SHRINKDATABASE nebo DBCC SHRINKFILE výkazu, použití této uložené procedury.
     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

Pokud chcete zmenšení mydb databáze, spusťte následující příkaz.
EXEC sp_shrink_mirrored_database 'mydb'

Metoda 2

Ruční kontrolní bod vydat po zmenšení souborů jistiny.

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Vlastnosti

ID článku: 937531 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor