sql >> Database >  >> RDS >> Sqlserver

Weet hoe u een verwijderde tabel in SQL Server 2012 kunt herstellen zonder back-up

Samenvatting:Wilt u weten hoe u de verwijderde tabel in SQL Server 2012 zonder back-up kunt herstellen. Lees dit artikel om verwijderde databaseobjecten te herstellen met behulp van efficiënte en snelle oplossingen.

Af en toe kan een klant UPDATE . uitvoeren bewerking of VERWIJDEREN bewerking in SQL Server-database zonder de WHERE . toe te passen voorwaarde. Dit is een typische verklaring voor het verlies van gegevens uit SQL Server-tabellen. Aangezien de SQL Server-database een uitzonderlijk mainstream relationeel DBMS is onder bedrijfsafdelingen en organisaties, wordt het probleem van gegevensverlies nog veel groter. Klanten moeten dus op de hoogte zijn van de strategieën om verwijderde gegevens van de SQL Server-tabel te herstellen als zich een calamiteit voordoet.

Verwijderde rijen kunnen worden hersteld door LSN te gebruiken als de verwijderingstijd bekend is. Dit moet mogelijk zijn met behulp van Log Sequence Numbers (LSN's). LSN is een speciale id die wordt gegeven aan elk record dat aanwezig is in het transactielogboek van SQL Server. We zullen het hebben over de procedure om verwijderde SQL Server-gegevens en tabellen te herstellen met behulp van Transactielogboek en LSN's.

Voorgesteld: Voor het ontwijken van de lange en onjuiste handmatige LSN-manier om verwijderde records uit de SQL-tabel te herstellen met behulp van een aangedreven hulpprogramma van derden, bijvoorbeeld de SQL Database Recovery-tool .

Procedure om te weten hoe u een verwijderde tabel in SQL Server 2012 kunt herstellen zonder back-up

Er zijn een paar vereisten waaraan moet worden voldaan voordat we de procedure starten om verwijderde gegevens uit de SQL-tabel te herstellen. Om effectief verwijderde rijen uit een tabel in de SQL Server-database te herstellen, moet deze het BULK-LOGGED- of FULL-herstelmodel hebben toen de verwijdering oorspronkelijk plaatsvond. Er zijn enkele stevige activiteiten vereist, zodat de logboeken nog toegankelijk zijn om het herstel van gegevens uit te voeren.

Volg de onderstaande stappen om verwijderde gegevens van SQL Server 2005, 2008, 2012, 2014 en 2016 te herstellen met behulp van transactielogboeken.

Stap 1

Controleer het aantal rijen in de tabel waaruit de gegevens per ongeluk zijn verwijderd met behulp van de onderstaande vraag waarnaar wordt verwezen:

SELECTEER * FROM Tabelnaam

Stap 2

Maak een back-up van het transactielogboek van de database met behulp van de onderstaande query:

GEBRUIK Databasenaam

GA

Back-up LOG [Databasenaam]

NAAR SCHIJF =N’D:\Databasenaam\RDDTrLog.trn’

MET NOFORMAT, NOINIT,

NAME =N'Databasename-Transaction Log Backup',

SKIP, NOREWIND, NOUNLOAD, STATS =10

GA

Stap 3

Om verwijderde gegevens uit de SQL Server-tabel te herstellen, moeten we enkele gegevens over de verwijderde rijen verzamelen. Voer de onderstaande zoekopdracht uit om deze reden te bereiken

GEBRUIK Databasenaam

GA

Selecteer [Huidige LSN], [Transactie-ID], Bewerking, Context, AllocUnitName

VAN

fn_dblog(NULL, NULL)

WHERE Operation ='LOP_DELETE_ROWS'

Uit de bovenstaande query krijgen we de transactie-ID (laten we zeggen 000:000001f3) van de verwijderde rijen. Op dit moment, wanneer deze rijen werden verwijderd, moet worden opgelost om deze ID te gebruiken.

Stap 4

In deze voortgang zullen we het specifieke tijdstip vinden waarop rijen zijn verwijderd met behulp van de transactie-ID 000:000001f3. Dit wordt voltooid door de volgende vraag uit te voeren:

GEBRUIK Databasenaam

GA

SELECTEER

[Huidige LSN], Bewerking, [Transactie-ID], [Begintijd], [Transactienaam], [Transactie-SID]

VAN

fn_dblog(NULL, NULL)

WAAR

[Transactie-ID] ='000:000001f3'

EN

[Bewerking] ='LOP_BEGIN_XACT'

Bij het uitvoeren van dit onderzoek krijgen we de schatting van het huidige Log Sequence Number (LSN) (stel 00000020:000001d0:0001).

Stap 5

Momenteel beginnen we met de herstelprocedure om verwijderde gegevens te herstellen van SQL Server-tabelrijen die verloren zijn gegaan. Dit is voltooid met behulp van de onderstaande vraag:

GEBRUIK Databasenaam

GA

HERSTEL DATABASE Databasenaam_COPY FROM

Plaat ='D:\Databasenaam\RDDFull.bak'

MET

VERPLAATS 'Databasenaam' NAAR 'D:\RecoverDB\Databasenaam.mdf',

VERPLAATS ‘Databasename_log’ NAAR ‘D:\RecoverDB\Databasename_log.ldf’,

VERVANG, GEEN HERSTEL;

GA

  Stap 6

Pas momenteel het transactielogboek toe om verwijderde rijen te herstellen met behulp van LSN 00000020:000001d0:0001:

GEBRUIK databasenaam

GA

Herstel LOG Databasenaam_COPY FROM DISK =N'D:\Databasename\RDOTrLog.trn' WITH STOPBEFOREMARK ='lsn:0x00000020:000001d0:0001' Opmerking:aangezien LSN-waarden een hexadecimale structuur hebben en voor het herstellen van tabellen die dit gebruiken LSN, we moeten het overzetten in de decimale structuur. Om deze reden nemen we 0x op niet lang voor de LSN zoals eerder verscheen.

Stap 7

De procedure om verwijderde records uit de SQL-tabel te herstellen, wordt effectief voltooid. Controleer nu of de verwijderde records terug zijn in de database met de naam Databasenaam_Kopie.

GEBRUIK Databasenaam_Kopie GO Selecteer * uit Tabelnaam

  Beperkingen van de benadering van transactielogboeken

  • Uiterst vervelende strategie om verwijderde gegevens van SQL Server-tabel te herstellen, omdat het een paar uitgebreide query's bevat die moeten worden uitgevoerd.
  • Verbazingwekkend verbijsterend om te actualiseren voor klanten die niet over voldoende gespecialiseerde gegevens beschikken.
  • Grotere kans op gegevensverlies door fouten bij het toepassen en uitvoeren van zoekopdrachten.

Electieve oplossing om te weten Hoe verwijderde tabel in SQL Server 2012 te herstellen zonder back-up

De beste keuzeoplossing is toegankelijk om rijen te herstellen van SQL Server 2019/2017/2016/2014/2012/2008/2005. De keuzeoplossing waar we het hier over hebben, kan elk soort probleem oplossen dat zich voordoet in de SQL Server. Het kan SQL-fouten herstellen en SQL MDF- en NDF-bestanden repareren. FreeViewer SQL Recovery Tool is een zakelijke tool waarmee triggers, regels, functies en tabellen kunnen worden hersteld. Bovendien herstelt het bovendien effectief opgeslagen procedures in SQL Server zonder gegevensverlies. Het belangrijkste is dat de applicatie veel voortgestuwde opties biedt bij het repareren van beschadigde SQL Server-databasebestanden. Bovendien toont deze applicatie de verwijderde SQL-tabelrecords in rode kleur. Dit product is goed met Microsoft Outlook 2019 en alle onderliggende versies.

Download de gratis demo-release om de best mogelijke capaciteit van de applicatie te begrijpen.

Stappen om verwijderde databaseobjecten gemakkelijk te herstellen

  1. Download en verzend de  SQL Recovery tool, en open het MDF-bestand.
  2. Selecteer Advanced Scan alternatief, Detect de SQL Server versie om verwijderde records in SQL Server te herstellen.
  3. De tool start het Scannen procedure van het primaire databasebestand (MDF)
  4. Zie de SQL-databasecomponenten, de tool toont de verwijderde SQL-tabelrecords in rode kleur. Klik daarna op de Exporteren
  5. U moet de gegevens van de Database-authenticatie in het volgende segment opgeven.
  6. Controleer de 'Nieuwe database maken' optie en geef een databasenaam op.
  7. Fare the Database 'Met schema en gegevens' om gegevens in de verwijderde rijen in de SQL Server te herstellen. (Vink ook het selectievakje Verwijderde records exporteren aan)
  8. Sla het rapport nu op en open de recent gemaakte database die herstelde records bevat.

Conclusie

Lees ook:De gebruiker kan ook een ander soortgelijk bericht lezen om de beste werkwijzen voor noodherstel van Microsoft SQL Server te kennen.

Hoewel de LSN-strategie verwijderde records uit SQL-tabellen kan herstellen, is het allesbehalve een voorgeschreven keuze voor klanten vanwege het veelzijdige karakter en de herhaling. Het wordt eerder aangemoedigd om een ​​geautomatiseerde oplossing te gebruiken om de verwijderde tabel in SQL Server 2012 zonder back-up te herstellen.


  1. Tips voor het leveren van MySQL-databaseprestaties - deel twee

  2. Is er een manier om tekstgegevens naar de database in PostgreSQL te laden?

  3. Luister naar aflevering 2 van de Microsoft Access Podcast

  4. Laravel-migratiefout:syntaxisfout of toegangsfout:1071 Opgegeven sleutel was te lang; maximale sleutellengte is 767 bytes