Obnovení z úplné transakce protokolu v databázi serveru SQL Server

ÚVOD

Protokoly transakcí úplné může nepoužitelnou databázi Microsoft SQL Server. Tento článek popisuje, jak oříznout a zmenšit velikost protokolu transakcí při jejich výskytu příliš velký. Tento článek také popisuje jak zabránit růstu neočekávaně protokolu transakcí.

Další informace

Krok 1: zmenšit velikost protokolu o transakcích


Při naplnění protokolů transakcí, je třeba zmenšit velikost protokolu transakcí. Chcete-li to provést, je nutné zkrátit neaktivní transakcí v transakčním protokolu a poté zmenšit soubor protokolu transakcí.

Poznámka: Protokoly transakcí jsou velmi důležité pro zachování transakční integrity databáze. Soubory protokolu transakcí, Ne odstranit, dokonce i po zálohování databáze a protokolů transakcí. Krok 2: zkrátit neaktivní transakcí v transakčním protokolu


Při naplnění protokolů transakcí, okamžitě zálohujte soubor protokolu transakcí. Během zálohování souboru protokolu transakcí serveru SQL Server automaticky zkrátí neaktivní část souboru protokolu transakcí. Neaktivní část souboru protokolu transakcí obsahuje dokončené transakce tak, aby soubor protokolu transakcí již SQL Server používá během procesu obnovení. SQL Server znovu použije tento zkrácený, neaktivní prostor transakčního protokolu Neumožnit protokol transakce pokračovat v růstu a využívají více místa.

Další informace o problémech, které je nutné zvážit při zálohování protokolů transakcí a při obnovení zálohy protokolu transakce naleznete v následujících tématech v SQL Server Books Online:
  • Zálohy protokolu transakce
  • Transakce protokolu zálohování a obnovení
Můžete také odstranit neaktivní transakce ze souboru protokolu transakcí pomocí Truncate metody. Další informace o zkrácení protokolu transakcí naleznete v tématu "Zkracování protokolu transakce" v SQL Server Books Online.

Důležité: Po ručně vymazat data souborů protokolu transakcí, je nutné vytvořit úplnou zálohu databáze před vytvořením zálohy protokolu transakce.

Další informace o problémech, které mohou nastat při zkrátit soubory protokolu transakcí klepněte na následující číslo článku databáze Microsoft Knowledge Base:

62866 důvody, proč protokol transakcí SQL není zkrácen.

Krok 3: zmenšit soubor protokolu transakcí


Operace zálohování nebo Truncate metoda nezmenší velikost souboru protokolu. Chcete-li zmenšit velikost souboru protokolu transakcí, je třeba zmenšit soubor protokolu transakcí. Chcete-li zmenšit soubor protokolu transakcí na požadovanou velikost a odstranit nepoužité stránky, musí pomocí operace DBCC SHRINKFILE. Příkaz DBCC SHRINKFILE jazyka Transact-SQL zmenšovat můžete pouze ty neaktivní část souboru protokolu.

Poznámka: Příkaz DBCC SHRINKFILE jazyka Transact-SQL nelze zkrátit protokolu a zmenšit velikost využitého místa na vlastním souboru protokolu.

Další informace o zmenšení souborů protokolů transakcí naleznete v následujících tématech v SQL Server Books Online:
  • Zmenšením transakční protokol
  • DBCC SHRINKFILE
Další informace o tom, jak zmenšit velikost souborů protokolu transakcí v SQL Server 2000 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

272318 zmenšením protokolu transakcí v SQL Server 2000 DBCC SHRINKFILE

Další informace o problémech, které mohou nastat při zmenšení souboru protokolu transakcí klepněte na následující čísla článku zobrazení v článcích znalostní báze Microsoft Knowledge Base:

814574 PRB: chybová zpráva: "Nelze zmenšit velikost souboru protokolu..." dochází při zmenšování souboru protokolu transakcí

324432 PRB: příkazy DBCC SHRINKFILE a SHRINKDATABASE nefungují vzhledem k řídce osídlených text, ntext nebo image sloupce


Krok 4: zabránit růstu neočekávaně soubory protokolu transakcí


