Si t’i riktheni shënimet e SQL Server nga freskimet aksidentale të të dhënave pa kopje të DB

Upsss! Le të themi se ju keni ekzekutuar UPDATE komandën, pa komandën tjetër apo kushtin me shprehje WHERE dhe në këtë mënyrë keni mbishkruar një sasi të madhe të rekordeve me gabime. Si do t’i ktheni vlerat e mëhershme!?

Nëse keni ndonjë kopje të krijuar më herët e cila përmbanë vlerat origjinale të tabelave ku janë ekzekutuar ndryshimet e përmendura, ju me lehtësi mund t’i ktheni të dhënat. Zgjidhja me e zakonshme është:

  • Riktheni databazën kopje dhe e përdorni atë në vend të orgjinalës.
  • Në rast se kan ndodhur ndryshime tjera pas komandës UPDATE apo ju nuk mund ta lejoni që databaza juaj të jetë Offline:
    1. Riktheni databazën e juaj në një Test Server apo ambient testues
    2. Përdorni magjistarin (wizard) apo prcedurën e paradefinuar përmes SQL Server Management Studio Export data në mënyrë që t’i exportoni të dhënat.
    3. Importoni të dhënat e eksportuara në databazën origjinale.

Por, nëse ju nuk keni kopje të plotë të databazaë tuaj apo Full Database Backup, UPDATE-at apo më mirë të themi operacionet UPDATE mund të kthehen duke përdorur informatat mbi transakcionet e ruajtura në transaction log fajllin e databazës.

Transaction Log mbanë informatën rreth transakcioneve që jan bërë në databazën tuaj. Nëse ajo nuk është bërë Tkurje (Shrunk) apo nuk është Shkurtuar (Truncate), ju mund të përdorni ApexSQL Log

ApexSQL Log është një vegël e cila mund të minoj apo të gjurmoj në transaction log fajllin e DB dhe mund t’i rikthej UPDATE-at aksidental. Kështu që në vend se të keni të gjitha të dhënat në tabelën e freskuar, ju mund të riktheni UPDATE shprehjet dhe më pastaj të freskoni vetëm të dhënat të cilat përmbushin kriterin e dhënë.

Që të riktheni të dhëna nga UPDATE operacionet aksidentale duke përdorur ApexSQL Log, ndjekni këto hapa:

  1. Filloni me ApexSQL Log

  2. Lidhuni me Databazën që dëshironi

  3. Përdorni brezin kohor apo Time Range në pjesën e opcioneve Filter setup për të caktuar kohën kur komanda UPDATE është ekzekutuar/p>

  4. Caktoni apo selektoni Update row në hapin opcioneve të filtrave Operations tab

  5. Në hapin e opcioneve Filter setup, filtri i Tables, caktoni tabelën apo tabelat ku të dhënat janë freskuar apo janë bërë update.

  6. Nëse është e mundur, përdorni Users dhe Applications filterat, për të ngushtuar rezultatet.
  7. Klikoni Open
  8. Që të krijoni skriptën për ribërje/rikthim apo Undo:

    1. Kliko Create undo script në pjesën apo tabin Home në grupin Actions që të krijoni Undo skriptën për të gjitha transakcionet që jan paraqitur në program

    2. Kontrollo transakcionet për të cilat dëshiron që të krijosh Undo skriptën, ku me klik të tastit të djathtë në rezultatet e paraqitura ne program mund të klikoni Create undo script tek menuja e kontekstit të paraqitur dhe të krijoni Undo skriptën vetëm për transakcionet e caktuara
  9. Ekzekuto skriptën në Databazë

Pasi të jetë ekzekutuar skripta Undo, UPDATE-at rikthehen dhe të dhënat origjinale rikthehen në databazë para se ato të dëmtoheshin

Nëse ju pa dashje freskoni shënime(rekorde) me UPDATE dhe ju nuk keni ndonjë kopje të plotë të databazës apo Full Database backup, ju do të keni një mundësi që të riktheni shënimet duke përdorur ApexSQL Log.

Përkthyes: Dukagjin Maloku

October 20, 2015