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

SQLServer日志文件丟失,恢復(fù)并不難!

數(shù)據(jù)庫 SQL Server
我們今天主要向大家講述的是SQLServer日志文件在丟失的情況下的恢復(fù)方案,同時(shí)本文也有對其概念的具體描述,望大家會(huì)對其有更好的理解。

此文章主要講述的是SQLServer日志文件在丟失的情況下的恢復(fù)方案,相信如果你掌握了SQLServer日志文件在丟失的情況下的恢復(fù)方這實(shí)際操作技巧,會(huì)在以后的學(xué)習(xí)或是工作中帶來很大的幫助。

一、 概述

在應(yīng)用系統(tǒng)中,數(shù)據(jù)庫往往是最核心的部分,一旦數(shù)據(jù)庫毀壞或損壞,將會(huì)帶來巨大的損失,所以數(shù)據(jù)庫的管理越來越重要。我們在做數(shù)據(jù)庫管理與維護(hù)工作中,不可避免會(huì)出現(xiàn)各種各樣的錯(cuò)誤,本文針對數(shù)據(jù)庫的SQLServer日志文件丟失時(shí)如何利用MDF文件恢復(fù)數(shù)據(jù)庫的方法進(jìn)行了研究。

二、 數(shù)據(jù)庫的恢復(fù)

當(dāng)數(shù)據(jù)庫的主數(shù)據(jù)MDF文件完好無損時(shí),在丟失了LDF文件的情況下,如何利用MDF文件恢復(fù)數(shù)據(jù)庫?我們把SQL Server日志文件分為兩類:一類是無活動(dòng)事務(wù)的日志,另一類是含活動(dòng)事務(wù)的日志,根據(jù)不同的日志,采取不同的方法來恢復(fù)數(shù)據(jù)庫。

1. 無活動(dòng)事務(wù)的日志恢復(fù)

無活動(dòng)事務(wù)的日志丟失時(shí),我們很容易利用MDF文件直接恢復(fù)數(shù)據(jù)庫,具體方法如下:

①.分離被質(zhì)疑的數(shù)據(jù)庫,可用企業(yè)管理器中的"分離數(shù)據(jù)庫工具",或者用存儲(chǔ)過程sp_detach_db分離數(shù)據(jù)庫;

②利用MDF文件附加數(shù)據(jù)庫生成新的日志文件,可用企業(yè)管理器中的"附加數(shù)據(jù)庫"的工具,或者用存儲(chǔ)過程sp_attach_single_file_db附加數(shù)據(jù)庫。

如果數(shù)據(jù)庫的SQLServer日志文件中含有活動(dòng)事務(wù),利用此方法就不能恢復(fù)數(shù)據(jù)庫。

2. 含活動(dòng)事務(wù)的日志恢復(fù)

含有活動(dòng)事務(wù)的日志丟失時(shí),利用上述方法就會(huì)出現(xiàn)"數(shù)據(jù)庫和SQLServer日志文件不符合,不能附加數(shù)據(jù)庫"。對于這種情況下,我們采用如下方法:

①新建同名數(shù)據(jù)庫AAA,并設(shè)它為緊急模式

停止SQL Server服務(wù)器;

把數(shù)據(jù)庫主數(shù)據(jù)MDF文件移走;

啟SQL Server服務(wù)器,新建一個(gè)同名的數(shù)據(jù)庫AAA;

停止SQL Server服務(wù)器,把移走的MDF文件再覆蓋回來;

啟動(dòng)SQL Server服務(wù)器,把AAA設(shè)為緊急模式,不過默認(rèn)情況下,系統(tǒng)表是不能隨便修改的,必須首先設(shè)置一下使其能被修改,運(yùn)行以下語句即可:

  1. Use Master  
  2. Go  
  3. sp_configure ’allow updates’,1  
  4. reconfigure with override  
  5. Go 

接著運(yùn)行以下語句,把AAA數(shù)據(jù)庫設(shè)為緊急模式,即把Sysdatabases表中AAA數(shù)據(jù)庫的status屬性設(shè)為’37268’,就表示把AAA數(shù)據(jù)庫處于緊急模式。

  1. update sysdatabases set status=32768 where hame=’AAA’ 

如果沒有報(bào)告什么錯(cuò)誤,就可以進(jìn)行以下操作。

