SQL数据库误删除表数据恢复 SQL数据库truncate表数据恢复
誤刪除表需要恢復該表,要注意幾個問題,
第一 刪除表后是否新建表了 是否插入數據了。
第二 刪除表后是否立即關閉SQL服務了/
第三 數據庫是否是完整模式
我們先來了解下 刪除表做了那些操作,所有系統表的關于該表的記錄會清除掉,例如表名字 ID 字段 索引 外間 觸發器等。
其次 該表占用的頁面在每個PFS頁面給清除掉。那么基本上這個表就算是被刪除掉了。
一般這種故障數據庫管理員會用老備份跟事務日志還原到時間點,但這個要求是完整模式 而且容易出現LSN不匹配故障導致無法恢復。
數據庫修復公司 怎么做的?如果刪除表之后 您又新建表插入了新的數據,那么這個是很危險的,因為會這些操作會占用SQL數據庫認為沒有被任何對象使用的頁面 這樣就導致我們刪除的表之前占用的頁面很可能被新的表新的數據,或者其他表的數據給占用掉。那么將導致無法恢復 或者數據無法恢復完整。如果是刪除表后就立即關閉服務或者數據庫 那么肯定是完美的恢復的。
SQL2000每個表只有一個OBJID號,這個號在他的每個頁面的第 24 25 26 27 四個字節就是這個號碼/ 表被刪除后就無法通過SQL語句獲取表ID 那么就只能通過文件方面來分析,.或者可以還原老備份 來用SQL語句查詢表ID。知道表ID就可以利用表ID定位刪除掉的表的頁面,然后虛擬系統表提取所有頁面上的數據。、
自從SQL 2005 開始SQL數據庫有了分區概念,這個東西很不利用數據恢復,我曾見過 一個表 有528個分區個分配ID 每個分區 每個分配ID都不一樣 更瘋狂的是幾乎每個分配ID都寫了數據,。每個分配ID就代表一個虛擬表ID,可想而知 要恢復這種刪除的表 如果沒有老備份,那么將是非常痛苦的 因為你要找到每個分配ID 提取528次 。
恢復SQL 2008 2008R2 2012 數據庫也都跟SQL2000一樣過程 唯一不一樣的就是分區概念、
posted on 2013-09-30 03:36?極佳數據庫 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/SQL110/p/3346589.html
總結
以上是生活随笔為你收集整理的SQL数据库误删除表数据恢复 SQL数据库truncate表数据恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团结就是力量,TeamCola浅谈创业团
- 下一篇: derby数据库操作比较难理解的错误及解