首頁 資料庫 mysql教程 SQLSERVER拯救某个时间点被误删除的数据

SQLSERVER拯救某个时间点被误删除的数据

Jun 07, 2016 pm 03:34 PM
sqlserver 刪除 拯救 數據 時間

SQLSERVER 拯救 某个 时间 点被误 删除 的 数据 http://blog.csdn.net/dba_huangzj/article/details/8491327 要 拯救 某个 时间 点被误 删除 的 数据 ,需要你在那个 时间 点之前有一个完整 数据 库备份。 而且,需要你的 数据 库恢复模式为:完整恢复模式

SQLSERVER拯救某个时间点被误删除数据

http://blog.csdn.net/dba_huangzj/article/details/8491327

拯救某个时间点被误删除数据,需要你在那个时间点之前有一个完整数据库备份。

而且,需要你的数据库恢复模式为:“完整恢复模式”

如何查看你的数据库恢复模式为完整恢复模式,运行下面SQL

<span>1</span> <span>SELECT</span><span>  recovery_model, recovery_model_desc
</span><span>2</span> <span>FROM</span><span>    sys.databases
</span><span>3</span> <span>WHERE</span>   name <span>=</span> <span>'</span><span>GPOSDB</span><span>'</span>
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

在创建完一个新数据库之后,强烈建议做一次数据库完整备份

-------------------------------------------------------------------华丽的分割线-----------------------------------------------------------------------

先创建测试表

<span> 1</span> <span>/*</span>
<span> 2</span> <span>由于tempdb永远为简单恢复模式,所以不适合做案例。
</span><span> 3</span> <span>这里使用我的测试机器里的<strong>数据</strong>库GPOSDB
</span><span> 4</span> <span>*/</span>
<span> 5</span> <span>USE</span> <span>[</span><span>GPOSDB</span><span>]</span>
<span> 6</span> <span>GO</span>
<span> 7</span> <span>IF</span> <span>OBJECT_ID</span>(<span>'</span><span>testRestore</span><span>'</span>) <span>IS</span> <span>NOT</span> <span>NULL</span> 
<span> 8</span>     <span>DROP</span> <span>TABLE</span><span> testRestore
</span><span> 9</span> <span>GO</span>
<span>10</span> <span>CREATE</span> <span>TABLE</span><span> testRestore
</span><span>11</span> <span>    (
</span><span>12</span>       id <span>INT</span> <span>IDENTITY</span>(<span>1</span>, <span>1</span><span>) ,
</span><span>13</span>       NAME <span>VARCHAR</span>(<span>50</span><span>)
</span><span>14</span>     );
登入後複製

插入测试数据

<span> 1</span> <span>--</span><span>插入测试<strong>数据</strong>:   </span>
<span> 2</span> <span>INSERT</span> <span>INTO</span><span> testRestore(Name)
</span><span> 3</span> <span>SELECT</span> <span>'</span><span>test1</span><span>'</span>
<span> 4</span> <span>UNION</span> <span>ALL</span> 
<span> 5</span> <span>SELECT</span> <span>'</span><span>test2</span><span>'</span>
<span> 6</span> <span>UNION</span> <span>ALL</span> 
<span> 7</span> <span>SELECT</span> <span>'</span><span>test3</span><span>'</span>
<span> 8</span> <span>UNION</span> <span>ALL</span> 
<span> 9</span> <span>SELECT</span> <span>'</span><span>test4</span><span>'</span>
<span>10</span> <span>UNION</span> <span>ALL</span> 
<span>11</span> <span>SELECT</span> <span>'</span><span>test5</span><span>'</span>
<span>12</span> <span>UNION</span> <span>ALL</span> 
<span>13</span> <span>SELECT</span> <span>'</span><span>test6</span><span>'</span>
<span>14</span> <span>UNION</span> <span>ALL</span> 
<span>15</span> <span>SELECT</span> <span>'</span><span>test7</span><span>'</span>
<span>16</span> <span>UNION</span> <span>ALL</span> 
<span>17</span> <span>SELECT</span> <span>'</span><span>test8</span><span>'</span>
登入後複製

 

<span>1</span> <span>SELECT</span> <span>*</span> <span>FROM</span> testRestore
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

先来一个数据库完整备份,在22:32的时候完整备份数据

<span>1</span> <span>BACKUP</span> <span>DATABASE</span> <span>[</span><span>GPOSDB</span><span>]</span>
<span>2</span> <span>TO</span> <span>DISK</span><span>=</span><span>'</span><span>D:\GPOSDB_FULLBACKUP2013-07-23.bak</span><span>'</span>
<span>3</span> <span>WITH</span><span> INIT
</span><span>4</span> <span>go</span>
登入後複製

模拟删除数据,这里使用waitfor time,目的是使删除数据时间准确一点,这里选择22:34的时候删除数据方便后面还原某个时间点之前的数据

<span>1</span> <span>USE</span> <span>[</span><span>GPOSDB</span><span>]</span>
<span>2</span> <span>GO</span>
<span>3</span> <span>WAITFOR</span> TIME <span>'</span><span>22:34</span><span>'</span>
<span>4</span> <span>DELETE</span> <span>FROM</span> dbo.testRestore
登入後複製