②設(shè)置SQLServer日志文件AAA為單用戶模式,并檢查數(shù)據(jù)庫

重啟SQL Server服務(wù)器;

把數(shù)據(jù)庫AAA設(shè)為單用戶模式

  1. Sp_dboption ’AAA’, ’single user’, ’true’ 

運(yùn)行以下語句,檢查數(shù)據(jù)庫AAA

 

  1. DBCC CHECKDB(’AAA’) 

如果沒有什么大的問題就可以把數(shù)據(jù)庫的狀態(tài)改回去。

③還原數(shù)據(jù)庫的狀態(tài)

運(yùn)行以下語句,就可以把數(shù)據(jù)庫的狀態(tài)還原:

  1. update sysdatabases set status=28 where name=’AAA’  
  2. sp_configure ’allow updates’,0  
  3. reconfigure with override  
  4. Go 

如果沒有什么大的問題,刷新一下數(shù)據(jù)庫,數(shù)據(jù)庫AAA又會(huì)出現(xiàn)在你面前,但目前恢復(fù)工作還沒有做完,此時(shí)的數(shù)據(jù)庫仍不能工作,還要進(jìn)行下面的處理,才能真正恢復(fù)。

④利用DTS的導(dǎo)入導(dǎo)出向?qū)?,把?shù)據(jù)庫AAA導(dǎo)入到一個(gè)新建數(shù)據(jù)庫BBB中

新建一個(gè)數(shù)據(jù)庫BBB;

右擊BBB,選擇IMPORT功能,打開導(dǎo)入向?qū)В?/p>

目標(biāo)源選擇"在SQL Server數(shù)據(jù)庫之間復(fù)制對象和數(shù)據(jù)庫",這樣可以把表結(jié)構(gòu),數(shù)據(jù)視圖和存儲(chǔ)過程導(dǎo)入到BBB中

再用此功能把BBB庫替換成原來的AAA庫即可。

到此為止,數(shù)據(jù)庫AAA就完全恢復(fù)。

三、 小結(jié)

SQLServer日志文件丟失是一件非常危險(xiǎn)的事情,很有可能你的數(shù)據(jù)庫徹底毀壞。SQL Server數(shù)據(jù)庫的恢復(fù)都是靠日志文件來完成,所以無論如何都要保證日志文件的存在,它至關(guān)重要。為了使我們的數(shù)據(jù)庫萬無一失,最好采用多種備份方式相結(jié)合,所以我們要從心里重視數(shù)據(jù)庫的管理與維護(hù)工作。

【編輯推薦】

  1. SQL Server 索引底層實(shí)現(xiàn)的注意事項(xiàng)
  2. SQL Server索引選擇的引用與建議
  3. SQL Server評價(jià)索引之有效性
  4. 關(guān)于SQL Server索引密度的知識
  5. 用SQL Server索引密度對行數(shù)進(jìn)行評估
責(zé)任編輯:佚名 來源: 賽迪網(wǎng)
相關(guān)推薦

2010-06-09 13:13:03

MySQL數(shù)據(jù)維護(hù)

2016-08-24 16:14:17

VDI災(zāi)難恢復(fù)

2010-06-18 13:25:01

SQL Server查

2011-05-24 10:26:12

Oracle數(shù)據(jù)庫日志文件

2010-07-08 10:14:57

SQLServer日志

2010-10-08 10:03:16

2010-05-25 11:33:27

MySQL亂碼

2019-03-11 16:24:04

虛擬機(jī)JVMJava

2011-03-23 09:31:26

歸檔日志文件數(shù)據(jù)庫恢復(fù)

2009-07-29 08:55:19

XP升級Windows 7升級

2010-05-19 16:05:15

MySQL運(yùn)行報(bào)告

2010-05-18 16:41:25

MySQL 修改

2010-06-09 15:15:34

MySQL定時(shí)執(zhí)行

2010-04-12 10:28:46

2010-08-12 15:06:41

DB2根據(jù)日志

2010-06-30 10:55:13

SQL Server日

2010-04-19 15:53:20

Oracle重做日志

2010-10-09 16:27:10

2010-05-25 14:17:17

MySQL Pytho

2010-07-22 13:31:53

點(diǎn)贊
收藏

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