資料庫文件修復
⑴ 怎樣恢復損壞的SQL Server數據文件
1、確保備份下的master資料庫與要恢復的SQL SERVER的版本一致性。
⑵ 如何修復SQL資料庫,資料庫文件損壞!!!Help me!!!!
具體情況是這樣的,
電腦里的SQL目錄被人刪了,裡面的所有數據都同時被刪,我沒有備份,我用工具恢復了一個資料庫,但還有一個資料庫,顯示文件錯誤,也就是說在文件分配表中已錯誤了,我還是把它恢復過來,可在SQL里不能認該資料庫,另一個可以認,我想是這個資料庫的文件頭可能損壞了,不知有沒有這樣的軟體可以分析資料庫並修復它!!!
⑶ 資料庫文件損壞了,還可以恢復嗎
關於這個問題,要看損壞的是什麼文件,以ORACLE資料庫為例1控制文件,每個資料庫默認有三個控制文件內容一樣(比如CTRL01.DBF,CTRL02.DBF,CTRL03.DBF),損壞其中兩個,只需把好的那個拷貝成另外兩個的名稱即可。如果所有控制文件都壞了,需要啟動實例到nomount狀態重建控制文件,前提是之前最好做過;會得到一個重建控制文件的腳本2在線日誌(redolog),如果每個日誌組(group)的member(成員)不止一個,同一組內的在線日誌只要有一個完好,同樣可以通過拷貝方式(停止資料庫後)恢復。3TEMP表空間數據文件,可以理解為資料庫用的臨時文件,損壞後基本無數據損失,可以通過重建temp表空間恢復4.SYSTEM系統表空間,這個掛了基本上必須靠恢復了,前提是要有備份4.其它數據表空間4.1.有備份,可以恢復,但可能丟失數據4.2.未備份,無法恢復該表空間數據,可以選擇使該表空間離線(offline),恢復其它數據
⑷ 求問sqlserver2000資料庫文件損壞如何修復
SQL
Server2000安裝盤進行修復安裝,應該可以解決你的問題!
如還存在問題可以追問,當及時回答!
希望能幫到你!
很抱歉,回答者上傳的附件已失效
⑸ 資料庫如何修復
可能有文件缺失或損壞,可以停掉SQL Server服務,先將資料庫文件夾復制一份並安全存儲,對資料庫所在磁碟執行CHKDSK,排除磁碟錯誤,然後啟動SQL Server服務,嘗試修復資料庫:
1.在SQL Server Management Studio中隨便創建一個資料庫,例如:PVLink。
2.停止SQL Server服務。
如果不停止此服務,剛才創建的PVLink資料庫將即不能被拷貝,也不能被覆蓋。
3.把已經損壞的資料庫的mdf文件拷貝並覆蓋剛才新建的資料庫產生的mdf文件。
4.啟動SQL Server服務。
此時可以看見剛才創建的PVLink資料庫名字後面沒有加號,無法察看其任何信息,其實目前它已經處於無法使用的狀態。
5.把資料庫設置為緊急狀態。
通過在「查詢分析器」中執行:alter database PVLink set EMERGENCY 可以將資料庫設置為緊急狀態,此時資料庫PVLink的圖標改變成粉紅色並出現「緊急」字樣。
6.將資料庫設置為單用戶模式。
如果不設置為單用戶模式,我們將無法使用帶有效repair選項的DBCC CHECKDB來檢查/修復資料庫,SQL Server 2005設置單用戶模式比SQL Server 2000容易,只要在「查詢分析器」中執行:
use master
go
sp_dboption 'PVLink',single,true
7.修復資料庫
修復資料庫主要使用DBCC來操作,一般來講,我們可以使用以下三個選項來修復:
●REPAIR_ALLOW_ DATA_LOSS
嘗試修復報告的所有錯誤。這些修復可能會導致一些數據丟失。
●REPAIR_FAST
僅為保持向後兼容性而保留。
●REPAIR_REBUILD
執行由 REPAIR_FAST 執行的所有修復,包括需要較長時間的修復(如重建索引)。執行這些修復時不會有丟失數據的危險。
一般我們通過執行:DBCC CHECKDB('PVLink',REPAIR_REBUILD) 即可完成修復工作,此時 SQL Server 2005會給出很多提示,因為這個過程可能會導致一些資料庫設計或者數據的丟失,並且在這個過程中,會產生新的以ldf為擴展名的資料庫日誌文件。
8.完成以上的步驟後,一般情況下資料庫應該可用了,如果資料庫此時仍然是緊急狀態,可以通過:alter database PVLink set ONLINE ,把資料庫變成在線狀態。
檢查PVLink資料庫內數據是否正常,是的話換回原資料庫即可。
⑹ 怎樣修復已經損壞的SQL資料庫
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 替換成真實的資料庫名字。
⑺ 資料庫文件損壞能修復嗎有什麼辦法可以恢復資料庫的數據
在軟體根目錄里找一下自動備份的數據
如果有的話重裝資料庫
重建賬套
恢復自動備份的數據
如果沒有自動備份的數據
找根目錄data文件夾里的後綴為mdf和ldf的數據在不在
在的話
找用友的技術人員幫你在資料庫里恢復吧
如果自動備份的數據也沒有
資料庫文件也沒有
那麼只有找專業恢復數據的公司看看能不能幫你恢復得過來了
⑻ SQL資料庫文件損壞,怎麼修復
可以修復,從故障解析,資料庫損壞分為邏輯層損壞和物理層損壞。
1,邏輯損壞是指,文件本身完整,系統表在邏輯結構上混亂造成的錯誤。
2,物理損壞是指,文件由於不完整,導致置疑等故障
資料庫損壞,由斷電,非法關機,系統重啟,文件被誤刪除,誤ghost自己恢復出來的文件附加失敗,陣列崩潰等原因造成的。
邏輯層修復方法,網上有很多dbcc修復命令,可以區嘗試下、
物理層還是找專業人員吧!
⑼ 資料庫文件存在異常,請修復 怎麼弄
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就可以了。