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. access資料庫被破壞,如何修復
我就遇到過你的這種情況我在網上找了 N 久,如果沒有備份的話就歇菜了。
希望你有備份的,下面的方法對你大概沒什麼作用了
被攻擊後的資料庫(asa或asp格式的)就算你把網站里的毒殺了後
把格式再改回來也沒有用了
網上真的不安全啊
修復ACCESS資料庫的幾種常見方法:
技術支持部在日常工作中經常會碰到因非正常退出、網路不穩定或病毒等原因造成的Access資料庫損壞。損壞了的Access資料庫會造成軟體運行不穩定,出現各種運行錯誤,為解決這類問題就必須對Access資料庫進行修復。
修復Access資料庫,我們一般使用微軟Office 97中帶的Access 97對資料庫進行修復和整理。Access資料庫被損壞分以下幾種情況:1、嚴重損壞;2、輕度損壞;3、有些表被損壞或有些表的部分記錄被損壞。下面就分情況介紹解決辦法。
1、使用Access97打不開資料庫、系統提示"不可識別的資料庫格式"或"不是該表的索引"等信息,這樣的資料庫都是損壞比較嚴重的。損害嚴重的資料庫一般來說都是無法修復的,只有恢復備份了,好在這種情況比較少見。
2、如果資料庫損壞的不嚴重,只需要使用Access 97菜單上的「修復資料庫」和「壓縮資料庫」就可以把資料庫修復好。因為資料庫輕微損壞的時候,一般也不會導致軟體出什麼問題,所以也不會引起人的注意,只有當資料庫的某一個或幾個表損壞了的時候,才會使軟體變得不穩定,所以這種情況才是我們最常遇到的。
3、如何確定資料庫中哪幾個表有問題呢,我們首先利用Access 97建立一個空資料庫,利用系統提供的「引入資料庫」功能,選擇目標資料庫所有的表進行引入,Access 97當引入到有問題的表時系統會提示一些錯誤信息,把這個表的名字記下來以備以後修復時使用。
接下來利用Access97打開有問題的資料庫,准備修復表。修復損壞的表的方法依照表損壞程度不同而不同,下面分情況介紹處理的辦法:
一、表損壞的非常嚴重,表現為無法打開表,系統提示「Microsoft jet 找不到對象」、「沒有讀寫許可權」或「不可識別」等信息。
處理方法:這種表的已經損壞得非常嚴重了,一般無法修復。如果這個表不很重要或通常情況下表的內容為空的話,例如「常用憑證表」、「科目共享鎖定表」或「憑證共享鎖定表」,我們可以通過引入的方法把其他資料庫的表引入,然後把有問題的表刪除即可。
二、表中有幾行內容非常混亂或欄位內標有「#已刪除」字樣,但當要刪除這些記錄時就會出現錯誤信息不許刪除。
處理辦法:既然不讓刪除這些記錄,我們可以通過使用SQL語句把沒有問題的記錄復制到一個新的表中,然後把老表刪除把新表的名字改過來即可。例如「憑證及明細賬表GL_ACCVOUCH」中有錯誤記錄有無法刪除,我們可以使用如下SQL語句把好的記錄復制到GL_ACCTEMP中:
SELECT GL_ACCVOUCH.* INTO GL_ACCTEMP
FROM GL_ACCVOUCH WHERE {篩選的條件}
然後刪除表GL_ACCVOUCH,再把表GL_ACCTEMP的名字改為GL_ACCVOUCH即可解決問題。
修復ACCESS資料庫的注意事項,首先,我們在修復資料庫前一定要做好備份,以防數據丟失或損壞;有一些資料庫中有RELATION(關系)來維護數據的一致性,但當資料庫異常後相關表的RELATION也就丟失了,在修復好資料庫後一定要把RELATION再聯好,有些軟體可以自動修復RELATION,比如用友公司的ERP8.XX系列產品的資料庫可以通過把表accinformation中的[cSysid]='AA' and [項目號]='99'的記錄,把[設置值]和[預設值]改為'8.0A0',重新進入系統時,系統會自動升級並重建索引。
C. 資料庫如何修復
可能有文件缺失或損壞,可以停掉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資料庫內數據是否正常,是的話換回原資料庫即可。
D. 資料庫被刪除了怎麼恢復
恢復步驟:
1、運行EasyRecovery。
2、選擇「DeletedRecovery」。
3、選擇資料庫文件所在的驅動器,在「File Filter」中輸入*.mdf|*.ldf,選擇「Next」。
4、在左側窗口會列出被刪除的資料庫文件,選擇所要恢復的資料庫文件,選擇「Next」。
5、在「Recover to Local Drive」中選擇恢復後的文件存放的路徑,要選擇與原資料庫文件不同的路徑,選擇「Next」。
6、文件被恢復後,將恢復的文件復制到原資料庫文件位置,並在企業管理器通過附加資料庫,將恢復的文件恢復到SQL Server中。
註:如果刪除的資料庫文件所有的存儲區域被寫過了,就無法恢復了,所以刪除與恢復的時間間隔越短越好。
E. 資料庫文件存在異常,請修復 怎麼弄
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就可以了。