sql >> Databasteknik >  >> RDS >> Sqlserver

Vet hur man återställer raderad tabell i SQL Server 2012 utan säkerhetskopiering

Sammanfattning:Vill du veta hur man återställer den raderade tabellen i SQL Server 2012 utan säkerhetskopiering. Läs den här artikeln för att återställa raderade databasobjekt genom att använda effektiva och snabba lösningar.

Ibland kan en klient utföra UPPDATERING operation eller DELETE operation i SQL Server-databas utan att använda WHERE tillstånd. Detta är en typisk förklaring bakom att uppleva förlust av data från SQL Server-tabeller. Eftersom SQL Server-databasen är en exceptionellt vanlig relations-DBMS bland företagsdivisioner och organisationer, förstärks problemet med dataförlust mycket mer. Så, klienter borde veta om strategierna för att återställa raderad data från SQL Server-tabellen om det skulle uppstå en händelse av några katastrofer.

Raderade rader kan återställas genom att använda LSN om raderingstiden är känd. Detta bör vara möjligt med hjälp av Log Sequence Numbers (LSN). LSN är en speciell identifierare som ges till varje post som finns i SQL Server-transaktionsloggen. Vi kommer att prata om proceduren för att återställa raderade SQL Server-data och tabeller med hjälp av Transaction Log och LSNs.

Föreslagen: För att undvika det långa och felaktiga manuella LSN-sättet att hantera att återställa raderade poster från SQL-tabellen med hjälp av ett driven tredjepartsverktyg, till exempel SQL Database Recovery-verktyget .

Procedur för att veta hur man återställer raderad tabell i SQL Server 2012 utan säkerhetskopiering

Det finns några krav som måste uppfyllas innan vi påbörjar proceduren för att återställa raderade data från SQL-tabellen. För att effektivt återställa raderade rader från en tabell i SQL Server-databasen måste den ha BULK-LOGGED eller FULL återställningsmodellen när raderingen ursprungligen skedde. Vissa snabba aktiviteter krävs så att loggarna ännu är tillgängliga för att spela ut återställning av data.

Följ stegen nedan för att återställa raderade data från SQL Server 2005, 2008, 2012, 2014 och 2016 genom att använda transaktionsloggar.

Steg 1

Kontrollera antalet rader i tabellen från vilka data har raderats oavsiktligt med hjälp av den hänvisade frågan nedan:

VÄLJ * FRÅN Tabellnamn

Steg 2

Ta en säkerhetskopia av transaktionsloggen av databasen med hjälp av frågan nedan:

ANVÄND databasnamn

Säkerhetskopieringslogg [Databasnamn]

TILL DISK =N’D:\Databasnamn\RDDTrLog.trn’

Med NOFORMAT, NOINIT,

NAME =N’Databasename-Transaction Log Backup’,

SKIP, NOREWIND, NOUNLOAD, STATS =10

Steg 3

För att återställa raderade data från SQL Server Table måste vi samla in lite data om de raderade raderna. Kör frågan som erbjuds nedan för att uppnå detta skäl

ANVÄND databasnamn

Välj [Current LSN], [Transaction ID], Operation, Context, AllocUnitName

FRÅN

fn_dblog(NULL, NULL)

WHERE Operation =‘LOP_DELETE_ROWS’

Från frågan ovan kommer vi att få transaktions-ID (låt oss säga 000:000001f3) för de raderade raderna. För närvarande, när dessa rader togs bort ska lösas för att använda detta ID.

Steg 4

I den här fortsättningen kommer vi att hitta den specifika tidpunkt då rader raderades med hjälp av transaktions-ID 000:000001f3. Detta avslutas genom att utföra förfrågan som ges enligt följande:

ANVÄND databasnamn

VÄLJ

[Aktuellt LSN], Operation, [Transaktions-ID], [Begynnelsetid], [Transaktionsnamn], [Transaktions-ID]

FRÅN

fn_dblog(NULL, NULL)

VAR

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

OCH

[Operation] =‘LOP_BEGIN_XACT’

När vi utför denna förfrågan kommer vi att få en uppskattning av aktuellt loggsekvensnummer (LSN) (antag 00000020:000001d0:0001).

Steg 5

För närvarande kommer vi att påbörja återställningsproceduren för att återställa raderade data från SQL Server-tabellrader som gick förlorade. Detta avslutas med hjälp av sökfrågan nedan:

ANVÄND databasnamn

Återställ DATABASE Databasename_COPY FROM