查询一下数据是否删除

<span>1</span> <span>USE</span> <span>[</span><span>GPOSDB</span><span>]</span>
<span>2</span> <span>GO</span>
<span>3</span> <span>SELECT</span> <span>*</span> <span>FROM</span> dbo.testRestore
登入後複製
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

断开与GPOSDB数据库的连接,如果还有连接就kill掉连接,然后执行事务日志备份,在22:36的时候执行事务日志备份

<span> 1</span> <span>--</span><span><strong>删除</strong>了表中的<strong>数据</strong>之后最少要等3分钟才执行下面SQL语句,不然的话等一下还原事务日志的时候会报错</span>
<span> 2</span> <span>--</span><span>必须断开所有与GPOSDB<strong>数据</strong>库的连接</span>
<span> 3</span> <span>USE</span><span> master
</span><span> 4</span> <span>GO</span>
<span> 5</span> <span>BACKUP</span> <span>LOG</span> <span>[</span><span>GPOSDB</span><span>]</span> <span>TO</span>  <span>DISK</span> <span>=</span> N<span>'</span><span>D:\GPOSDB_LOGBACKUP2013-07-23.bak</span><span>'</span> <span>WITH</span>  NO_TRUNCATE , NOFORMAT,  NAME <span>=</span> N<span>'</span><span>GPOSDB-事务日志备份</span><span>'</span>, SKIP,  NORECOVERY ,  STATS <span>=</span> <span>10</span><span>, CHECKSUM
</span><span> 6</span> <span>GO</span>
<span> 7</span> <span>DECLARE</span> <span>@backupSetId</span> <span>AS</span> <span>INT</span>
<span> 8</span> <span>SELECT</span>  <span>@backupSetId</span> <span>=</span><span> position
</span><span> 9</span> <span>FROM</span><span>    msdb..backupset
</span><span>10</span> <span>WHERE</span>   database_name <span>=</span> N<span>'</span><span>GPOSDB</span><span>'</span> <span>AND</span> backup_set_id <span>=</span> ( <span>SELECT</span>
<span>11</span>                                                               <span>MAX</span><span>(backup_set_id)
</span><span>12</span>                                                         <span>FROM</span><span>  msdb..backupset
</span><span>13</span>                                                         <span>WHERE</span> database_name <span>=</span> N<span>'</span><span>GPOSDB</span><span>'</span>
<span>14</span> <span>                                                      )
</span><span>15</span> <span>IF</span> <span>@backupSetId</span> <span>IS</span> <span>NULL</span>  <span>--</span><span>这里是验证事务日志备份是否成功,如果没有断开与GPOSDB<strong>数据</strong>库的连接备份事务日志可能会失败</span>
<span>16</span>     <span>BEGIN</span>
<span>17</span>         <span>RAISERROR</span>(N<span>'</span><span>验证失败。找不到<strong>数据</strong>库“GPOSDB”的备份信息。</span><span>'</span>, <span>16</span>, <span>1</span><span>)
</span><span>18</span>     <span>END</span>
<span>19</span> <span>RESTORE</span> VERIFYONLY <span>FROM</span>  <span>DISK</span> <span>=</span> N<span>'</span><span>D:\GPOSDB_LOGBACKUP2013-07-23.bak</span><span>'</span> <span>WITH</span>  <span>FILE</span> <span>=</span> <span>@backupSetId</span>
<span>20</span> <span>GO</span>
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

<span>1</span> <span>--</span><span>查询是否备份成功</span>
<span>2</span> <span>SELECT</span> <span>TOP</span> <span>10</span> <span>*</span> <span>FROM</span>    msdb..backupset <span>ORDER</span> <span>BY</span> <span>[</span><span>backup_set_id</span><span>]</span> <span>DESC</span> 
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

还原数据库完整备份

<span>1</span> <span>--</span><span><strong>数据</strong>库处于正在还原状态</span>
<span>2</span> <span>RESTORE</span> <span>DATABASE</span> <span>[</span><span>GPOSDB</span><span>]</span> <span>FROM</span> <span>DISK</span><span>=</span><span>'</span><span>D:\GPOSDB_FULLBACKUP2013-07-23.bak</span><span>'</span> <span>WITH</span> <span>replace</span>, NORECOVERY 
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

 还原事务日志

<span>1</span> <span>--</span><span>因为<strong>删除</strong><strong>数据</strong>是在'22:34' 所以还原到22:33</span>
<span>2</span> <span>RESTORE</span> <span>LOG</span> <span>[</span><span>GPOSDB</span><span>]</span> <span>FROM</span> <span>DISK</span><span>=</span><span>'</span><span>D:\GPOSDB_LOGBACKUP2013-07-23.bak</span><span>'</span> <span>WITH</span> RECOVERY ,STOPAT<span>=</span><span>'</span><span>2013-7-23 22:33</span><span>'</span>
登入後複製

如果事务日志还原失败的话,可以使用GUI界面

SQLSERVER拯救某个时间点被误删除的数据

