怎麼辦呢?別著急 下面我們舉例說明恢復辦法
A 我們使用默認方式建立一個供恢復使用的資料庫(如test) 可以在SQL Server Enterprise Manager裡面建立
B 停掉資料庫伺服器
C 將剛才生成的數悶談仿據庫的日誌文件test_log ldf刪除 用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data mdf
D 啟動資料庫伺服器 此時會看到資料庫test的狀態為 置疑 這時候不能對此資料庫進行任何操作
E 設置資料庫允許直接
操作系統表 此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器 按右鍵 選擇 屬性 在 伺服器設置 頁面中將螞纖 允許對系統目錄直接修改 一項選中 也可以使用如下語句來實現
以下是引用片段 usemaster go sp_configure allowupdates go reconfigurewithoverride go
F 設置test為緊急修復模式
update sysdatabases set status= where dbid=DB_ID( test )
此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於 只讀置疑離線緊急模式 可以看到資料庫裡面的表 但是僅僅有系統表
G 下面執行真正的恢復操作 重建資料庫日誌文件
dbcc rebuild_log( test C:Program FilesMicrosoft SQL ServerMSSQLData est_log ldf )
執行過程中 如果遇到下列提示信息
伺服器: 消息 級別 狀態 行
未能排它地鎖定資料庫以執行該操作
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
說明您的其他程序正在使用該資料庫 如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的系統表 那麼退出SQL Server Enterprise Manager就可以了
正確執行完成的提示應該類似於
警告: 資料庫 test 的日誌已重建 已失去事務的一致性 應運行 DBCC CHECKDB 以驗證物理一致性 將必須重置資料庫選項 並且可能需要刪除多餘的日誌文件
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為 只供DBO使用 此時可以訪問資料庫裡面的用戶表了
H 驗證資料庫一致性(可省略)
dbcc checkdb( test )
一般執行結果如下
CHECKDB 發現了 個分配錯誤和 個一致性錯誤(在資料庫 test 中)
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
I 設置資料庫為正常狀態
sp_dboption test dbo use only false
侍拍如果沒有出錯 那麼恭喜 現在就可以正常的使用恢復後的資料庫啦
J 最後一步 我們要將步驟E中設置的 允許對系統目錄直接修改 一項恢復 因為平時直接操作系統表是一件比較危險的事情 當然 我們可以在SQL Server Enterprise Manager裡面恢復 也可以使用如下語句完成
以下是引用片段 sp_configure allowupdates go reconfigurewithoverride go
lishixin/Article/program/SQL/201311/16354
㈡ sql server怎麼恢復數據
首先sqlserver自帶備份及還原資料庫功能,您需要首先有備份才能進行數據恢復。步驟如下:
以sqlserver2005為例
1、備份;講一下如何備份:
9、還原成功;然後點擊確定等待完成就好了。
㈢ 怎樣在sql sever備份中恢復某一張表中的數據
有個方法很好理解,如下:
1、新建資料庫,另起名,強制恢復原先資料庫的備份。
2、從該新資料庫中把你想要的表DTS到你想到的資料庫中。
方法雖拐彎了一點,但很安全,很好理解。
㈣ 如何在SQL Server中恢復數據
在SQL server 中恢復數據的幾種辦法 自然就是 backup 的 恢復方法 backup 這種方法是最安全 最可靠的方法操作起來也很簡單 只要在 sql server 的 enterprise manager中選擇 restore 就可以了 用T SQL 也可以完成 RESTORE DATABASE test FROM DISK = c:mssql ackup est bak 當然這是用的 文件恢復 如果是 設備恢復 自然也是可以的 可是有的時候 SQL server 是在我們毫無准備的情況下癱瘓的 有的時候是伴隨者 NT 的癱瘓而引起的 (這個時候 豆腐想 牆上 Gates 的畫像有仍了幾個 西紅柿) 怎麼辦呢?這個時候就只有採用 sql server 的 t sql 中提供的系統存儲過程了 sp_atach_db 在這里舉一個簡單的例子 sp_attach_db @dbname = N pubs @filename = N c:mssql datapubs mdf @filename = N c:mssql datapubs_log ldf 這種方法應該說是有很高的成功率的 不過在 實踐中 豆腐聽說 這樣後 資料庫成為只讀的 那也沒有辦法了 如果只有 mdf 沒有 ldf 文件的話 可以使用 sp_attach_single_file sp_attach_single_file_db @dbname = pubs @physname = c:mssql datapubs mdf 這個方法本來是 用來 對 sp_deatach 的操作的反操作 不過直接使用也還是可以成功的 lishixin/Article/program/SQLServer/201311/22066
㈤ sqlserver資料庫表數據誤刪除了 怎麼恢復
恢復sqlserver資料庫表數據步驟如下:
一、心態:
1、務必冷靜,事情已經發生不可慌亂。
2、立即查看當前時間,最好能夠精確到秒,並做記錄。
3、應立即向直接上級反映此事,不可隱瞞,防止事態擴大。
4、如果許可權允許,應當立即停止相關應用,防止有新的數據寫入資料庫。
二、恢復:
1、構建新資料庫以及寫入一些數據
如果查詢發現數據不是你想要的,那麼可以重復上述的操作,從備份事務日誌開始,然後最後選擇時間點的時候在縮小范圍。
㈥ sql資料庫用語句刪除表,怎麼恢復
如何恢復被delete/update的數據
操作步驟
1連接到被刪除資料庫的Db
打開logexplorer選擇"file"->"attachlogfile"->選擇伺服器和登陸方式->"connect"->選擇"資料庫"->"attach"
2查看日誌
在左面操作項目的對話框中選擇"browse"項目->"viewlog"->就可以看到當前的Log記錄了
3恢復數據
右鍵某一條log記錄,選擇"undotransation"->"選擇保存文件名和路徑"->然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如:如果log是deletetablewhere...的話,生成的文件代碼就是inserttable....
㈦ SQL資料庫里的表誤刪除要怎麼恢復
sql
server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1.
至少有一個誤刪除之前的資料庫完全備份。
2.
資料庫的恢復模式(recovery
mode)是「完整(full)」。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過sql語句只需三步就能恢復(參考文章),無需藉助第三方工具。
a)
備份當前資料庫的事務日誌:backup
log
[資料庫名]
to
disk=
n'備份文件名'
with
norecovery
b)
恢復一個誤刪除之前的完全備份:restore
database
[資料庫名]
from
disk
=
n'完全備份文件名'
with
norecovery,
replace
c)
將資料庫恢復至誤刪除之前的時間點:restore
log
[資料庫]
from
disk
=
n'第一步的日誌備份文件名'
with
stopat
=
n'誤刪除之前的時間點'
,
recovery
㈧ sql 刪除表中數據後怎麼恢復
首先有兩種方式可以滿足你的需求:
第一:delete
from
student
該方式下資料庫空間不一定能及時釋放出來,而且如果有identity欄位,之後再插入數據也不會從定義的初始值開始自增。
第二:truncate
table
student
該方式可以及時表空間,也能讓新增數據是identity的初始值為之前建表定義的開始