Zabránit neočekávaně pěstování soubory protokolu transakcí, zvažte, pomocí jedné z následujících metod:
  • Nastavte velikost transakce souborů protokolu na vysokou hodnotu, aby se zabránilo automatické rozbalení souborů protokolu transakcí.
  • Konfigurujte automatické rozšíření souborů protokolů transakcí pomocí jednotky paměti namísto v procentech po důkladně vyhodnotit velikost paměti optimální.

    Další informace o problémech, které je třeba zvážit při konfiguraci možnost automatické zvětšování získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

    315512 důležité informace týkající se konfigurace automatické zvětšování a autoshrink

  • Změňte model obnovení. Pokud dojde havárii nebo poškození dat, je třeba obnovit databázi tak, že je zachována konzistence dat a transakční integrity databáze. Jak důležité podle data v databázi je, můžete použít jeden z následujících modelů recovery určit, jak zálohovat a co je vystavení ztrátě dat:
    • Jednoduché zotavení modelu
    • Model obnovy celé
    • Model obnovy Hromadně zaevidované

    Můžete použít model jednoduchého obnovení obnovit poslední zálohu databáze databáze. Nebo můžete použít model obnovy celé a Hromadně zaevidované obnovení model obnovení databáze až k bodu, když došlo k selhání. Chcete-li to provést, obnovte databázi pomocí souboru zálohy protokolu transakce.

    Ve výchozím nastavení v SQL Server 2000 a SQL Server 2005 model obnovení pro databázi serveru SQL Server je nastavena na model obnovy celé. S model obnovy celé pravidelných záloh protokolu transakce lze zabránit růstu neúměrné velikosti databáze velikost souboru protokolu transakcí. Však pokud nejsou prováděny pravidelné zálohy protokolu transakce, soubor protokolu transakcí roste k vyplnění disku a nebudete moci provádět žádné operace změny dat v databázi serveru SQL Server.

    Model obnovení z úplné můžete změnit na jednoduché Pokud nechcete použít soubory protokolu transakcí během operace obnovení po havárii.
  • Zálohujte soubory protokolu transakcí pravidelně k odstranění neaktivních transakcí v transakčním protokolu.
  • Návrh malé transakce.
  • Ujistěte se, že žádné nepotvrzené transakce nadále spuštěna po neomezenou dobu.
  • Naplánování aktualizace statistiky možnost dojít denně.
  • Defragmentovat indexy výhody výkonu pracovního vytížení v provozním prostředí, použijte místo příkazu DBCC DBREINDEX Transact-SQL příkazu DBCC INDEXDEFRAG jazyka Transact-SQL. Při spuštění příkazu DBCC DBREINDEX, protokol transakce mohou rozšířit výrazně, pokud je v režimu úplné obnovení databáze serveru SQL Server. Kromě toho příkazu DBCC INDEXDEGRAG neudržuje zámky po dlouhou dobu, na rozdíl od příkazu DBCC DBREINDEX.

    Další informace o defragmentaci indexů na serveru SQL Server 2000 naleznete na následujícím webu společnosti Microsoft:
Další informace o soubory protokolu transakcí
V SQL Server 2000 a SQL Server 2005 každý databáze obsahuje alespoň jeden datový soubor a soubor protokolu jednu transakci. SQL Server ukládá data fyzicky v datovém souboru. Soubor protokolu transakcí jsou uloženy podrobnosti o všech změnách, které provedete v databázi serveru SQL Server a podrobnosti o transakcích, které provádí všechny změny. Vzhledem k tomu, že transakční integrity je považována za základní a vnitřní vlastnost serveru SQL Server, protokolování podrobnosti o transakcích nelze vypnout v serveru SQL Server.

Soubor protokolu transakcí je logicky rozdělen do menších částí, které jsou označovány jako soubory protokolu virtuální. V SQL Server 2000 můžete nakonfigurovat soubor protokolu transakcí, které chcete rozbalit podle potřeby. Rozšíření protokolu transakcí můžete řídit uživatele nebo může být nakonfigurován pro použití všechny dostupné místo na disku. Souborů protokolu virtuálních jednotek jsou prováděny změny, které provádí velikost souboru protokolu transakcí, například zkrácení souborů protokolů transakcí nebo pěstování soubory protokolu transakcí serveru SQL Server.

Pokud je soubor protokolu transakcí, který odpovídá databáze serveru SQL Server a pokud jste nastavili možnost pro transakce protokolu soubory automaticky růst souboru protokolu transakcí roste v jednotkách soubory protokolu virtuální. V některých případech může být velmi velký soubor protokolu transakcí a může vzniknout nedostatek místa na disku. Pokud soubor protokolu transakcí roste, dokud soubor protokolu používá všechny dostupné místo na disku a nelze dále rozšířit, můžete již provádět všechny operace změny dat v databázi. Kromě toho může SQL Server označit databázi jako podezřelé z důvodu nedostatku místa pro rozšíření protokolu transakce.

Další informace o scénářích, které mohou způsobit, že soubor protokolu transakcí rostl neočekávaně klepněte na následující číslo článku databáze Microsoft Knowledge Base:

317375 protokol transakcí neočekávaně roste nebo naplnění na serveru SQL Server


Další zdroje

Další informace o tom, jak zmenšit velikost protokolu o transakcích, navštivte následující weby společnosti Microsoft:


Odkazy

Další informace o odstraňování potíží s požadavek místa na disku během procesu obnovení naleznete v tématu "nedostatek místa na disku" v SQL Server Books Online. Další informace o architektuře protokolu transakcí naleznete v následujících tématech v SQL Server Books Online:
  • Architektura protokolů transakcí
  • Logická architektura protokolů transakcí
  • Transakce protokolu fyzické architektury
Další informace o modelech obnovení v SQL Server 2000 naleznete v následujících tématech v SQL Server Books Online:
  • Výběr modelu obnovení
  • Jednoduché obnovení
  • Úplné obnovení
  • Hromadně zaevidované obnovení
  • Modely obnovy přepínání

Vlastnosti

ID článku: 873235 - Poslední kontrola: 16. 1. 2017 - Revize: 2

Váš názor