Kthimi i të dhënave SQL nga tabelat e fshira (drop table) pa kopje (backup)

Nëse ju ekzekutoni në mënyrë aksidentale DROP dhe ju keni një kopje të plotë të databazës apo Full Database Backup, duke pasur parasysh se asnjë ndryshim nuk ka ndodhur pasi që jan fshirë tabelat, ju shumë thjeshtë mund t’i ktheni të dhënat duke e rishkruar databazën origjinale me kopje (backup). Megjithatë, nëse nuk është ky rast, atëherë ose për shkak se objektet e databazës dhe të dhënat kan pësuar ndryshime pas DROP komandës e cila është ekzekutuar, apo ju nuk keni ndoënj kopje valide të databazës, ende ka mënyrë të rikthimit të shënimeve të humbura.

Dmth, cdo DROP operacion është i regjistruar në SQL Server transaction log fajll. Kjo nënkupton se transaction log ruan informatën që kërkohet për ta bërë kthimin e transakcionit dhe kur është databaza në gjendjën “Full Recovery” përkrah edhe kthimin në kohë të caktuar apo ndryshe që njihet “Point in Time Recovery” nga operacionet DROP

Pasi që DROP është e regjistruar në transaction log, mund të bëhet kthim prapa nëse ajo është e përshkruar edhe me një transakcion aktiv dhe eksplicit, P.sh.: pyetja SQL e bërë në vazhdim:

DROP TABLE Customer

SELECT *
FROM Customer

Si rezultat, jepë mesazhin e gabimit Msg 208, Level 16, State 1 që tabela Customer është fshirë apo është bërë DROP.

Sidoqoftë, kodi në vazhdim:

BEGIN TRAN 
DROP TABLE Customer

ROLLBACK 
SELECT *
FROM Customer

wDo të sjellë si rezultat të gjitha rekordet apo rreshtat në tabelën Customer pasi që operacioni DROP do të kthehet nga komanda ROLLBACK.

Megjithatë, nëse transakcioni i cili përmbanë DROP operacionin nuk është aktiv për shumbull që nga komitimi apo mbarimi i operacionit, tabela e bërë DROP apo e fshirë nuk do të mund të kthehet si dhe të dhënat të ruajtura në të do të humbin. A nënkupton kjo që ju nuk mund t’i riktheni shënimet e humbura për shkak të DROP operacionit nëse nuk keni në dispozicion një kopje të databazës?

Fatmirësisht, jo. Këtu vie në shprehje ApexSQL Recover.

ApexSQL Recover është një vegël për rikthim të SQL Server databazave e cila rikthen, shënimet e fshira (Delete), shënimet e fshira masovikisht (Truncate), të korruptuara ose të dëmtuara. Kjo bënë rikthimin e objekteve të fshira dhe të të dhënave të humbura si resultat I operacioneve të fshirjës së objekteve (DROP) duke përfshirë edhe objektet BLOB si fajlla që e bënë ideale për rastet e rikthimeve në SharePoint.

Që të ktheni shënimet e humbura për shkak të një DROP operacioni pa kopje të databazës:

  1. Filloni apo startoni me ApexSQL Recover
  2. Caktoni apo selektoni opcionin Recover lost data due to a DROP operation
  3. Në hapin Select the database to recover:
    • Caktoni instancën SQL ku dëshironi të ktheni shënimet, e cila mund të gjendet në listën Serverave apo nga Drop-Down box.
    • Caktoni metodën e autentifikimit apo të sigurisë për qasje në instancën e SQL (dhe një mori kredenciale nëse ju vendosni që ta përdorni SQL Server autentifikimin).
    • Caktoni emrin e databazës e cila përmbanë tabelat e fshira në Databazën që do ta gjeni tek lista Drop-Down box.

    dhe klikoni Next

  4. Në hapin Are additional data sources available?, caktoni apo selektoni opcionin No additional transaction logs are available.

  5. Në hapin Select a recovery action caktoni opcionin Save recovery script to file dhe specifikoni vendin ku do të ruhet skripta T-SQL e cila do të futë të gjitha shënimet e humbura kur të ekzekutohet.

  6. Klikoni Recover

Dhe në këtë mënyrë, ju do të keni të rikthyera shënimet e humbura pa e pasur edhe një kopje të vetme të SQL Server databazës!

Përkthyes: Dukagjin Maloku

October 20, 2015