jurnal de tranzacții lectură sql server - centru de soluții
Pentru a înțelege informațiile care sunt stocate în jurnalul de tranzacții, sau nu doar o copie de rezervă jurnal de tranzacții.
funcţia fn_dbblog
fn_dblog - este o caracteristică nedocumentat SQL Server, care vă permite să vizualizați porțiunea activă a jurnalului de tranzacții în timp real.
Să vedem cum să lucreze cu ea:
- Urmează funcția fn_dblog
Funcția returnează 129 de coloane, deci este recomandabil pentru a restrânge setul de rezultate din seturile necesare de câmpuri și, dacă este posibil să se limiteze numai selectarea tipului dorit de tranzacție
Din întregul set de date, care returnează funcția fn_dblog derivă doar tranzacțiile necesare.
De exemplu, vom alege doar o tranzacție pentru a insera rânduri în tabel:
Pentru a vedea tranzacțiile privind ștergerea rândurilor, executați următorul script:
Informații de linii introduse sau scoase stocate în coloane - RowLog Cuprins 0, 1, Cuprins RowLog Cuprins RowLog 2, Cuprins RowLog 3 Cuprins RowLog 4, descriere și Log Înregistrare
Pentru fiecare tip de tranzacție, folosind coloane diferite, în scopul de a obține informațiile de care aveți nevoie, trebuie să știți exact care coloanele sunt folosite pentru orice tranzacție, iar acest lucru nu este ușor, deoarece documentația oficială nu descrie.
Rândurile au fost inserate și șterse sunt stocate în valori hexazecimale. Pentru a trage de date de la aceste valori, trebuie să cunoască formatul de stocare, pentru a înțelege biți de state să cunoască numărul total de coloane, și așa mai departe.
fn_dbLog instrument gratuit minunat pentru citirea jurnalului de tranzacții, dar această funcție are o serie de limitări - destul de dificil de a înțelege datele, ca printre alte informații conține intrări asociate cu tabelele de sistem, funcție afișează numai partea activă a jurnalului și nu afișează informații pentru a actualiza BLOB-valoare.
operațiune UPDATE cu un minim de logare jurnalul de tranzacții nu conține valoarea totală care a existat înainte și după schimbare, și păstrează doar ceea ce sa schimbat (SQL Server poate înregistra că valoarea sa schimbat „G“ la „D“, cu toate că, în realitate, a schimbat cuvântul „mai putea de fericire „să“ plutească „). În acest caz, trebuie să restaurați manual toate înregistrările de stat intermediare în pagină mai întâi introducerea la punctul în care vă interesează.
Când ștergeți o pată de cerneală obiecte obiecte în sine nu sunt înregistrate în jurnal, dar numai faptul îndepărtării. Pentru a restaura la distanță BLOB obiecte de care aveți nevoie pentru a găsi într-o revistă un cuplu pentru această ștergere, care este pus în aplicare înainte de inserție, și ea, probabil, nu este conținută în partea activă a jurnalului.
funcţia fn_dump_dblog
fn_dump_dblog - este o altă caracteristică nedocumentat care vă permite să vizualizați jurnalul de tranzacții de backup jurnal de tranzacții este comprimat și convenționale.
- Mai jos este un exemplu de funcționare funcției fn_dump_dblog. Vă rugăm să rețineți că trebuie să specificați toate parametrul 63
pentru că fn_dump_dblog se întoarce precum și fn_dblog 129 de coloane, este de dorit să se reducă set de câmpuri
Dar, din nou, trebuie să decodeze valorile hexazecimale pentru a găsi înregistrarea dorită
Și vei primi din nou aceleași restricții ca și în cazul unei fn_dblog funcție.
Pentru a restaura o bază de date dintr-o copie a tranzacției log până la un anumit punct în timp sau la o anumită tranzacție, trebuie:
O altă comandă utilă DBCC PAGE, dar, de asemenea, ca cele două -nedokumentirovannaya funcția anterioară. Acesta vă permite să vizualizați conținutul fișierelor LDF MDF și. Sintaxa este:
Ca rezultat veți obține mesajul:
În mod implicit, rezultatul comenzii PAGE DBCC nu este afișată în SQL Server Management Studio și pentru a afișa primul pas pe care trebuie să activați trace pavilion 3604:
Acum re-rulați comanda:
Veți vedea mai multe erori și titlul paginii, care pot fi ignorate. Mai jos puteti gasi hexazecimal de afișare LDF-fișier:
Utilizați ApexSQL Log
ApexSQL Log - un instrument care vă permite să lucrați cu jurnalele de tranzacții SQL Server într-o formă vizuală. Acesta vă permite să vizualizați jurnalul de tranzacții curente în timp real, acces la copiile de rezervă jurnal de tranzacții, atât convenționale și stabilite în modul de compresie. În această aplicație singur citește datele din copiile de rezervă ale bazei de date pentru a obține toate informațiile necesare pentru o recuperare de succes. Cu ApexSQL Log, puteți vizualiza lanțuri de tranzacții care au avut loc în baza de date, chiar și cei care au fost angajat la utilitarul de configurare. Spre deosebire de caracteristici nedocumentate și neacceptate discutat mai sus, veți primi informații vizuale despre ceea ce a avut loc operațiuni pe obiecte vor putea vedea valoarea vechi și noi.
Conectarea la baza de date a cărui tranzacție jurnal pe care doriți să le analizați
În etapa Selectați jurnalele SQL pentru a analiza. Selectați înregistrarea pe care doriți să îl citiți. Asigurați-vă că acestea formează un lanț complet
Utilizați un filtru în etapa de configurare filtru. pentru a reduce numărul de tranzacții citit prin specificarea unui interval de timp, tipul de operațiune, tabele și alte filtre
Rezultatele complete pot fi văzute sub forma unui tabel
Puteți ține evidența la pornirea operației și când ați terminat, tipul de operațiune, schema și obiectul pe care a avut loc operațiunea, numele utilizatorului care a comis această acțiune, precum și numele calculatorului și aplicația din care a avut loc această tranzacție. Pentru operațiunile de actualizare (update) puteți vedea modul în care noua și vechea valoare.
Pentru a evita valorile ilizibile hex, caracteristici fără acte, coloane de conținut obscure, interogări cu o structură complexă, script-uri complexe de a prelua date, operațiunile UPDATE date incomplete, precum și probleme în obținerea valorii BLOB din jurnalul de tranzacții SQL Server, utilizați programul ApexSQL Log. Este pentru tine de a efectua toate operațiunile complexe și prezintă rezultatele într-o formă ușor de citit. În plus, vă va permite cu un singur clic pentru a anula sau de a re-efectua tranzacția dorită.