sqlserver表修復(fù),mysql數(shù)據(jù)庫(kù)表修復(fù)

sqlserver 刪除數(shù)據(jù)庫(kù) 怎么恢復(fù)

使用命令,是通過(guò)sqlserver的事務(wù)日志以及一個(gè)誤刪除前的數(shù)據(jù)庫(kù)的完整備份進(jìn)行還原,所以在sqlserver2012的維護(hù)計(jì)劃向?qū)е?,要建立完整備份,差異備份和事?wù)日志,具體如下

成都創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、做網(wǎng)站、成都網(wǎng)站制作、行業(yè)門(mén)戶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)制作的專業(yè)的建站公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁(yè)設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹(shù)立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來(lái)曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)數(shù)千家。

以及在數(shù)據(jù)庫(kù)屬性,選項(xiàng)設(shè)置中,設(shè)置為完整備份,做好如上兩個(gè)設(shè)置,數(shù)據(jù)庫(kù)誤刪后找回?cái)?shù)據(jù)就會(huì)非常輕松,現(xiàn)在說(shuō)一下如何還原sqlserver數(shù)據(jù)到故障點(diǎn)。

sqlserver數(shù)據(jù)庫(kù)數(shù)據(jù)被刪除了怎么還原

SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來(lái)不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個(gè)恢復(fù)需要有兩個(gè)前提條件:

1. 至少有一個(gè)誤刪除之前的數(shù)據(jù)庫(kù)完全備份。

2. 數(shù)據(jù)庫(kù)的恢復(fù)模式(Recovery mode)是“完整(Full)”。

針對(duì)這兩個(gè)前提條件,會(huì)有三種情況:

情況一、如果這兩個(gè)前提條件都存在,通過(guò)SQL語(yǔ)句只需三步就能恢復(fù)(參考文章),無(wú)需借助第三方工具。

a) 備份當(dāng)前數(shù)據(jù)庫(kù)的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫(kù)名] TO disk= N'備份文件名' WITH NORECOVERY

b) 恢復(fù)一個(gè)誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫(kù)名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE

c) 將數(shù)據(jù)庫(kù)恢復(fù)至誤刪除之前的時(shí)間點(diǎn):RESTORE LOG [數(shù)據(jù)庫(kù)] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時(shí)間點(diǎn)' , RECOVERY

情況二、如果第1個(gè)前提條件不存在,第2個(gè)前提條件存在,需要借助第三方工具。

情況三、如果第2個(gè)前提條件不存在,無(wú)法恢復(fù)。所以,一定要將數(shù)據(jù)庫(kù)恢復(fù)模式設(shè)置為“完整(Full)”。

我現(xiàn)在面臨的是第二種情況,需要找第三方工具。

開(kāi)始找的是Log Explorer for SQL Server,不支持SQL Server 2008。

后來(lái)找的是SQL Log Rescue,也不支持SQL Server 2008。

接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購(gòu)買(mǎi),Demo版并沒(méi)有數(shù)據(jù)恢復(fù)功能。

最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購(gòu)買(mǎi),但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫(kù)文件不超過(guò)24Gb。幸好朋友的數(shù)據(jù)庫(kù)文件不大,用它完成了誤刪除數(shù)據(jù)的恢復(fù)。

下面分享一下用Recovery for SQL Server進(jìn)行恢復(fù)的操作步驟:

1. 運(yùn)行Recovery for SQL Server

2. 點(diǎn)擊菜單中的 File Recover,選擇要恢復(fù)的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(.mdf)

3. Next Next,進(jìn)入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復(fù)誤刪除的數(shù)據(jù))。

4. Next 進(jìn)入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復(fù)的數(shù)據(jù)庫(kù)的日志文件路徑(log file path)。

5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過(guò)程中生成的SQL語(yǔ)句與bat文件。

6. 點(diǎn)擊Start,開(kāi)始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。

7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫(kù)。

8. Next, 選擇 Import availiable data from both database and log files

9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!

怎樣恢復(fù)損壞的SQL Server數(shù)據(jù)文件

1、確保備份下的master數(shù)據(jù)庫(kù)與要恢復(fù)的SQL SERVER的版本一致性。

2、關(guān)閉打開(kāi)SQL Server Management Studio,打開(kāi)服務(wù)器管理器,點(diǎn)擊“配置”-“服務(wù)”,找到SQL SERVER服務(wù),右鍵點(diǎn)擊出快捷菜單。點(diǎn)擊“停止”停止MSSQLSERVER服務(wù)。

3、以管理員賬戶打開(kāi)cmd,輸入以下的命令:net start mssqlserver?/m。

4、打開(kāi)SQL Server Management Studio,出現(xiàn)連接到服務(wù)器的窗口,點(diǎn)擊取消。

5、點(diǎn)擊“新建查詢”,出現(xiàn)連接到服務(wù)器的窗口,點(diǎn)擊確定。因?yàn)槭菃斡脩裟J剑虼酥荒苡幸粋€(gè)鏈接進(jìn)入。

6、在查詢窗口輸入以下的命令。

7、重新啟動(dòng)SQL SERVER(MSSQLSERVER)服務(wù),右鍵點(diǎn)擊出快捷菜單。點(diǎn)擊“啟動(dòng)”啟動(dòng)服務(wù)就可以了。

sqlserver怎么恢復(fù)刪除

使用Log Explorer查看和恢復(fù)數(shù)據(jù)

