Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sposoby odzyskiwania danych z pliku dziennika transakcji programu SQL Server

Podsumowanie: Wielokrotnie administrator bazy danych SQL szukał sposobów na odzyskanie danych z dzienników transakcji SQL Server. Użytkownik może przeczytać ten artykuł, aby wykonać to zadanie. Daliśmy najlepszy możliwy, a zarazem najłatwiejszy sposób na przywrócenie danych z pliku (.ldf). Jeśli masz problemy z uszkodzeniem bazy danych i chcesz odzyskać obiekty bazy danych, wypróbuj tę opcję Odzyskaj bazę danych SQL Oprogramowanie. Aby uzyskać więcej informacji, użytkownik może przeczytać ten artykuł.

Zdarzają się sytuacje, w których klienci napotykają godne pożałowania okoliczności związane z bazą danych w swoich bazach danych SQL Server. Sytuacje mogą wystąpić podczas administrowania i obsługi plików baz danych. Czasami obiekty bazy danych są usuwane nieumyślnie, przez co administratorzy bazy danych napotykają liczne problemy. Następnie, aby powrócić do zwykłego procesu pracy, pliki powinny zostać odzyskane z powrotem do bazy danych SQL Server.

Dziennik transakcji programu SQL Server odgrywa ważną rolę w odzyskiwaniu usuniętych danych w przypadku błędnego odtworzenia operacji DELETE lub UPDATE w nieodpowiednim stanie lub bez warunku filtrowania. Można to osiągnąć, słuchając zapisów umieszczonych w tej czarnej skrzynce, która jest znana jako plik dziennika transakcji SQL Server.

Jak odzyskać dane z pliku dziennika transakcji SQL Server

Aby przeanalizować różne techniki, których możemy użyć do odzyskania danych z pliku dziennika transakcji SQL Server, utworzymy kolejną bazę danych z pojedynczą tabelą, wykorzystując poniższy skrypt:

Po utworzeniu bazy danych i tabeli wypełnimy tę tabelę 30 rekordami, korzystając z poniższej instrukcji INSERT INTO T-SQL:

Nie mając jeszcze kopii zapasowej bazy danych, w jaki sposób możemy odzyskać dane z tabeli, jeśli poniższe polecenie UPDATE zostanie wykonane na tej tabeli z instrukcją nigdzie użytą do filtrowania danych, które mają zostać zmienione?

Korzystanie z wbudowanych metod

1.) fn_dblog: Zawartość dziennika transakcji programu SQL Server można odczytać w trybie online przy użyciu różnych niejawnych funkcji. Pierwszą funkcją, której spróbujemy użyć do odzyskania utraconych danych, jest fn_dblog . Jest to nieudokumentowana strukturalna funkcja z wartościami tabelarycznymi, używana do zagłębiania się w dziennik transakcji SQL Server i przeglądania zawartości dynamicznego segmentu tego pliku.

Aby wykorzystać fn_dblog() funkcji, musisz podać dwa parametry, początek i koniec LSN dziennika. Aby wyświetlić wszystkie dzienniki dostępne w segmencie dynamicznym pliku dziennika transakcji SQL, możesz przekazać wartość NULL dla tych dwóch parametrów. Ponieważ wynik działania fn_dblog() zawiera 129 kolumn, lepiej jest wybrać tylko segmenty zawierające dane, na których Ci zależy, i przefiltrować wynik, aby pokazać tylko operację, którą zamierzasz odzyskać. Na przykład operacja LOP_INSERT_ROWS jest rejestrowana po osadzeniu innego rekordu, operacja LOP_DELETE_ROWS jest rejestrowana po usunięciu nowego rekordu, a operacja LOP_MODIFY_ROW jest rejestrowana po zaktualizowaniu bieżącego rekordu. Poniższy skrypt może być wykorzystany do sprawdzenia instrukcji aktualizacji, które są wykonywane w tej bazie danych:

2.) fn_dump_dblog(): Kolejny framework działał w funkcji, fn_dump_dblog(), ma jedną przewagę nad funkcją fn_dblog(), że można ją bardzo dobrze wykorzystać do odczytu kopii zapasowej dziennika transakcji SQL Server, niezależnie od możliwości odczytu pliku dziennika transakcji online. Z drugiej strony, aby skorzystać z funkcji fn_dump_dblog(), musisz podać 68 obowiązkowych parametrów, jak pokazano w poniższym skrypcie:

3.) Polecenie strony DBCC: SQL Server udostępnia nam niezliczone polecenia DBCC, które można wykorzystać do wykonywania różnych rodzajów zadań administracyjnych SQL Server. Jednym z tych nieudokumentowanych poleceń jest polecenie DBCC Page, którego można używać do odczytywania zawartości danych bazy danych i rejestrowania plików online. Aby zobaczyć zawartość pliku dziennika bazy danych, musisz podać nazwę bazy danych i identyfikator pliku dziennika transakcji. Identyfikator pliku dziennika transakcji można odzyskać z zapytania poniżej.

Ograniczenia ręcznych metod odzyskiwania danych z dziennika transakcji SQL Server

  1. Trudne do wykonania.
  2. Wymaga dużej wiedzy technicznej.
  3. Wysokie ryzyko utraty danych.

Rozwiązanie eksperckie dla Odzyskaj dane z pliku dziennika transakcji programu SQL Server

W momencie, gdy baza danych jest uszkodzona lub dane tabeli są błędnie tracone lub zmieniane, długi czas wymagany do odtworzenia i przeanalizowania danych przy użyciu niejawnych strategii nie może być odpowiedni. W tym celu musimy poszukać na rynku administracyjnym SQL Server narzędzia, które można skutecznie i natychmiast wykorzystać do odczytania zawartości pliku dziennika transakcji i pokazania tej zawartości w łatwym w użyciu formacie.

Czytnik plików dziennika SQL SysTools narzędzie, które można z łatwością wykorzystać do odczytania zawartości internetowego pliku dziennika transakcji SQL. Korzystając z tego oprogramowania, użytkownik może łatwo odczytywać i analizować pliki dziennika transakcji SQL Server WSTAW / AKTUALIZUJ / USUŃ operacje. Ta profesjonalna aplikacja klasy korporacyjnej może działać zarówno w środowisku baz danych offline, jak i online. Ponadto ta aplikacja oferuje opcję dynamicznych filtrów w celu wyeksportowania selektywnego pliku dziennika transakcji. To oprogramowanie obsługuje wersję SQL Server 2019.

Kroki odzyskiwania danych z dziennika transakcji SQL Server

  1. Pobierz i zainstaluj analizator logów SQL.

2. Teraz wybierz opcję bazy danych

3. Wyświetl podgląd danych pliku dziennika transakcji SQL Server.

4. Kliknij przycisk Eksportuj, aby wyeksportować dane pliku dziennika.

Wniosek

Pomimo faktu, że technika ręczna może odzyskać usunięte elementy z tabel SQL, nie jest to zalecana opcja dla klientów ze względu na jej zawiłość i żmudność. Raczej zaleca się użycie idealnego rozwiązania do odzyskiwania danych z pliku dziennika transakcji SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć się z domyślną instancją programu SQL Server i nazwanymi wystąpieniami programu SQL Server — samouczek programu SQL Server/TSQL — część 2

  2. Jak napisać UPDATE SQL z aliasem tabeli w SQL Server 2008?

  3. Wyślij e-mail z wyzwalacza w SQL Server (T-SQL)

  4. Nieoczekiwany typ zmiennej zwrócony przez Receive-Job

  5. Porównaj daty w T-SQL, ignorując część czasu