SQLSERVER拯救某个时间点被误删除的数据

查看表中的数据

<span>1</span> <span>USE</span> <span>[</span><span>GPOSDB</span><span>]</span>
<span>2</span> <span>GO</span>
<span>3</span> <span>SELECT</span> <span>*</span> <span>FROM</span> dbo.testRestore
登入後複製
登入後複製

SQLSERVER拯救某个时间点被误删除的数据

 -----------------------------------------------------------华丽的分割线--------------------------------------------

要注意的两个地方

(1)如果你发现误操作以后还有很多人做了操作,那么你还原成功后,别人的操作就会冲掉,所以发生误操作后,要马上停止别人对数据库的操作。

(2)这个方法要对数据库独占

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

sqlserver怎麼匯入mdf文件 sqlserver怎麼匯入mdf文件 Apr 08, 2024 am 11:41 AM

匯入步驟如下:將 MDF 檔案複製到 SQL Server 的資料目錄(通常為 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,開啟資料庫並選擇「附加」。點選“新增”按鈕,選擇 MDF 檔案。確認資料庫名稱,點選確定按鈕即可。

sqlserver資料庫中已存在名為的物件怎麼解決 sqlserver資料庫中已存在名為的物件怎麼解決 Apr 05, 2024 pm 09:42 PM

對於 SQL Server 資料庫中已存在同名對象,需要採取下列步驟:確認物件類型(表格、檢視、預存程序)。如果物件為空,可使用 IF NOT EXISTS 跳過建立。如果物件有數據,使用不同名稱或修改結構。使用 DROP 刪除現有物件(謹慎操作,建議備份)。檢查架構更改,確保沒有引用刪除或重新命名的物件。

微信拉黑再刪除永久加不上是真的嗎 微信拉黑再刪除永久加不上是真的嗎 Apr 08, 2024 am 11:41 AM

1.首先,拉黑再刪除永久加不上是假的,拉黑刪除後想要再加對方,只要對方同意即可。 2.如果用戶將某人封鎖,對方將無法向用戶發送訊息、查看用戶的朋友圈、與用戶通話。 3.封鎖並不意味著將對方從用戶的微信聯絡人清單中刪除。 4.如果用戶在封鎖後又將對方從用戶的微信聯絡人清單中刪除,那麼在刪除後是沒有辦法恢復的。 5.如果用戶想再加入對方為好友,需要對方同意並重新新增使用者。

sqlserver服務無法啟動怎麼辦 sqlserver服務無法啟動怎麼辦 Apr 05, 2024 pm 10:00 PM

當 SQL Server 服務無法啟動時,可採取下列步驟解決:檢查錯誤日誌以確定根本原因。確保服務帳戶具有啟動服務的權限。檢查依賴項服務是否正在執行。禁用防毒軟體。修復 SQL Server 安裝。如果修復不起作用,重新安裝 SQL Server。

怎麼查看sqlserver連接埠號 怎麼查看sqlserver連接埠號 Apr 05, 2024 pm 09:57 PM

若要查看 SQL Server 連接埠號碼:開啟 SSMS,連線到伺服器。在物件資源管理器中找到伺服器名稱,右鍵單擊它,然後選擇“屬性”。在「連線」標籤中,查看「TCP 連接埠」欄位。

sqlserver誤刪資料庫怎麼恢復 sqlserver誤刪資料庫怎麼恢復 Apr 05, 2024 pm 10:39 PM

若誤刪 SQL Server 資料庫,可採取下列步驟還原:停止資料庫活動;備份日誌檔案;檢查資料庫日誌;復原選項:從備份還原;從交易日誌還原;使用 DBCC CHECKDB;使用第三方工具。請定期備份資料庫並啟用交易日誌以防止資料遺失。

iPhone上的蜂窩數據網路速度慢:修復 iPhone上的蜂窩數據網路速度慢:修復 May 03, 2024 pm 09:01 PM

在iPhone上面臨滯後,緩慢的行動數據連線?通常,手機上蜂窩互聯網的強度取決於幾個因素,例如區域、蜂窩網絡類型、漫遊類型等。您可以採取一些措施來獲得更快、更可靠的蜂窩網路連線。修復1–強制重啟iPhone有時,強制重啟設備只會重置許多內容,包括蜂窩網路連線。步驟1–只需按一次音量調高鍵並放開即可。接下來,按降低音量鍵並再次釋放它。步驟2–過程的下一部分是按住右側的按鈕。讓iPhone完成重啟。啟用蜂窩數據並檢查網路速度。再次檢查修復2–更改資料模式雖然5G提供了更好的網路速度,但在訊號較弱

抖音聊天記錄怎麼徹底消除乾淨 抖音聊天記錄怎麼徹底消除乾淨 May 07, 2024 am 11:14 AM

1.開啟抖音app,點選介面底部的【訊息】,點選需要刪除的聊天對話入口。 2.長按任一聊天記錄,點選【多選】,勾選想要刪除的聊天記錄。 3.點選右下角的【刪除】按鈕,在彈出的視窗中選擇【確認刪除】即可將這些記錄永久刪除。

See all articles