1.停止SQL Server的服務,備份SQL Server安裝目錄下的\data子目錄
下故障資料庫的兩個文件,一個數據文件hbposv6_branch_data.mdf,
一個hbposv6_branch_log.ldf(也有可能非此命名),同時查看磁碟
空間是否有足夠的空間;
2.啟動SQL Server服務(如已停止),創建一個新的資料庫,命名為
原來資料庫的名字。
3.停止SQL Server
4.把老資料庫的MDF文件(hbposv6_branch_data.mdf)替換
新資料庫的相應的MDF文件,
並把LDF文件(hbposv6_branch_log.ldg)刪除。
5.重新啟動SQL Server服務,然後運行如下命令:
Use Master
go
sp_configure 'allow updates', 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'hbposv6_branch'
--Verify one row is updated before committing
commit tran
go
6.停止SQL然後重新啟動SQL Server服務,然後運行如下命令
(更換日誌文件路徑地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('hbposv6_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf')
--在這里,請輸入你的資料庫的路徑
go
7.停止SQL然後重新啟動SQL Server服務,然後運行:
use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go
sp_configure 'allow updates', 0
reconfigure with override
go
8.運行dbcc checkdb(db_name) 檢查資料庫的完整性
9.修復數庫
--請在查詢分析器中執行下列語句.執行前斷開其它
所有資料庫連接,最好是斷開網線
--如果不是該資料庫名,請將資料庫
--hbposv6_branch
--改為要修復的資料庫
USE master
Go
--單用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--資料庫檢查
DBCC CHECKDB ('hbposv6_branch')
Go
--如果返回結果出現了紅色的提示文字,說明資料庫中存在錯誤,需要修復
--資料庫修復
DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
Go
--再次資料庫檢查,如果返回結果中沒有了紅色的提示文字,
說明修復成功;
DBCC CHECKDB ('hbposv6_branch')
Go
--否則意味著還需要更高級別的修復;嘗試將上面修復語句的
'repair_rebuild'換為'repair_allow_data_loss'再試,
之後再次檢查資料庫。
--如果還有錯誤未修復,請把這些信息以文字的方式發給我們
--退出前請一定要執行以下語句返回到多用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
go
註:都要把 dbname 替換成真實的資料庫名字。
B. 如何修復sql資料庫數據不一致
修復sql2000資料庫置疑在實際的操作中由於突然斷電或者突然斷網造成資料庫置疑(在企業管理器中資料庫後面出現置疑兩個字),下面我們通過以下方法來進行修復置疑的資料庫。A.我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQLServerEnterpriseManager裡面建立。B.停掉資料庫伺服器。C.將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf。D.啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。E.設置資料庫允許直接操作系統表。此操作可以在SQLServerEnterpriseManager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。usemastergosp_configure'allowupdates',1goreconfigurewithoverridegoF.設置test為緊急修復模式updatesysdatabasessetstatus=-32768wheredbid=DB_ID('test')此時可以在SQLServerEnterpriseManager裡面看到該資料庫處於「只讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表G.下面執行真正的恢復操作,重建資料庫日誌文件dbccrebuild_log('test','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\test_log.ldf')執行過程中,如果遇到下列提示信息:伺服器:消息5030,級別16,狀態1,行1未能排它地鎖定資料庫以執行該操作。DBCC執行完畢。如果DBCC輸出了錯誤信息,請與系統管理員聯系。說明您的其他程序正在使用該資料庫,如果剛才您在F步驟中使用SQLServerEnterpriseManager打開了test庫的系統表,那麼退出SQLServerEnterpriseManager就可以了。正確執行完成的提示應該類似於:警告:資料庫'test'的日誌已重建。已失去事務的一致性。應運行DBCCCHECKDB以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。DBCC執行完畢。如果DBCC輸出了錯誤信息,請與系統管理員聯系。此時打開在SQLServerEnterpriseManager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。H.驗證資料庫一致性(可省略)dbcccheckdb('test')一般執行結果如下:CHECKDB發現了0個分配錯誤和0個一致性錯誤(在資料庫'test'中)。DBCC執行完畢。如果DBCC輸出了錯誤信息,請與系統管理員聯系。I.設置資料庫為正常狀態sp_dboption'test','dbouseonly','false'如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。J.最後一步,我們要將步驟E中設置的「允許對系統目錄直接修改」一項恢復。因為平時直接操作系統表是一件比較危險的事情。當然,我們可以在SQLServerEnterpriseManager裡面恢復,也可以使用如下語句完成sp_configure'allowupdates',0goreconfigurewithoverridego
C. 什麼方法可以修復SQL server資料庫
SQL Server 2000資料庫LDF損壞,只有mdf的恢復方法。
SQL Server 2000資料庫文件遭到破壞的現象經常出現,資料庫出錯是否可以修復呢?答案是可以的,本日誌以一個sql server 2000資料庫,資料庫日誌文件ldf損壞了,mdf正常,資料庫附加失敗的修復方法總結一下,資料庫數據恢復在很多時候比較復雜,當資料庫存在大量錯誤的時候,使用DBCC修復也是不可以的,需要拆解資料庫來搶救重要的數據,下面是較為常見的一種SQL Server 2000資料庫修復方式:
1) 先及時把原來的資料庫文件(如test.mdf)備份到其他地方。
2) 停掉伺服器。
3) 刪除這個test.mdf。
4) 重新建立一個test同名資料庫。
5) 刪除這個新建立的test資料庫的test.ldf文件,並用開始備份好test.mdf文件覆蓋這個新建立的test.mdf文件。
6) 啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。
.設置資料庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」。
7) 設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於「只讀\置疑\離線\緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表
8) 下面執行真正的恢復操作,重建資料庫日誌文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
執行過程中,如果遇到下列提示信息:
伺服器: 消息 5030,級別 16,狀態 1,行 1
未能排它地鎖定資料庫以執行該操作。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
說明您的其他程序正在使用該資料庫,如果剛才您在操作中使用SQL Server Enterprise Manager打開了test庫的系統表,那麼退出SQL Server Enterprise Manager就可以了。
正確執行完成的提示應該類似於:
警告: 資料庫 'test' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。
9) 驗證資料庫一致性
dbcc checkdb('test')
10.設置資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。
11)最後一步,我們要將步驟6中設置的「允許對系統目錄直接修改」一項恢復;
D. 日誌文件丟失或出錯的情況下如何恢復SQL資料庫
1. 新建資料庫(同名)
2. 停掉資料庫
3. 刪除新建資料庫的日誌文件,用要恢復的覆蓋mdf文件
4. 啟動資料庫伺服器
5. 設置資料庫允許直接操作系統表
6. 設置資料庫為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('dbDataHome')
7. 重建資料庫日誌文件
dbcc rebuild_log('dbDataHome','D:\Data\dbData_Data.LDF')
8. 驗證資料庫一致性(可省略)
dbcc checkdb('dbDataHome')
9.設置資料庫為正常狀態
exec sp_dboption 'dbDataHome','dbo use only','false'
10. 最後一步,我們要將步驟E中設置的「允許對系統目錄直接修改」一項恢復。
E. 如何恢復和修復MS SQL資料庫的MDF文件[2]
怎麼辦呢?別著急 下面我們舉例說明恢復辦法
A 我們使用默認方式建立一個供恢復使用的資料庫(如test) 可以在SQL Server Enterprise Manager裡面建立
B 停掉資料庫伺服器
C 將剛才生成的數悶談仿據庫的日誌文件test_log ldf刪除 用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data mdf
D 啟動資料庫伺服器 此時會看到資料庫test的狀態為 置疑 這時候不能對此資料庫進行任何操作
E 設置資料庫允許直接
操作系統表 此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器 按右鍵 選擇 屬性 在 伺服器設置 頁面中將螞纖 允許對系統目錄直接修改 一項選中 也可以使用如下語句來實現
以下是引用片段 usemaster go sp_configure allowupdates go reconfigurewithoverride go
F 設置test為緊急修復模式
update sysdatabases set status= where dbid=DB_ID( test )
此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於 只讀置疑離線緊急模式 可以看到資料庫裡面的表 但是僅僅有系統表
G 下面執行真正的恢復操作 重建資料庫日誌文件
dbcc rebuild_log( test C:Program FilesMicrosoft SQL ServerMSSQLData est_log ldf )
執行過程中 如果遇到下列提示信息
伺服器: 消息 級別 狀態 行
未能排它地鎖定資料庫以執行該操作
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
說明您的其他程序正在使用該資料庫 如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的系統表 那麼退出SQL Server Enterprise Manager就可以了
正確執行完成的提示應該類似於
警告: 資料庫 test 的日誌已重建 已失去事務的一致性 應運行 DBCC CHECKDB 以驗證物理一致性 將必須重置資料庫選項 並且可能需要刪除多餘的日誌文件
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為 只供DBO使用 此時可以訪問資料庫裡面的用戶表了
H 驗證資料庫一致性(可省略)
dbcc checkdb( test )
一般執行結果如下
CHECKDB 發現了 個分配錯誤和 個一致性錯誤(在資料庫 test 中)
DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系
I 設置資料庫為正常狀態
sp_dboption test dbo use only false
侍拍如果沒有出錯 那麼恭喜 現在就可以正常的使用恢復後的資料庫啦
J 最後一步 我們要將步驟E中設置的 允許對系統目錄直接修改 一項恢復 因為平時直接操作系統表是一件比較危險的事情 當然 我們可以在SQL Server Enterprise Manager裡面恢復 也可以使用如下語句完成
以下是引用片段 sp_configure allowupdates go reconfigurewithoverride go
lishixin/Article/program/SQL/201311/16354
F. 如何修復SQL資料庫置疑
步驟如下:遲信告
停止SQL服務管理器,將原數據文件拷貝進行備份,然後將原資料庫刪除;啟動SQLServer服務,創建一個新的資料庫,命名為原來資料庫的名字;停止SQLServer服務,用備份出來的老資料庫的MDF文件替換新資料庫相應的MDF文件,並把新資料庫相應的LDF文件碼明刪除;重新啟動SQLServer服務,然後運行命令;停止SQL然後重新啟動SQLServer服務,然後運行命令坦鍵;運行hbfsv8檢查資料庫的完整性;進行資料庫修復;修復成功後,返回多用戶模式。
G. SQL資料庫文件損壞,怎麼修復
如果只是BLACK.LST丟失或損壞應該可以進行更新來修復,因為更新的時候一部分就是在更新此文件...如果無法更新,無須完全卸載,直接重新裝下,覆蓋下即可
H. 怎麼修復sql2005資料庫
sql2005資料庫修復方法如下:
1、停止資料庫服務。
2、將需要恢復的資料庫文件復制到另外的位置。
3、啟動資料庫服務。
4、確認要恢復的資料庫文件已經成功復制到另外的位置,然後在SQL
Server
Management
Studio中刪除要恢復的資料庫。
5、新建同名的資料庫(資料庫文件名也要相同)。
6、停止資料庫服務。
7、用第2步中備份的.mdf文件覆蓋新資料庫的同名文件。
8、啟動資料庫服務。
9、運行alter
database
dbname
set
emergency,將資料庫設置為emergency
mode
10、運行下面的命令就可以恢復資料庫:Titleuse
masterdeclare
@databasename
varchar(255)
set
@databasename='要恢復的資料庫名稱'
I. SQL資料庫如何還原
把資料庫的備份文件放到伺服器的任意目錄下先, 然後按下面的步驟做。
如何從備份設備還原備份(企業管理器) ,從備份設備配廳銷還原備份 。
展開伺服器組,然後展開伺服器。
展開"資料庫"文件夾,右擊資料庫,指向"所有任務"子菜單,然後單擊"還原資料庫"命令。
在"還原為資料庫"框中,如果要還原的資料庫名稱與顯示的默認資料庫名稱不同,請在其中進行輸入或選擇。
若要用新名稱還原資料庫,請輸入新的資料庫名稱。
說明 為數培游據庫指定新名稱將自動為從資料庫備份中還原的資料庫文件指定新名稱。
單擊"從設備",然後單擊"選擇設備"。
在"還原自"下,單擊"磁帶"或"磁碟",然後選擇還原設備。
如果沒有出現設備,則單擊"添加"以添加現有的備份設備或創建新的備份設備。
在"還原資料庫"對話框內,單擊"查看內容"並選擇要還原的備份集。
說明 此選項將掃描備份集以獲得備份內容信息,該操作可能需要花費較長時間,特別是在使用磁帶設備時。
如果已經知道要還原的備份集,則在"備份號"中輸入備份集編號。
在"還原備伏大份集"下執行下列操作之一: 單擊"資料庫 — 完全"還原資料庫備份。
單擊"資料庫 — 差異"還原差異資料庫備份。
單擊"事務日誌"應用事務日誌備份。