資料庫文件修復
㈠ 資料庫如何修復
可能有文件缺失或損壞,可以停掉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 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就可以了。
㈢ SQL 2000 資料庫備份文件損壞如何修復
如果你的備份文件損壞了,那就不能恢復這個備份了,如果是你的資料庫文件.MDF損壞了,那你可以把原來的資料庫分離了,把資料庫文件先考到別的目錄下,然後在企業管理器里新建立個資料庫和原來的名字一樣的,文件位置也放到原來的位置,建立完這個資料庫以後再恢復資料庫,在選項里,把強制還原資料庫選上,然後確認恢復,應該就可以了
㈣ 資料庫損壞怎麼修復
access提供了壓縮和修復資料庫功能,可嘗試用該功能修復,以access2010為例方法如下:
1、啟動access2010,點擊資料庫工具選項卡--壓縮和修復資料庫命令;
2、瀏覽窗口選定要修復的資料庫,點擊打開;
3、輸入修復後資料庫的名稱,點擊保存;
4、打開修復後的資料庫,查看修復效果。
㈤ SQL資料庫文件損壞,怎麼修復
如果只是BLACK.LST丟失或損壞應該可以進行更新來修復,因為更新的時候一部分就是在更新此文件...如果無法更新,無須完全卸載,直接重新裝下,覆蓋下即可
㈥ 如何修復資料庫
資料庫修復指的是通過技術手段將損壞的資料庫文件修復至可正常使用的資料庫文件的過程。
天晴數據之家最擅長 Oracle 和 SQL Server 資料庫的恢復,主要包括以下資料庫修復技術
SQL Server 修復
如完全丟失資料庫mdf文件,用一般數據恢復方式不能恢復
資料庫中表被刪除,甚至被重寫數據,或記錄刪除又無log日誌文件
索引錯誤,或者IAM斷裂,以及各種錯誤提示如823錯誤、系統表出錯
資料庫大面損壞,可以指定任意表提取其數據。
㈦ 怎麼修復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='要恢復的資料庫名稱'
㈧ 資料庫損壞.怎麼修復
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)刪除。
㈨ 怎樣修復已經損壞的SQL資料庫
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。
前者使用起來比較簡便。推薦使用。
1、check table 和 repair table 登陸mysql 終端: mysql -uxxxxx -p dbname check table tabTest;
如果出現的結果說Status是OK,則不用修復,如果有Error,可以用: repair table tabTest; 進行修復,修復之後可以在用check table命令來進行檢查。
在新版本的phpMyAdmin裡面也可以使用check/repair的功能。
2. myisamchk, isamchk 其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。
這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這里以myisamchk為例子進行說明。
當發現某個數據表出現問題時可以使用: myisamchk tablename.MYI 進行檢測,如果需要修復的話,可以使用: myisamchk -of tablename.MYI 關於myisamchk的詳細參數說明,可以參見它的使用幫助。
需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。
2、另外可以把下面的命令放在你的rc.local裡面啟動MySQL伺服器前: [ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI 。
其中的/tmp/mysql.sock是MySQL監聽的Sock文件位置,對於使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對於使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL資料庫存放的位置。
需要注意的是,如果你打算把這條命令放在你的rc.local裡面,必須確認在執行這條指令時MySQL伺服器必須沒有啟動!
最後檢測修復所有資料庫(表)。