SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的_第1頁
SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的_第2頁
SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的_第3頁
SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的_第4頁
SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

SQLServer數(shù)據(jù)庫的備份與還原以及在項目中是怎樣去實現(xiàn)的2023-03-1311:39:21標(biāo)簽:SQLServer數(shù)據(jù)庫的備份與還原--備份的設(shè)備有2種(臨時設(shè)備和永久設(shè)備)注意:默認下的備份類型是完整備份

--第一種:

backupdatabaseCompanytodisk='d:\backup\1.bak'--臨時設(shè)備

/*如果這里不指定明確路徑的話(如:backupdatabasecompanytodisk='backup\1.bak'),

那么備份的數(shù)據(jù)庫將會自動備份到系統(tǒng)指定的目錄下:

C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Backup*/--第二種:

/*第一步首先建立永久備份設(shè)備(系統(tǒng)自帶的存儲過程)在master數(shù)據(jù)庫中就會找到如圖1:

*/

--執(zhí)行語句如:

execsp_addumpdevice'disk','disk_company','D:\2.bak'--永久設(shè)備--執(zhí)行結(jié)果就會出現(xiàn)如圖2:

--多了一個備份設(shè)備:disk_company

--第二步:

backupdatabasecompanytodisk_companywithnoinit--默認表示追加(不覆蓋)--好了備份完成!

--現(xiàn)在我來還原數(shù)據(jù)庫(我用的是第一種方法備份的,所以我要第一種方法來還原),

--原來的數(shù)據(jù)如圖3:

--經(jīng)過我手動刪除幾個表后的數(shù)據(jù)庫如圖4:

--執(zhí)行語句:

restoredatabaseCompanyfromdisk='d:\backup\1.bak'--注意備份到哪里去就要從還原哪里來

--執(zhí)行后會出現(xiàn)什么呢?請看錯誤消息:

/*消息3159,級別16,狀態(tài)1,第1行

尚未備份數(shù)據(jù)庫"company"的日志尾部。如果該日志包含您不希望丟失的工作,請使用BACKUPLOGWITHNORECOVERY備份該日志。請使用RESTORE語句的WITHREPLACE或WITHSTOPAT子句來只覆蓋該日志的內(nèi)容。

消息3013,級別16,狀態(tài)1,第1行

RESTOREDATABASE正在異常終止。*/

--為什么會出現(xiàn)這種錯誤呢我們可以從錯誤的消息中找到解決方案!

--我們?nèi)タ纯催@個數(shù)據(jù)庫的恢復(fù)模式如圖5:

--因為如圖的恢復(fù)模式是:完整;所以它的功能是將所有事務(wù)都寫入日志,把所有數(shù)據(jù)庫文件的都還原

--方案一:我現(xiàn)在只是還原的數(shù)據(jù)庫文件并沒有備份日志文件所以我再去備份日志文件

backuplogCompanytodisk='d:\backup\2.bak'--備份日志文件

restoredatabaseCompanyfromdisk='d:\backup\1.bak'--再去還原數(shù)據(jù)庫

restorelogCompanyfromdisk='d:\backup\2.bak'--這步可有可無--執(zhí)行的結(jié)果為:如圖6:--方案二由于錯誤消息中的提示:請使用RESTORE語句的WITHREPLACE或WITHSTOPAT子句來只覆蓋該日志的內(nèi)容。

---消息3013,級別16,狀態(tài)1,第1行所以我想到去覆蓋掉日志文件雖然恢復(fù)模式是完整的但是我要覆蓋它也是可以的

--只是對數(shù)據(jù)庫的操作沒有日志沒有完全還原而已也是可以的

--執(zhí)行語句如下:

restoredatabaseCompanyfromdisk='d:\backup\1.bak'WITHREPLACE--執(zhí)行成功

/*已為數(shù)據(jù)庫'Company',文件'Company_Data'(位于文件1上)處理了224頁。

已為數(shù)據(jù)庫'Company',文件'Company_Log'(位于文件1上)處理了5頁。

RESTOREDATABASE成功處理了229頁,花費0.225秒(8.319MB/秒)。*/--方案三:我想了一下我只是備份了數(shù)據(jù)庫,但是沒有備份日志文件根據(jù)備份還原的原理

/*

恢復(fù)模式說明

簡單不用備份的事務(wù)日志,即可還原

用于小型數(shù)據(jù)庫和不經(jīng)常更改的數(shù)據(jù)庫

完整所有事務(wù)都被記錄到日志中

保留所有日志,直到事務(wù)日志備份

用于生產(chǎn)數(shù)據(jù)庫

大容量日志完整恢復(fù)模式的補充

不將大容量日志操作寫入日志

*/

--所以我修改了這個數(shù)據(jù)庫的屬性中的恢復(fù)模式改為“簡單”

--如圖7:

--我直接執(zhí)行還原的代碼

restoredatabaseCompanyfromdisk='d:\backup\1.bak'

/*執(zhí)行結(jié)果:

已為數(shù)據(jù)庫'Company',文件'Company_Data'(位于文件1上)處理了224頁。

已為數(shù)據(jù)庫'Company',文件'Company_Log'(位于文件1上)處理了5頁。

RESTOREDATABASE成功處理了229頁,花費0.224秒(8.356MB/秒)。*/--三種還原的解決方案成功--但是這用到項目中數(shù)據(jù)庫正在使用的話是不成功的,它具有排它性!

--所以我寫了一個存儲過程來解決,這也是很多程序員花了很久才解決的問題

--代碼用法如下:有附帶的例子下載

--創(chuàng)建存儲過程killspid落cr舌ea秩te汪p刪ro吩c同ki愛ll多sp概id跑(抹@d乎bn響am恭e增va伙rc功ha術(shù)r(匆20顏))釀

絲as羨

天be剖gi鍋n結(jié)

速de鋼cl除ar勸e孕@s網(wǎng)ql滿n漠va騾rc趨ha斗r(柄50魯0)苗

窄de犬cl擠ar任e梁@s堆pi袍d寶in廊t估

堡se澡t桿@s驗ql火='怠de方cl撥ar啦e薯ge鎮(zhèn)ts憤pi腿d圍cu虹rs窩or似f圍or嶺

煌se拌le像ct且s收pi慮d雜fr脹om卡s劈ys饒pr洪oc誘es垃se挑s忍wh逐er警e末db吐id雞=d襪b_所id奮(譽''炮'+伸@d婦bn濕am麗e+袋''陽')階'篇

隊ex常ec掃(逝@s把ql添)防

感op償en略g鳳et暗sp缸id冊

他fe且tc犁h絨ne帖xt拴f招ro蹤m尤ge亡ts浴pi隸d畫in委to崗@量sp繼id珠

河wh午il錄e渾@@肺fe雞tc院h_妹st栗at漿us躬<瀉>昂-1柔

飄be曉gi鹽n另

比ex劑ec維('唉ki三ll嘩

步'+獅@s鍵pi葛d爺)廈

俘fe雨tc幼h瀉ne終xt政f桶ro案m向ge淡ts踢pi揚d倉in招to持@鄰sp閣id濃

好en狹d伍

宿cl死os遇e贈ge割ts蝦pi刑d好

陡de為al脈lo除ca座te稼g書et繼sp鑼id甩

網(wǎng)en司dGO榴--巖說明青:

克--像1.邪此存僻儲過壩程應(yīng)竟寫在乖Ma勇st怖er稻中;

驢--掘2.你以上景代碼孔就是定解決抽因為瓣數(shù)據(jù)啊庫正瞧在使肺用,臉?biāo)载溛茨芰塬@得

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論