máme trochu historie zálohování zde.

máme tu trochu historie zálohování.

SQL Server sleduje historii každé zálohy. Ukládá tato data do databáze MSDB. Jedná se o systémovou databázi a ve výchozím nastavení jsou naše systémové databáze uloženy na jednotce C, pokud není během instalace uvedeno jinak.

to představuje nebezpečí několika různými způsoby:

jednotka C se může zaplnit, což způsobí selhání zápisu MSDB. Systémová jednotka se zaplní častěji, než si myslíte-způsobené neopatrnými uživateli stahujícími obrovské soubory na plochu (umístěné na systémové jednotce) nebo aktualizacemi systému Windows stahujícími mnoho souborů do dočasné složky na systémové jednotce.

MSDB může růst, aby vyplnil jednotku C, což způsobí selhání systému Windows. V případech, kdy provádíme velmi časté zálohování protokolu transakcí velkého počtu databází a nikdy nevyčistíme MSDB, může být tato databáze dostatečně velká, aby ohrozila malé disky C. Když se jednotka C naplní, systém Windows selže tvrdě.

systémová jednotka je často pomalá. Ve starých verzích serveru SQL Server nebyly systémové databáze dobře indexovány. Zkombinujte to s pomalými lokálními jednotkami a máme recept na pomalý přístup k MSDB. V jednom případě, během našich nočních záložních oken, 2/3 času bylo vynaloženo pouze na aktualizaci MSDB!

monitorovací nástroje mohou dotazovat MSDB neefektivně. Viděli jsme případy, kdy nástroje pro monitorování serverů třetích stran neustále kontrolovaly MSDB, aby se ujistil, že všechny databáze jsou zálohovány, ale jejich dotazy nepoužívaly indexy. Tyto dotazy mohou být nejpomalejší na serveru.

tato část našeho skriptu SP_BLITZ SQL Server zkontroluje, zda je historie zálohování MSDB starší než 60 dní. To samo o sobě není problém-možná budete chtít zachovat dlouhé období historie zálohování tam jen proto, aby výkon propustnost vykazování-ale zvážit přesunutí těchto dat do Excelu nebo váš oblíbený nástroj pro podávání zpráv, spíše než bít MSDB pokaždé.

vraťte se do sp_Blitz nebo nám položte otázky

jak vyčistit přetíženou historii zálohování MSDB

zvažte vymazání historie zálohování MSDB dat starších než 60 dní. Můžete to udělat několika různými způsoby:

  • můžete vytvořit plán údržby, který pravidelně spouští úlohu vyčištění historie.
  • můžete vytvořit jednoduchou úlohu agenta SQL Serveru, která pravidelně spouští sp_delete_backuphistory (můžete ji také spustit sp_purge_jobhistory, pokud chcete odpovídat funkčnosti plánu údržby).

rozbalte do uzlu plánu údržby v SSMS, klikněte pravým tlačítkem myši a zvolte “ Nový plán údržby…“

2015-04-10_14-20-46

vyberte úlohu vyčištění údržby z okna Toolbox (všimněte si, že někdy se toto okno skryje vlevo pod Průzkumníkem objektů v SSMS:

2015-04-10_14-21-26

Chcete-li dokončit, poklepejte na úkol, vyberte typ vyčištění, který chcete provést, a kolik dat chcete zachovat. Někdy vytvořím dva úkoly, protože se starám méně o historii úloh agenta a historii plánu údržby než o zálohy a obvykle chci, aby Moje historie zálohování odpovídala mým zásadám uchovávání dat.

2015-04-10_14-22-03

Ať tak či onak, pokud má váš server velké množství historie, tento krok bude trvat loooong čas spustit poprvé. Jak Brent poznamenal v článku o úzkém hrdle MSDB, možná se budete muset uchýlit k extrémním opatřením, jako je změna cizích klíčů systémové databáze, jen aby došlo k odstranění.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.