Log Explorer 4.1.可用于SQL Server2005的日志查看工具

下載地址:

使用方法:

打開(kāi)Log Explorer - Attach Log File - 選擇SQL Server服務(wù)器和登陸方式 - Connect -

在Database Name中選擇數(shù)據(jù)庫(kù) - Attach- 左面對(duì)話框中Browse- View Log- 就可以看到log記錄了

想恢復(fù)的話: 右鍵Log記錄 Undo Transation- 選擇保存文件名和路徑- 然后打開(kāi)該文件到查詢分析器里執(zhí)行

T-sql代碼就可以了

例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....

然后將此insert table的代碼放到查詢分析器里執(zhí)行.就可以恢復(fù)數(shù)據(jù).

----------------------------------------------------------------------

--如何恢復(fù)被delete/update的數(shù)據(jù)

----------------------------------------------------------------------

1 連接到被刪除數(shù)據(jù)庫(kù)的Db

打開(kāi)log explorer 選擇 "file"-"attach log file"-選擇服務(wù)器和登陸方式-"connect"-選擇"數(shù)據(jù)庫(kù)"-"attach"

2 查看日志

在左面操作項(xiàng)目的對(duì)話框中選擇"browse"項(xiàng)目-"view log"-就可以看到當(dāng)前的Log記錄了

3 恢復(fù)數(shù)據(jù)

右鍵某一條log記錄,選擇"undo transation"-"選擇保存文件名和路徑"-然后打開(kāi)該文件到查詢分析器里執(zhí)行

T-sql代碼就可以了

例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....

----------------------------------------------------------------------

--Log Explorer恢復(fù)被drop table和truncate table后的數(shù)據(jù)

----------------------------------------------------------------------

1 連接到被刪除數(shù)據(jù)庫(kù)的Db

操作同上

2 恢復(fù)方法

1) 選擇"salvaage dropped/truncate"菜單,在右邊的對(duì)話框中選擇表名,和droped/trucated的日期,

File Name中選擇生成insert語(yǔ)句腳步的存放位置,condition選擇是droped還是truncated,

最后點(diǎn)擊"create" 就會(huì)生成insert語(yǔ)句,把生成的語(yǔ)句到查詢分析器里面執(zhí)行一下就可以了

2) 選擇"ViewDDL Commands"菜單-選"truncate table" 操作項(xiàng)-點(diǎn)擊"Salvage"-生成語(yǔ)句-查詢分析器里執(zhí)行

----------------------------------------------------------------------

--log explorer使用的幾個(gè)問(wèn)題

----------------------------------------------------------------------

1) 對(duì)數(shù)據(jù)庫(kù)做完全/差異/日志備份

備份時(shí)如果選用了刪除事務(wù)日志中不活動(dòng)的條目

再用Log explorer打試圖看日志時(shí),提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了

如果不選用了刪除事務(wù)日志中不活動(dòng)的條目

再用Log explorer打試圖看日志時(shí),就能看到原來(lái)的日志并做恢復(fù)

2) 修改了其中一個(gè)表中的部分?jǐn)?shù)據(jù),此時(shí)用Log explorer看日志,可以作日志恢復(fù)

3) 然后恢復(fù)備份,(注意:恢復(fù)是斷開(kāi)log explorer與數(shù)據(jù)庫(kù)的連接,或連接到其他數(shù)據(jù)上,

否則會(huì)出現(xiàn)數(shù)據(jù)庫(kù)正在使用無(wú)法恢復(fù))

恢復(fù)完后,再打開(kāi)log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日志記錄,所以無(wú)法做恢復(fù).

4) 不要用SQL的備份功能備份,搞不好你的日志就破壞了.

正確的備份方法是:

停止SQL服務(wù),復(fù)制數(shù)據(jù)文件及日志文件進(jìn)行文件備份.

然后啟動(dòng)SQL服務(wù),用log explorer恢復(fù)數(shù)據(jù)

如何恢復(fù)SQLServer表級(jí)數(shù)據(jù)詳解

方案1:恢復(fù)到一個(gè)不同的數(shù)據(jù)庫(kù):

對(duì)于小數(shù)據(jù)庫(kù)來(lái)說(shuō)不失為一種好的辦法,用備份還原一個(gè)新的庫(kù),并把新庫(kù)中的表數(shù)據(jù)同步回去。你可以做完整恢復(fù),或者時(shí)間點(diǎn)恢復(fù)。但是對(duì)于大數(shù)據(jù)庫(kù),是非常耗時(shí)和耗費(fèi)磁盤(pán)空間的。這個(gè)方法僅僅用于還原數(shù)據(jù),在還原數(shù)據(jù)(就是同步數(shù)據(jù))的時(shí)候,你要考慮觸發(fā)器、外鍵等因素。

方案2:使用STOPAT來(lái)還原日志:

你可能想恢復(fù)最近的數(shù)據(jù)庫(kù)備份,并回滾到某個(gè)時(shí)間點(diǎn),即發(fā)生意外前的某個(gè)時(shí)刻。此時(shí)可以使用STOPAT子句,但是前提是必須為完整或大容量日志恢復(fù)模式。

本文標(biāo)題:sqlserver表修復(fù),mysql數(shù)據(jù)庫(kù)表修復(fù)
當(dāng)前鏈接:http://muchs.cn/article10/hcjedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、服務(wù)器托管、外貿(mào)建站、靜態(tài)網(wǎng)站、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)