Plåt ='D:\Databasnamn\RDDFull.bak'

Med

FLYTTA ‘Databasnamn’ TILL ‘D:\RecoverDB\Databasnamn.mdf’,

FLYTTA ‘Databasnamn_log’ TILL ‘D:\RecoverDB\Databasnamn_log.ldf’,

ERSÄTT, NORÅTERHÄLLNING;

  Steg 6

Använd för närvarande transaktionslogg för att återställa raderade rader genom att använda LSN 00000020:000001d0:0001:

ANVÄND databasnamn

Återställ LOGG Databasnamn_KOPIERA FRÅN DISK =N'D:\Databasnamn\RDOTrLog.trn' WITH STOPBEFOREMARK ='lsn:0x00000020:000001d0:0001' Obs:Eftersom LSN-värden är i hexadecimala strukturer och använder denna hexadecimala tabell LSN, vi måste ändra över det till decimalstrukturen. Av denna anledning inkluderar vi 0x inte långt innan LSN som visades tidigare.

Steg 7

Proceduren för att återställa raderade poster från SQL-tabellen kommer att slutföras effektivt. Kontrollera för närvarande om de raderade posterna finns tillbaka i databasen med namnet Databasename_Copy.

ANVÄND Databasnamn_Kopiera GO Välj * från Tabellnamn

  Begränsningar för transaktionsloggmetoden

  • Grundt tröttsam strategi för att återställa raderad data från SQL Server Table, eftersom den innehåller några omfattande frågor som ska köras.
  • Otroligt häpnadsväckande att aktualisera för kunder som inte har tillräckligt med specialiserad data.
  • Större chanser att förlora data på grund av misstag vid tillämpning och körning av frågor.

Elektiv lösning att veta Hur man återställer raderad tabell i SQL Server 2012 utan säkerhetskopiering

Den bästa valfria lösningen är tillgänglig för att återställa rader från SQL Server 2019/2017/2016/2014/2012/2008/2005. Den valbara lösningen som vi pratar om här kan lösa varje enskild typ av problem som dyker upp i SQL Server. Det kan fixa SQL-fel och fixa SQL MDF- och NDF-filer. FreeViewer SQL Recovery Tool är ett affärsverktyg som tillåter återställning av triggers, regler, funktioner, tabeller. Dessutom återställer den dessutom lagrade procedurer i SQL Server effektivt utan dataförlust. Den betydande delen är att applikationen ger många framdrivna alternativ samtidigt som de fixar skadade SQL Server-databasfiler. Dessutom visar denna applikation de raderade SQL-tabellposterna i röd färg. Den här produkten är bra med Microsoft Outlook 2019 och alla dess underversioner.

Ladda ner den kostnadsfria demoversionen för att förstå applikationens bästa möjliga kapacitet.

Steg för att enkelt återställa raderade databasobjekt

  1. Ladda ned och skicka  SQL-återställningen verktyg och öppna MDF-filen.
  2. Välj alternativ för avancerad skanning, Detektera SQL Server versionen för att återställa raderade poster i SQL Server.
  3. Verktyget startar skanning procedur för den primära databasfilen (MDF)
  4. Se SQL-databaskomponenterna, verktyget visar de raderade SQL-tabellposterna i röd färg. Klicka sedan på Exportera
  5. Du måste ge databasautentiseringsinformationen i nästa segment.
  6. Kontrollera "Skapa ny databas" alternativet och ange ett databasnamn.
  7. Fare the Database "Med schema och data" för att återställa data i de raderade raderna i SQL Server. (Markera även kryssrutan Exportera borttagna poster)
  8. Spara rapporten och öppna den nyligen skapade databasen som innehåller återställda poster.

Slutsats

Läs också:Användaren kan också läsa ett annat liknande inlägg för att lära känna Microsoft SQL Server Disaster Recovery bästa praxis.

Även om LSN-strategin kan återställa raderade poster från SQL-tabeller, är det allt annat än ett föreskrivet val för klienter på grund av dess mångfacetterade natur och repetitivitet. Snarare uppmuntras det att använda en automatiserad lösning för att veta hur man återställer raderade tabeller i SQL Server 2012 utan säkerhetskopiering.


  1. Hur kommer jag åt Oracle från Python?

  2. LIMIT 10..20 i SQL Server

  3. TO_DAYS() Exempel – MySQL

  4. Hur man väljer allt före/efter en viss karaktär i MySQL – SUBSTRING_INDEX()