Ⅰ 資料庫損壞了怎麼辦
有的時候因為掉電或者其他原因導致資料庫損壞,我們可以使用mysql自帶的mysqlcheck命令來快速修復所有的資料庫或者特定的資料庫;例如
檢查優化並修復所有的資料庫用:
# mysqlcheck -A -o -r -p
Enter password:
database1 OK
database2 OK
----------
修復指定的資料庫用
# mysqlcheck -A -o -r Database_NAME -p
即可
另外如果只是對某個表進行修復可以用:myisamchk或isamchk
其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這里以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用:
myisamchk tablename.MYI
進行檢測,如果需要修復的話,可以使用:
myisamchk -of tablename.MYI
關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。
另外可以把下面的命令放在你的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資料庫存放的位置。
1,簡單的修復模式
myisamchk -r -q path/資料庫/壞表.MYI
注:-r ----恢復模式 -q ----快速修復
2,使用安全修復模式
myisamchk --safe-recover path/資料庫/壞表.MYI
3,困難的修復模式
如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創建一個新的索引文件是必要的。按如下這樣做:
把數據文件移更安全的地方。
使用表描述文件創建新的(空)數據和索引文件:
shell> mysql db_name
mysql> Delete FROM tbl_name;
mysql> quit
將老的數據文件拷貝到新創建的數據文件之中。(不要只是將老文件移回新文件之中;你要保留一個副本以防某些東西出錯。)
回到階段2。現在myisamchk -r -q應該工作了。(這不應該是一個無限循環)。
4,非常困難的修復模式
只有描述文件也破壞了,你才應該到達這個階段。這應該從未發生過,因為在表被創建以後,描述文件就不再改變了。
從一個備份恢復描述文件並且回到階段3。你也可以恢復索引文件並且回到階段2。對後者,你應該用myisamchk -r啟動。
如果你沒有一個備份但是確切地知道表是怎樣被創建的,在另一個資料庫中創建表的一個拷貝。刪除新的數據文件,然後從其他資料庫將描述和索引文件移到破壞的資料庫中。這給了你新的描述和索引文件,但是讓數據文件獨自留下來了。回到階段2並且嘗試重建索引文件。
5,優化表結構
myisamchk -r 表
也可以使用sql語句來優化OPTIMIZE TABLE
本方法參考自mouse博客
Ⅱ 資料庫被刪除了怎麼恢復
恢復步驟:
1、運行EasyRecovery。
2、選擇「DeletedRecovery」。
3、選擇資料庫文件所在的驅動器,在「File Filter」中輸入*.mdf|*.ldf,選擇「Next」。
4、在左側窗口會列出被刪除的資料庫文件,選擇所要恢復的資料庫文件,選擇「Next」。
5、在「Recover to Local Drive」中選擇恢復後的文件存放的路徑,要選擇與原資料庫文件不同的路徑,選擇「Next」。
6、文件被恢復後,將恢復的文件復制到原資料庫文件位置,並在企業管理器通過附加資料庫,將恢復的文件恢復到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就可以了。
Ⅳ 資料庫損壞怎麼修復
access提供了壓縮和修復資料庫功能,可嘗試用該功能修復,以access2010為例方法如下:
1、啟動access2010,點擊資料庫工具選項卡--壓縮和修復資料庫命令;
2、瀏覽窗口選定要修復的資料庫,點擊打開;
3、輸入修復後資料庫的名稱,點擊保存;
4、打開修復後的資料庫,查看修復效果。
Ⅳ 電腦上資料庫壞了該如何恢復正常
如果沒有主資料庫,您就無法成功地啟動SQL Server。在本文里,我將向您介紹在發生崩潰的情況下如何修復主資料庫,並告訴您如何重建主資料庫,如果有必要的話。
制定預案
制定一個應對崩潰和/或主資料庫故障的預案十分重要。這將有助於您在碰到災難的情況下按照既定的方法進行處理,而不是迫於壓力倉促作出反應。我碰到過很多很容易就陷入驚慌的狀況,但是由於保持冷靜並按照正確的方法來處理問題,我最後成功地度過了所有的困境。
怎麼才能知道您的主資料庫已經崩潰?
在正式開始討論碰到系統故障如何修復和重建的主資料庫之前,我們需要先了解如何辨別它已經崩潰了。要說明這一點,我會弄垮一個主資料庫,告訴您主資料庫崩潰會發生什麼樣的症狀。
現在讓我們假設您的公司碰到了電涌,造成SQL Server重啟。在重新啟動的時候,SQL Server卻沒有正常啟動。如果查看錯誤日誌,您會看到主資料庫崩潰或者丟失。既然您知道需要查看什麼信息,那就讓我們看看如何修復主資料庫。
修復您的主資料庫
修復主資料庫的第一步是使用「重建向導(Rebuild Wizard,Rebuildm.exe),它放在\Program Files\Microsoft SQL Server\80\Tools\BINN目錄下。現在就讓我們來看看重建向導是如何工作的。
雙擊Rebuildm.exe啟動對話框。
在這個對話框里,您可以指定資料庫伺服器的修復設置,以及原始安裝的數據文件的位置。要讓這一過程更容易和更快,就要把x86目錄從SQL的光碟上復制到硬碟上,並把指向改到本地的副本。一旦驗證完了所有的信息,點擊「重建(Rebuild)」。然後系統就會提示您確認操作
點擊「確定(Yes)」。一旦重建過程完成,您會看到一條重建成功的消息。您現在就有了一個全新的主資料庫,准備好修復主資料庫了。
首先,打開命令行提示符,輸入\Program Files\Microsoft SQL Server\MSSQL\BINN\目錄下的sqlservr.exe –c –m命令,啟動單用戶模式下的SQL Server。
在單用戶模式下啟動SQL Server之後,您可以利用備份文件修復主資料庫。您可以用「查詢分析器(Query Analyzer)」或者「SQL企業管理器(SQL Enterprise Manager)」來修復它。
如果使用企業伺服器,就要右擊主資料庫,選擇「所有任務|修復資料庫(All Tasks | Restore Database)」,瀏覽到您設備所在的位置,點擊兩次「OK」,您就可以成功地修復主資料庫了。
如果由於某種原因您的修復操作無法成功完成,那麼您可以試試別的方法。只用簡單地重建主資料庫並添加駐留在數據目錄下的所有資料庫就可以了。您可以用企業管理器或者查詢分析器來添加資料庫。在企業管理器里,右擊「資料庫(Databases)」,選擇「添加資料庫(Attach Database)」
Ⅵ SQL資料庫文件損壞,怎麼修復
如果只是BLACK.LST丟失或損壞應該可以進行更新來修復,因為更新的時候一部分就是在更新此文件...如果無法更新,無須完全卸載,直接重新裝下,覆蓋下即可
Ⅶ 怎麼修復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='要恢復的資料庫名稱'
Ⅷ 如何修復MySQL資料庫
簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行,就可回復原來的數據。
復雜情況下:
從另一台機上把MySQL資料庫的mysql文件夾拷貝到本地機上,目的是恢復本地機對數據的訪問和操作。經過如下幾種情況的操作。
1. 在本地重裝MySQL(安裝目錄D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夾拷貝至D:\Program Files\MySQL\MySQL Server 5.0\。結果,失敗:資料庫連接錯誤。
2. 卸載後重裝MySQL,將D:\Program Files\MySQL\MySQL Server 5.0\下的數據備份,只把mysql\data文件夾全部內容拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data下。結果,失敗:資料庫連接錯誤。將備份的數據還完覆蓋。結果,失敗,還是連接不上資料庫。
3. 卸載後重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的資料庫)拷貝進D:\Program Files\MySQL\MySQL Server 5.0\data。連接成功,在Navicat for MySQL里看到資料庫cf1和last,但是不能訪問,因為數據全為零。明白了原來data里以資料庫命名的文件存儲的是資料庫的表結構,不是元數據。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數據)拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat for MySQL,連接成功,數據可以訪問操作。
至此,操作終於成功。其實當初在那台機上把數據導出來,而不是現在直接把文件夾mysql復制過來會更容易恢復。但那台機已經重裝了系統,也就是說MySQL失效了。
Ⅸ 資料庫如何修復
可能有文件缺失或損壞,可以停掉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資料庫內數據是否正常,是的話換回原資料庫即可。
Ⅹ 資料庫文件損壞能修復嗎有什麼辦法可以恢復資料庫的數據
在軟體根目錄里找一下自動備份的數據
如果有的話重裝資料庫
重建賬套
恢復自動備份的數據
如果沒有自動備份的數據
找根目錄data文件夾里的後綴為mdf和ldf的數據在不在
在的話
找用友的技術人員幫你在資料庫里恢復吧
如果自動備份的數據也沒有
資料庫文件也沒有
那麼只有找專業恢復數據的公司看看能不能幫你恢復得過來了