自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫的恢復(fù)

數(shù)據(jù)庫 SQL Server
SQL Server數(shù)據(jù)庫的備份和還原是對(duì)SQL Server數(shù)據(jù)庫中數(shù)據(jù)保護(hù)的最安全的做法,下面我將為大家介紹SQL Server數(shù)據(jù)庫的恢復(fù)。

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

--方案一:我現(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é)果為:如下圖:

 

 

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

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

  --只是對(duì)數(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 頁,花費(fèi) 0.225 秒(8.319 MB/秒)。*/
 

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

  /*

  恢復(fù)模式 說明

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

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

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

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

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

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

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

  */

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

  --如下圖:

 

 

#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 頁,花費(fèi) 0.224 秒(8.356 MB/秒)。*/

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

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

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

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

  --創(chuàng)建存儲(chǔ)過程 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.此存儲(chǔ)過程應(yīng)寫在Master中;

  --2.以上代碼就是解決因?yàn)閿?shù)據(jù)庫正在使用,所以未能獲得對(duì)數(shù)據(jù)庫的排它訪問權(quán)的問題,不然系統(tǒng)有時(shí)會(huì)報(bào)錯(cuò);

以上就是我要為大家介紹的全部內(nèi)容。希望能夠?qū)Υ蠹矣兴鶐椭莆樟松衔闹薪榻B的知識(shí)點(diǎn),在大家以后的工作中遇到類似的問題,就能很出色的完成。

【編輯推薦】

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

 

責(zé)任編輯:迎迎 來源: IT168博客園
相關(guān)推薦

2010-07-08 11:05:14

SQL Server數(shù)

2011-09-21 14:00:34

SQL Server

2011-04-02 11:02:54

SQL Server數(shù)文件恢復(fù)

2010-10-21 11:35:45

恢復(fù)SQL Serve

2011-03-23 10:08:09

2011-03-24 11:14:46

2011-04-01 09:17:36

SQL Server數(shù)據(jù)庫

2011-04-01 09:31:01

SQL Server數(shù)據(jù)庫

2010-07-15 17:28:50

SQL Server

2011-03-15 09:52:40

SQL Server2數(shù)據(jù)庫恢復(fù)系統(tǒng)

2011-04-01 10:40:07

SQL Server數(shù)備份恢復(fù)

2011-03-24 09:07:11

SQL Server數(shù)備份

2011-03-24 09:24:08

SQL Server數(shù)還原

2010-07-01 12:44:52

SQL Server數(shù)

2023-09-05 00:06:45

2009-08-05 09:38:28

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫

2010-10-22 15:42:59

SQL Server創(chuàng)

2010-09-14 09:53:52

sql server還

2011-03-21 10:13:31

Sql Server數(shù)分區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)