sql >> Databáze >  >> RDS >> Sqlserver

Způsoby obnovení dat ze souboru protokolu transakcí serveru SQL Server

Shrnutí: Mnohokrát správce databáze SQL hledá způsoby, jak obnovit data z protokolů transakcí serveru SQL Server, může si uživatel přečíst tento článek, aby provedl tento úkol. Poskytli jsme nejlepší možný a také nejjednodušší způsob, jak obnovit data ze souboru (.ldf). V případě, že čelíte problémům s poškozením databáze a chcete obnovit databázové objekty, vyzkoušejte totoObnovení databáze SQL Software. Pro další informace si uživatel může přečíst tento článek.

Jsou chvíle, kdy klienti čelí politováníhodným databázovým okolnostem ve svých databázích SQL Server. K situacím může dojít při správě a podpoře jejich databázových souborů. Občas jsou databázové objekty smazány neúmyslně, kvůli čemuž se správci databáze potýkají s mnoha problémy. Následně, abyste se vrátili k běžnému pracovnímu procesu, by měly být soubory obnoveny zpět do databáze SQL Server.

Protokol transakcí serveru SQL hraje významnou úlohu při obnově smazaných dat v případě, že omylem přehrajete operaci DELETE nebo UPDATE s nevhodným stavem nebo bez podmínek filtrování. Toho lze dosáhnout poslechem záznamů uložených uvnitř této černé skříňky, která je známá jako soubor protokolu transakcí serveru SQL.

Jak obnovit data ze souboru protokolu transakcí serveru SQL Server

Abychom analyzovali různé techniky, které můžeme použít k obnově dat ze souboru SQL Server Transaction Log, vytvoříme další databázi s jedinou tabulkou pomocí níže uvedeného skriptu:

Po vytvoření databáze a tabulky naplníme tuto tabulku 30 záznamy pomocí příkazu INSERT INTO T-SQL pod ním:

Jak bychom mohli obnovit data tabulky, protože dosud nebyla z databáze odebrána žádná záloha, pokud se nad touto tabulkou provede příkaz UPDATE s příkazem nowhere použitým k filtrování dat, která mají být změněna?

Využití vestavěných metod

1.) fn_dblog: Obsah protokolu transakcí serveru SQL lze číst online pomocí různých implicitních funkcí. První funkcí, kterou se pokusíme použít k obnovení ztracených dat, je fn_dblog . Je to nezdokumentovaná funkce s tabulkovou hodnotou rámce, která se používá k ponoření se do protokolu transakcí serveru SQL Server a zobrazení obsahu dynamického segmentu tohoto souboru.

Aby bylo možné využít fn_dblog() funkce, musíte zadat dva parametry, začátek a konec LSN log. Chcete-li zobrazit všechny protokoly dostupné v dynamickém segmentu souboru protokolu transakcí SQL, můžete těmto dvěma parametrům předat hodnotu NULL. Vzhledem k tomu, že výsledek se vrátil z práce fn_dblog() obsahuje 129 sloupců, je lepší vybrat pouze segmenty, které obsahují data, o která máte zájem, a filtrovat výsledek tak, aby zobrazoval pouze operaci, kterou hodláte obnovit. Například operace LOP_INSERT_ROWS se zaprotokoluje, když je vložen jiný záznam, operace LOP_DELETE_ROWS se zaprotokoluje, když je odstraněn nový záznam, a operace LOP_MODIFY_ROW se zaprotokoluje při aktualizaci aktuálního záznamu. Níže uvedený skript lze použít ke kontrole aktualizačních příkazů, které se v dané databázi provádějí:

2.) fn_dump_dblog(): Následující rámec fungoval ve funkci fn_dump_dblog() má jednu výhodu oproti práci fn_dblog() v tom, že ji lze velmi dobře využít ke čtení zálohy protokolu transakcí serveru SQL Server, nehledě na možnost číst online soubor protokolu transakcí. Pak znovu, abyste mohli využít funkci fn_dump_dblog(), musíte zadat 68 povinných parametrů, jak je uvedeno ve skriptu níže:

3.) Příkaz stránky DBCC: SQL Server nám poskytuje nespočet příkazů DBCC, které lze využít k provádění různých druhů úloh správy serveru SQL Server. Jedním z těchto nezdokumentovaných příkazů je příkaz DBCC Page, který lze použít ke čtení obsahu databázových dat a protokolování online souborů. Abyste viděli obsah souboru protokolu databáze, musíte zadat název databáze a ID souboru protokolu transakcí. ID souboru protokolu transakcí lze získat z níže uvedeného dotazu.

Omezení ručních metod obnovy dat z protokolu transakcí serveru SQL Server

  1. Obtížné provedení.
  2. Vyžaduje silné technické znalosti.
  3. Vysoké riziko ztráty dat.

Odborné řešení pro Obnovení dat ze souboru protokolu transakcí serveru SQL Server

V okamžiku, kdy je databáze poškozena nebo jsou data v tabulce omylem ztracena nebo změněna, nemůže být dlouhá doba potřebná k opětovnému vytvoření a analýze dat s využitím implicitních strategií adekvátní. V tomto smyslu musíme na trhu administrace SQL Serveru hledat nástroj, který lze efektivně a okamžitě použít ke čtení obsahu souboru protokolu transakcí a zobrazení tohoto obsahu ve snadno použitelném formátu.

SysTools SQL Log File Reader nástroj, který lze snadno použít ke čtení obsahu online souboru protokolu transakcí SQL. Pomocí tohoto softwaru může uživatel snadno číst a analyzovat soubory protokolu transakcí serveru SQL INSERT / UPDATE / DELETE operace. Tato profesionální aplikace na podnikové úrovni může pracovat v offline i online databázovém prostředí. Tato aplikace také nabízí možnost dynamických filtrů pro export selektivního souboru protokolu transakcí. Tento software podporuje verzi SQL Server 2019.

Kroky k obnovení dat z protokolu transakcí serveru SQL Server

  1. Stáhněte si a nainstalujte SQL Log Analyser.

2. Nyní vyberte možnost Databáze

3. Prohlédněte si data souboru transakčního protokolu SQL Server.

4. Klepnutím na tlačítko Export exportujte data souboru protokolu.

Závěr

Navzdory skutečnosti, že ruční technika dokáže obnovit smazané položky z SQL tabulek, není to předepsaná možnost pro klienty kvůli její složitosti a zdlouhavosti. Spíše se doporučuje použít ideální řešení pro obnovu dat ze souboru protokolu transakcí serveru SQL Server.


  1. Přejmenujte omezení CHECK v SQL Server pomocí T-SQL

  2. Návrh databáze 101

  3. Jak převést řetězec na Hex a naopak?

  4. Zápis do konkrétních schémat pomocí RPostgreSQL