方案1:恢復到一個不同的數(shù)據(jù)庫:
成都網(wǎng)絡公司-成都網(wǎng)站建設公司成都創(chuàng)新互聯(lián)十年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站制作、成都網(wǎng)站設計,成都網(wǎng)頁設計,成都網(wǎng)頁制作,軟文發(fā)稿,廣告投放平臺等。十年來已成功提供全面的成都網(wǎng)站建設方案,打造行業(yè)特色的成都網(wǎng)站建設案例,建站熱線:18982081108,我們期待您的來電!
對于小數(shù)據(jù)庫來說不失為一種好的辦法,用備份還原一個新的庫,并把新庫中的表數(shù)據(jù)同步回去。你可以做完整恢復,或者時間點恢復。但是對于大數(shù)據(jù)庫,是非常耗時和耗費磁盤空間的。這個方法僅僅用于還原數(shù)據(jù),在還原數(shù)據(jù)(就是同步數(shù)據(jù))的時候,你要考慮觸發(fā)器、外鍵等因素。
方案2:使用STOPAT來還原日志:
你可能想恢復最近的數(shù)據(jù)庫備份,并回滾到某個時間點,即發(fā)生意外前的某個時刻。此時可以使用STOPAT子句,但是前提是必須為完整或大容量日志恢復模式。
使用Log Explorer查看和恢復數(shù)據(jù)
Log Explorer 4.1.可用于SQL Server2005的日志查看工具
下載地址:
使用方法:
打開Log Explorer - Attach Log File - 選擇SQL Server服務器和登陸方式 - Connect -
在Database Name中選擇數(shù)據(jù)庫 - Attach- 左面對話框中Browse- View Log- 就可以看到log記錄了
想恢復的話: 右鍵Log記錄 Undo Transation- 選擇保存文件名和路徑- 然后打開該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然后將此insert table的代碼放到查詢分析器里執(zhí)行.就可以恢復數(shù)據(jù).
----------------------------------------------------------------------
--如何恢復被delete/update的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫的Db
打開log explorer 選擇 "file"-"attach log file"-選擇服務器和登陸方式-"connect"-選擇"數(shù)據(jù)庫"-"attach"
2 查看日志
在左面操作項目的對話框中選擇"browse"項目-"view log"-就可以看到當前的Log記錄了
3 恢復數(shù)據(jù)
右鍵某一條log記錄,選擇"undo transation"-"選擇保存文件名和路徑"-然后打開該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復被drop table和truncate table后的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫的Db
操作同上
2 恢復方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語句腳步的存放位置,condition選擇是droped還是truncated,
最后點擊"create" 就會生成insert語句,把生成的語句到查詢分析器里面執(zhí)行一下就可以了
2) 選擇"ViewDDL Commands"菜單-選"truncate table" 操作項-點擊"Salvage"-生成語句-查詢分析器里執(zhí)行
----------------------------------------------------------------------
--log explorer使用的幾個問題
----------------------------------------------------------------------
1) 對數(shù)據(jù)庫做完全/差異/日志備份
備份時如果選用了刪除事務日志中不活動的條目
再用Log explorer打試圖看日志時,提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務日志中不活動的條目
再用Log explorer打試圖看日志時,就能看到原來的日志并做恢復
2) 修改了其中一個表中的部分數(shù)據(jù),此時用Log explorer看日志,可以作日志恢復
3) 然后恢復備份,(注意:恢復是斷開log explorer與數(shù)據(jù)庫的連接,或連接到其他數(shù)據(jù)上,
否則會出現(xiàn)數(shù)據(jù)庫正在使用無法恢復)
恢復完后,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日志記錄,所以無法做恢復.
4) 不要用SQL的備份功能備份,搞不好你的日志就破壞了.
正確的備份方法是:
停止SQL服務,復制數(shù)據(jù)文件及日志文件進行文件備份.
然后啟動SQL服務,用log explorer恢復數(shù)據(jù)
SQL Server中誤刪除數(shù)據(jù)的恢復本來不是件難事,從事務日志恢復即可。但是,這個恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的數(shù)據(jù)庫完全備份。
2. 數(shù)據(jù)庫的恢復模式(Recovery mode)是“完整(Full)”。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過SQL語句只需三步就能恢復(參考文章),無需借助第三方工具。
a) 備份當前數(shù)據(jù)庫的事務日志:BACKUP LOG [數(shù)據(jù)庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復一個誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫恢復至誤刪除之前的時間點:RESTORE LOG [數(shù)據(jù)庫] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時間點' , RECOVERY
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要借助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將數(shù)據(jù)庫恢復模式設置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版并沒有數(shù)據(jù)恢復功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購買,但Demo版可以恢復數(shù)據(jù),只要數(shù)據(jù)庫文件不超過24Gb。幸好朋友的數(shù)據(jù)庫文件不大,用它完成了誤刪除數(shù)據(jù)的恢復。
下面分享一下用Recovery for SQL Server進行恢復的操作步驟:
1. 運行Recovery for SQL Server
2. 點擊菜單中的 File Recover,選擇要恢復的數(shù)據(jù)庫的數(shù)據(jù)文件(.mdf)
3. Next Next,進入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復誤刪除的數(shù)據(jù))。
4. Next 進入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復的數(shù)據(jù)庫的日志文件路徑(log file path)。
5. Next 并選擇目標文件夾(Destination folder),用于存放恢復過程中生成的SQL語句與bat文件。
6. 點擊Start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復數(shù)據(jù)存放的目標數(shù)據(jù)庫。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數(shù)據(jù)的恢復!
網(wǎng)站標題:恢復表sqlserver,mysql備份表和恢復表
標題鏈接:http://m.kartarina.com/article2/dsesjoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、軟件開發(fā)、標簽優(yōu)化、網(wǎng)站導航、域名注冊、建站公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)