sql >> Database teknologi >  >> RDS >> Sqlserver

Vide, hvordan man gendanner slettet tabel i SQL Server 2012 uden sikkerhedskopiering

Resumé:Vil du vide, hvordan du gendanner den slettede tabel i SQL Server 2012 uden sikkerhedskopiering. Læs denne artikel for at gendanne slettede databaseobjekter ved at bruge effektive og hurtige løsninger.

Nogle gange kan en klient udføre OPDATERING handling eller SLET operation i SQL Server-databasen uden at anvende WHERE tilstand. Dette er en typisk forklaring på, at man oplever tab af data fra SQL Server-tabeller. Da SQL Server-databasen er et usædvanligt almindeligt relationelt DBMS blandt virksomhedsafdelinger og organisationer, forstærker problemet med tab af data meget mere. Så klienter bør vide om strategierne til at gendanne slettede data fra SQL Server-tabellen, hvis der skulle opstå en forekomst af katastrofer.

Slettede rækker kan gendannes ved at bruge LSN, hvis sletningstidspunktet er kendt. Dette burde være muligt ved hjælp af Log Sequence Numbers (LSN'er). LSN er en speciel identifikator, der gives til hver post, der findes i SQL Server-transaktionsloggen. Vi vil tale om proceduren til at gendanne slettede SQL Server-data og tabeller ved hjælp af Transaction Log og LSN'er.

Foreslået: For at undvige den lange og ukorrekte manuelle LSN-måde at håndtere gendannelse af slettede poster fra SQL-tabel ved hjælp af et drevet tredjepartsværktøj, f.eks. SQL Database Recovery-værktøjet .

Procedure for at vide, hvordan man gendanner slettet tabel i SQL Server 2012 uden sikkerhedskopiering

Der er et par krav, der skal være opfyldt, før vi starter proceduren for at gendanne slettede data fra SQL-tabellen. For effektivt at gendanne slettede rækker fra en tabel i SQL Server-databasen skal den have BULK-LOGGED- eller FULL-gendannelsesmodellen, da sletningen oprindeligt skete. Nogle raske aktiviteter er påkrævet, så logfilerne er endnu tilgængelige for at udspille gendannelse af data.

Følg nedenstående trin for at gendanne slettede data fra SQL Server 2005, 2008, 2012, 2014 og 2016 ved hjælp af transaktionslogfiler.

Trin 1

Tjek antallet af rækker i tabellen, hvorfra dataene er blevet slettet ved et uheld ved hjælp af det nedenstående spørgsmål:

VÆLG * FRA Tabelnavn

Trin 2

Tag backup af transaktionsloggen af ​​databasen ved at bruge forespørgslen nedenfor:

BRUG databasenavn

GO

Backup LOG [Databasenavn]

TIL DISK =N’D:\Databasenavn\RDDTrLog.trn’

Med NOFORMAT, NOINIT,

NAME =N’Databasename-Transaction Log Backup’,

SKIP, NOREWIND, NOUNLOAD, STATISTIK =10

GO

Trin 3

For at gendanne slettede data fra SQL Server Table, skal vi indsamle nogle data om de slettede rækker. Kør den forespørgsel, der tilbydes nedenfor, for at opnå denne grund

BRUG databasenavn

GO

Vælg [Current LSN], [Transaction ID], Operation, Context, AllocUnitName

FRA

fn_dblog(NULL, NULL)

WHERE Operation ='LOP_DELETE_ROWS'

Fra forespørgslen ovenfor får vi transaktions-id'et (lad os sige 000:000001f3) for de slettede rækker. I øjeblikket, når disse rækker blev slettet, skal løses for at bruge dette ID.

Trin 4

I denne progression vil vi finde det bestemte tidspunkt, hvor rækker blev slettet ved hjælp af transaktions-id'et 000:000001f3. Dette afsluttes ved at udføre forespørgslen som følger:

BRUG databasenavn

GO

VÆLG

[Nuværende LSN], Operation, [Transaktions-id], [Begyndelsestid], [Transaktionsnavn], [Transaktions-ID]

FRA

fn_dblog(NULL, NULL)

HVOR

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

OG

[Operation] =‘LOP_BEGIN_XACT’

Når vi udfører denne forespørgsel, får vi estimeringen af ​​det aktuelle logsekvensnummer (LSN) (antag 00000020:000001d0:0001).

Trin 5

I øjeblikket vil vi begynde gendannelsesproceduren for at gendanne slettede data fra SQL Server-tabelrækker, der er gået tabt. Dette afsluttes ved at bruge nedenstående forespørgsel:

BRUG databasenavn

GO

Gendan DATABASE Databasename_COPY FROM

Plade ='D:\Databasenavn\RDDFull.bak'

Med

FLYT 'Databasenavn' TIL 'D:\RecoverDB\Databasenavn.mdf',

FLYT 'Databasename_log' TIL 'D:\RecoverDB\Databasename_log.ldf',

UDSKIFT, NORGENGIVNING;

GO

  Trin 6

Anvend i øjeblikket transaktionslog til at gendanne slettede rækker ved at bruge LSN 00000020:000001d0:0001:

BRUG databasenavn

GO

Gendan LOG Databasenavn_KOPI FRA DISK =N'D:\Databasenavn\RDOTrLog.trn' MED STOPBEFOREMARK ='lsn:0x00000020:000001d0:0001' Bemærk:Da LSN-værdier er i hexadecimale strukturer og anvender denne hexadecimale tabel LSN, vi skal ændre det til decimalstrukturen. Af denne grund inkluderer vi 0x ikke længe før LSN, som dukker op tidligere.

Trin 7

Proceduren til at gendanne slettede poster fra SQL-tabellen afsluttes effektivt. Kontroller nu, om de slettede poster er tilbage i databasen med navnet Databasename_Copy.

USE Databasename_Copy GO Vælg * fra Table_name

  Begrænsninger af transaktionslogtilgang

  • En dybt kedelig strategi til at gendanne slettede data fra SQL Server Table, da den indeholder et par omfattende forespørgsler, der skal udføres.
  • Forbløffende overvældende at aktualisere for kunder, der ikke har tilstrækkelige specialiserede data.
  • Større chancer for at miste data på grund af fejl under anvendelse og udførelse af forespørgsler.

Valgfri løsning at vide Sådan gendannes slettet tabel i SQL Server 2012 uden sikkerhedskopiering

Den bedste valgfri løsning er tilgængelig for at gendanne rækker fra SQL Server 2019/2017/2016/2014/2012/2008/2005. Den valgfrie løsning, som vi taler om her, kan løse hvert eneste slags problem, der dukker op i SQL Server. Det kan rette SQL-fejl og rette SQL MDF- og NDF-filer. FreeViewer SQL-gendannelsesværktøj er et forretningsværktøj, der tillader gendannelse af triggere, regler, funktioner, tabeller. Desuden gendanner det desuden lagrede procedurer i SQL Server effektivt uden datatab. Den væsentlige del er, at applikationen giver mange fremdriftsmuligheder, mens den reparerer korrupte SQL Server-databasefiler. Derudover viser denne applikation de slettede SQL-tabelposter i rød farve. Dette produkt er godt med Microsoft Outlook 2019 og alle dens nedenstående versioner.

Download den gratis demo-udgivelse for at forstå den bedst mulige kapacitet af applikationen.

Trin til nemt at gendanne slettede databaseobjekter

  1. Download og afsend  SQL-gendannelsen værktøj, og åbn MDF-filen.
  2. Vælg alternativ til Avanceret scanning, Detekter SQL Server versionen for at gendanne slettede poster i SQL Server.
  3. Værktøjet starter Scanning procedure for den primære databasefil (MDF)
  4. Se SQL-databasekomponenterne, værktøjet viser de slettede SQL-tabelposter i rød farve. Klik derefter på Eksporter
  5. Du skal give databasegodkendelsesdetaljerne i det næste segment.
  6. Tjek "Opret ny database" mulighed og giv et databasenavn.
  7. Fare databasen 'Med skema og data' for at gendanne data i de slettede rækker i SQL Server. (Marker også afkrydsningsfeltet Eksporter slettede poster)
  8. Gem rapporten i øjeblikket, og åbn den nyligt oprettede database, som indeholder gendannede poster.

Konklusion

Læs også:Brugeren kan også læse et andet lignende indlæg for at kende bedste praksis for Microsoft SQL Server Disaster recovery.

Selvom LSN-strategien kan gendanne slettede poster fra SQL-tabeller, er den alt andet end et foreskrevet valg for klienter på grund af dens mangefacetterede natur og gentagelsesevne. I stedet opfordres det til at bruge en automatiseret løsning til at vide, hvordan man gendanne slettet tabel i SQL Server 2012 uden sikkerhedskopiering.


  1. Konverter 'smalldatetime' til 'datetime2' i SQL Server (T-SQL-eksempler)

  2. Oversigt over T-SQL PRINT-erklæring

  3. PostgreSQL OPRET TABEL

  4. Sådan udføres installation af en EBS 12.2 Vision-instans