日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer數(shù)據(jù)庫的恢復

之前已經(jīng)為大家介紹了SQL Server數(shù)據(jù)庫的還原、SQL Server數(shù)據(jù)庫的備份,下文將繼續(xù)為大家?guī)黻P于SQL Server數(shù)據(jù)庫的恢復。

北戴河網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)建站。

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

  backup log Company to disk='d:\backup\2.bak' --備份日志文件

  restore database Company from disk='d:\backup\1.bak' --再去還原數(shù)據(jù)庫

  restore log Company from disk='d:\backup\2.bak'--這步可有可無

  --執(zhí)行的結(jié)果為:如下圖:

--方案二 由于錯誤消息中的提示:請使用 RESTORE 語句的 WITH REPLACE 或 WITH STOPAT 子句來只覆蓋該日志的內(nèi)容。

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

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

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

  restore database Company from disk='d:\backup\1.bak' WITH REPLACE

  --執(zhí)行成功

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

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

  RESTORE DATABASE 成功處理了 229 頁,花費 0.225 秒(8.319 MB/秒)。*/
 

--方案三:我想了一下 我只是備份了數(shù)據(jù)庫,但是沒有備份日志文件 根據(jù)備份還原的原理

  /*

  恢復模式 說明

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

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

  完整 所有事務都被記錄到日志中

  保留所有日志,直到事務日志備份

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

  大容量日志 完整恢復模式的補充

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

  */

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

  --如下圖:

#p#

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

  restore database Company from disk='d:\backup\1.bak'

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

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

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

  RESTORE DATABASE 成功處理了 229 頁,花費 0.224 秒(8.356 MB/秒)。*/

  --三種還原的解決方案成功
 

 --但是這用到項目中數(shù)據(jù)庫正在使用的話是不成功的 ,它具有排它性 !

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

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

  --創(chuàng)建存儲過程 killspid

  create proc killspid (@dbname varchar(20))

  as

  begin

  declare @sql nvarchar(500)

  declare @spid int

  set @sql='declare getspid cursor for

  select spid from sysprocesses where dbid=db_id('''+@dbname+''')'

  exec (@sql)

  open getspid

  fetch next from getspid into @spid

  while @@fetch_status < >-1

  begin

  exec('kill '+@spid)

  fetch next from getspid into @spid

  end

  close getspid

  deallocate getspid

  end

  GO

  --說明:

  --1.此存儲過程應寫在Master中;

  --2.以上代碼就是解決因為數(shù)據(jù)庫正在使用,所以未能獲得對數(shù)據(jù)庫的排它訪問權的問題,不然系統(tǒng)有時會報錯;

以上就是我要為大家介紹的全部內(nèi)容。希望能夠?qū)Υ蠹矣兴鶐椭?,掌握了上文中介紹的知識點,在大家以后的工作中遇到類似的問題,就能很出色的完成。

【編輯推薦】

  1. 丟失歸檔日志文件后數(shù)據(jù)庫應當如何恢復
  2. 如何恢復數(shù)據(jù)庫的內(nèi)容
  3. 表中出現(xiàn)Block錯誤的恢復方法及具體步驟

分享標題:SQLServer數(shù)據(jù)庫的恢復
文章地址:http://m.5511xx.com/article/djjpihg.html