如何在SQL Server數據庫中恢復已刪除的表?

知道MS SQL表及其命令

我們都知道,MS SQL Server使用表來管理其關係數據庫,包括所有記錄。許多組織和公司都使用SQL(結構查詢語言)來滿足其自動化交易需求。

企業和電子商務網站使用SQL Server數據庫表來存儲首選的自動化記錄,即,員工ID,員工名稱,地址,電話號碼,電子郵件ID等。 SQLTable Schema可能相應地有所不同。

SQL管理員主要針對SQL表執行上述命令以相應地管理它們。

  • 刪除:用於刪除記錄。
  • 降低:用於刪除整個表,包括所有可用記錄。
  • 插入:用於在表中插入記錄。
  • 更新:用於修改SQL表記錄。
  • 創造:用於在SQL數據庫中創建新的SQL表或對象。
  • 授予:分配特權權限。
  • 撤銷:返回分配的特權權限。

#1)從SSMS中的SQL Server中的表中恢復已刪除的數據

只需繼續採取以下步驟,以恢復SQL Server 2022、2017、2016、2014、2014、2012、2020、2008 R2、2005和2000的刪除表。此方法是專門專門的FO用戶,以學習如何在SQL Server Management Studio Studio Supplication中還原桌子。

  1. 開始SQL Server Management Studio(SSM)在您的計算機上。
  2. 此後,右鍵單擊數據庫文件夾並選擇還原數據庫
  3. 檢查收音機與計算機關聯的按鈕,然後單擊瀏覽圖示(…)
  4. 之後,選擇備份媒體類型為文件然後按添加
  5. 選擇一個備份文件從數據庫還原刪除的表並點擊好的
  6. 此後,您的還原已刪除的SQL表數據現在查看完成的信息。
  7. 最後,按好的按鈕可以從SQL Server表成功恢復已刪除的數據。

#2)使用LSN在SQL Server中還原刪除的表

注意:LSN(日誌序列號)技術將不允許從SQL Server中的表中恢復已刪除的數據。如果交易日誌備份遭到損壞和丟失。執行此技術是必須的,因為每個SQL日誌記錄都可以通過LSN識別。

1階段:創建SQL數據庫

執行以下命令,以創建名為“ recuntionDeletTables”的SQL數據庫,將表名稱稱為“員工”。

USE [master];

GO

CREATE DATABASE RecoverDeletedTables;

GO

USE RecoverDeletedTables;

GO

CREATE TABLE [Employees] ()

[Sr.No] INT IDENTITY,

[Date] DATETIME DEFAULT GETDATE (),

[City] CHAR (25) DEFAULT ‘City1’);

2階段:在SQL表中插入數據

使用階段1,我們成功地創建了SQL數據庫,其中包含3個不同的列。現在查看插入過程。

USE RecoverDeletedTables;

GO

INSERT INTO Employees DEFAULT VALUES;

GO 100

3階段:在SQL表中刪除一些行

USE RecoverDeletedTables

Go

DELETE Employees

WHERE [Sr.No]

GO

Select * from Employee

4階段:了解已刪除的表行

現在,現在是時候通過搜索事務日誌數據來獲取有關已刪除的SQL行的信息。

USE RecoverDeletedTables

GO

SELECT

[Current LSN],

[Transaction ID],

Operation,

Context,

AllocUnitName

FROM

fn_dblog(NULL, NULL)

WHERE

Operation = ‘LOP_DELETE_ROWS’

使用上述命令後,您可以看到已刪除的SQL表行的事務ID。在這裡,我們需要搜索行的刪除時間。

5階段:獲取LOP_BEGIN_XACT日誌記錄的LSN,以輕鬆學習如何恢復SQL Server中的已刪除表

現在,這是必須使用事務ID獲取提取行刪除時間的必要條件。

USE RecoverDeletedTables

GO

SELECT

[Current LSN],

Operation,

[Transaction ID],

[Begin Time],

[Transaction Name],

[Transaction SID]

FROM

fn_dblog(NULL, NULL)

WHERE

[Transaction ID] = ‘0000:0000030e’

AND

[Operation] = ‘LOP_BEGIN_XACT’

之後,您可以看到有關當前LSN,操作,事務ID,事務名稱等的信息。

6階段:在SQL Server中恢復已刪除的表

此後,您需要通過在LSN之前添加“ 0x”來將LSN值從十六進制更改為十進制格式。這有助於從數據庫還原已刪除的SQL表。

–Restoring Full backup with norecovery.

RESTORE DATABASE RecoverDeletedTables_COPY

FROM DISK = ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.bak’

WITH

MOVE ‘RecoverDeletedTables’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.mdf’,

MOVE ‘RecoverDeletedTables_log’ TO ‘C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables.ldf’,

REPLACE, NORECOVERY;

GO

–Restore Log backup with STOPBEFOREMARK option to recover exact LSN.

RESTORE LOG RecoverDeletedTables_COPY

FROM

DISK = N’C:\Program Files\Microsoft SQL Server\MSSQL10_50.BITRECOVER\MSSQL\Backup\RecoverDeletedTables_tlogbackup.trn’

ITH

STOPBEFOREMARK = ‘lsn:0x00000015:0000002a:0001’

現在,在SQL Server中還原刪除表的過程已成功完成。如果您想查看已恢復的已刪除的SQL表記錄,請運行以下命令。

USE RecoverDeletedTables_COPY

GO

SELECT * from Employee

注意力:在上述代碼中,將位置'c:\ program Files \ Microsoft SQL Server \ MSSQL10_50.BITRECOVER \ MSSQL \ MSSQL \ backup \ recesentDeletedTables.bak'用備份文件保存的路徑。還請用存儲MS SQL數據庫文件的路徑替換MDF和LDF文件的路徑。

#3)通過自動工具在SQL Server中恢復刪除的表

如果上述方法未能在SQL Server中恢復已刪除的表,則應使用SQL Server恢復軟件。該實用程序具有修復SQL Server Master數據庫以恢復已刪除的SQL表。該工具支持Microsoft SQL Server 2022、2019、2017、2016、2014、2012、2008 R2、2005和2000版。這樣,用戶可以輕鬆執行SQL撤消刪除任務。

但是,我們已經討論了在SQL Server中恢復已刪除表的最佳方法。但是,如果您具有SQL Server管理員級知識,則建議您採用手動步驟以還原SQL Server中的刪除表。如果您是非技術用戶,則必須使用推薦的工具包進行SQL撤消刪除或立即解決查詢。

有關的:什麼是數據庫恢復等待SQL Server及其修​​复?