程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server無日記恢單數據庫(2種辦法)

SQL Server無日記恢單數據庫(2種辦法)

編輯:MSSQL

SQL Server無日記恢單數據庫(2種辦法)。本站提示廣大學習愛好者:(SQL Server無日記恢單數據庫(2種辦法))文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server無日記恢單數據庫(2種辦法)正文


SQL Server是一個關系數據庫治理體系,運用很普遍,在停止SQL Server數據庫操作的進程中不免會湧現誤刪或許其余緣由惹起的日記破壞,又因為SQL Server數據庫中數據的主要性,湧現了以上的毛病以後就必需對數據庫中數據停止恢復。下文就為年夜家引見一種恢單數據庫日記文件的辦法。

處理辦法一

1.新建一個同名的數據庫

2.再停失落sql server(留意不要分別數據庫)

3.用原數據庫的數據文件籠罩失落這個新建的數據庫

4.再重啟sql server

5.此時翻開企業治理器時會湧現置疑,先不論,履行上面的語句(留意修正個中的數據庫名)

6.完成後普通便可以拜訪數據庫中的數據了,這時候,數據庫自己普通還要成績,處理方法是,應用

數據庫的劇本創立一個新的數據庫,並將數據導出來就好了.

USE MASTER

GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE

GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的數據庫名'

Go

sp_dboption '置疑的數據庫名', 'single user', 'true'

Go

DBCC CHECKDB('置疑的數據庫名')

Go

update sysdatabases set status =28 where name='置疑的數據庫名'

Go

sp_configure 'allow updates', 0 reconfigure with override

Go

sp_dboption '置疑的數據庫名', 'single user', 'false'

Go

處理辦法二

沒有用果的恢復步調

附加數據庫

_Rambo講過被刪除日記文件中不存在運動日記時,可以這麼做來恢復:

1,分別被置疑的數據庫,可使用sp_detach_db

2,附加數據庫,可使用sp_attach_single_file_db

然則,很遺憾,履行以後,SQL Server質疑數據文件和日記文件不符,所以沒法附加數據庫數據文件。

DTS數據導出

不可,沒法讀取XXX數據庫,DTS Wizard申報說“初始化高低文產生毛病”。

緊迫形式

沒有日記用於恢復時,還可以這麼做:

1,把數據庫設置為emergency mode

2,從新樹立一個log文件

3,把SQL Server 從新啟動一下

4,把運用數據庫設置成單用戶形式

5,做DBCC CHECKDB

6,假如沒有甚麼年夜成績便可以把數據庫狀況改歸去了,記得別忘了把體系表的修正選項關失落

我理論了一下,把運用數據庫的數據文件移走,從新樹立一個同名的數據庫XXX,然後停失落SQL辦事,把本來的數據文件再籠罩回來。以後,依照怡紅令郎的步調走。

然則,也很遺憾,除第2步以外,其他步調履行異常勝利。惋惜,重啟SQL Server以後,這個運用數據庫依然是置疑!

不外,讓我欣喜的是,這麼做以後,卻是可以或許Select數據了,讓我年夜出一口吻。只不外,組件應用數據庫時,申報說:“產生毛病:-2147467259,未能在數據庫 'XXX' 中運轉 BEGIN TRANSACTION,由於該數據庫處於躲避恢復形式。”

終究勝利恢復的全體步調

設置數據庫為緊迫形式

停失落SQL Server辦事;

把運用數據庫的數據文件XXX_Data.mdf移走;

從新樹立一個同名的數據庫XXX;

停失落SQL辦事;

把本來的數據文件再籠罩回來;

運轉以下語句,把該數據庫設置為緊迫形式;

Use Master

Go

sp_configure 'allow updates', 1

reconfigure with override

Go

履行成果:

DBCC 履行終了。假如 DBCC 輸入了毛病信息,請與體系治理員接洽。

已將設置裝備擺設選項 'allow updates' 從 0 改成 1。請運轉 RECONFIGURE 語句以裝置。

接著運轉“update sysdatabases set status = 32768 where name = 'XXX'”

履行成果:

(所影響的行數為 1 行)

重啟SQL Server辦事;

運轉以下語句,把運用數據庫設置為Single User形式;

運轉“sp_dboption 'XXX', 'single user', 'true'”

履行成果:

敕令已勝利完成。

ü 做DBCC CHECKDB;

運轉“DBCC CHECKDB('XXX')”

履行成果:

'XXX' 的 DBCC 成果。

'sysobjects' 的 DBCC 成果。

對象 'sysobjects' 有 273 行,這些行位於 5 頁中。

'sysindexes' 的 DBCC 成果。

對象 'sysindexes' 有 202 行,這些行位於 7 頁中。

'syscolumns' 的 DBCC 成果。

………

ü 運轉以下語句把體系表的修正選項關失落;

運轉

“sp_resetstatus "XXX"

go

sp_configure 'allow updates', 0

reconfigure with override

Go”

履行成果:

在 sysdatabases 中更新數據庫 'XXX' 的條目之前,形式 = 0,狀況 = 28(狀況 suspect_bit = 0),沒有更新 sysdatabases 中的任何行,由於已准確地重置了形式和狀況。沒有毛病,未停止任何更改。

DBCC 履行終了。假如 DBCC 輸入了毛病信息,請與體系治理員接洽。

已將設置裝備擺設選項 'allow updates' 從 1 改成 0。請運轉 RECONFIGURE 語句以裝置。

從新樹立別的一個數據庫XXX.Lost;

DTS導出領導

運轉DTS導出領導;

復制源選擇EmergencyMode的數據庫XXX,導入到XXX.Lost;

選擇“在SQL Server數據庫之間復制對象和數據”,試了屢次,似乎不可,只是復制過去了一切表構造,然則沒稀有據,也沒有視圖和存儲進程,並且DTS領導最初申報復制掉敗;

所以最初選擇“從源數據庫復制表和視圖”,然則後來發明,如許老是只能復制一部門表記載;

因而選擇“用一條查詢指定要傳輸的數據”,缺哪一個表記載,就導哪一個;

視圖和存儲進程是履行SQL語句添加的。

保護Sql Server中表的索引

在應用和創立數據庫索引中常常會碰著一些成績,在這裡可以采取一些另類的辦法處理…

--第一步:檢查能否須要保護,檢查掃描密度/Scan Density能否為100%

declare @table_id int

set @table_id=object_id('表名')

dbcc showcontig(@table_id)

--第二步:重構表索引

dbcc dbreindex('表名',pk_索引名,100)

--重做第一步,如發明掃描密度/Scan Density照樣小於100%則重構表的一切索引

--其實不必定能達100%

dbcc dbreindex('表名','',100)

這就是我要為年夜家引見的SQL Server數據庫中日記文件的恢復辦法,願望對年夜家可以或許有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved