資料庫修復表
A. 如何修復損壞的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',重新進入系統時,系統會自動升級並重建索引。
B. mysql資料庫表損壞如何修復呢
SQL腳本:check table 表名; check table 表名; 當然這是拋磚引玉,讓你知道怎開始。
具體恢復詳情歡迎留言追問,或者評論私信都可以。
C. 如何修復MySQL資料庫
1、mysqlcheck 進行表修復
使用mysqlcheck 命令對表進行修復
#mysqlcheck -uuser -ppassword database table -c #檢查單個表是否損壞
#mysqlcheck -uuser -ppassword database -c #檢查整個庫那些表損壞
首先檢查資料庫的那些表損壞,如果能定位到那張表損壞可以直接對表修復
#mysqlcheck -uuser -ppassword database table -r # 修復數據表
#mysqlcheck -uuser -ppassword database -r # 修復整個資料庫
更多參數 查看 mysqlcheck –help
2、myisamchk 修復mysql表
Myisamchk是MyISAM表維護的一個非常實用的工具。可以使用myisamchk實用程序來獲得有關資料庫表的信息或檢查、修復、優化他們。myisamchk適用MyISAM表(對應.MYI和.MYD文件的表)。
D. 資料庫如何修復
可能有文件缺失或損壞,可以停掉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資料庫內數據是否正常,是的話換回原資料庫即可。
E. 講解MySQL資料庫表如何修復
一張損壞的表的症狀通常是查詢意外中斷並且你能看到例如這些錯誤: ◆ 「tbl_name.frm」被鎖定不能改變。 ◆ 不能找到文件「tbl_name.MYI」(Errcode :### )。 ◆ 從表處理器的得到錯誤###(此時,錯誤135是一個例外)。 ◆ 意外的文件結束。 ◆ 記錄文件被毀壞。 在這些情況下,你必須修復表。表的修復是一項非常困難的工作,很多情況下令人束手無策。然而,有一些常規的知道思想和過程,可以遵循它們來增加修正表的機會。通常,開始是可以用最快的修復方法,看看能否袖珍故障。如果發現不成功,可以逐步升級到更徹底的但更慢的修復方法。如果仍舊難以修復,就應該從備份中恢復了。在上一章已經詳細介紹了這一部分內容。 簡單安全的修復 為了修復一個表執行下列步驟: ◆ 首先,用--recover,-r選項修正表,並且用--quick,-q選項,來只根據索引文件的內容進行恢復。這樣不接觸數據文件來修復索引文件。(-r意味著「恢復模式」) myisamchk -r -q tbl_nameisamchk -r -q tbl_name ◆ 如果問題仍舊存在,則忽略--quick選項,允許修復程序修改數據文件,因為這可能存在問題。下面的命令將從數據文件中刪除不正確的記錄和已被刪除的記錄並重建索引文件: myisamchk -r tbl_nameisamchk -r tbl_name ◆ 如果前面的步驟失敗,使用。安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢)。 myisamchk --safe-recover tbl_nameisamchk --safe-recover tbl_name困難的修理如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創建一個新的索引文件是必要的。按如下這樣的步驟做: ◆ 定位到包含崩潰表的資料庫目錄中 ◆ 把數據文件移更安全的地方。
F. navicat for mysql中如何設置自動修復崩潰的數據表
jb51_tablename是jb51_tablename.MYD的名稱。運行以下就可以了。
有的時候因為掉電或者其他原因導致資料庫損壞,我們可以使用mysql自帶的mysqlcheck命令來快速修復所有的資料庫或者特定的資料庫;例如
檢查優化並修復所有的資料庫用:
1.先在運行中輸入CMD,啟動命令行.
2.進入Mysql的Bin目錄:E:\Program Files\MySQL\MySQL Server 5.0\bin,如果不知道如何進入別的目錄,就要參考網上的資料補習基礎知識了.
常見方式:
G. 如何使用phpmyadmin工具進行修復MySQL資料庫表操作
有兩種方法,一種方法使用使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。另一種方法是MySQL的check table和repair table 的sql語句,使用起來比較簡便。 一、myisamchk, isamchk 其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這里以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用: myisamchk tablename.MYI 進行檢測,如果需要修復的話,可以使用: myisamchk -of tablename.MYI 關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL(和PHP搭配之最佳組合)伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL(和PHP搭配之最佳組合)伺服器Shutdown掉。 另外可以把下面的命令放在你的rc.local裡面啟動MySQL(和PHP搭配之最佳組合)伺服器前: 1.[ -x /tmp/MySQL(和PHP搭配之最佳組合).sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI 其中的/tmp/MySQL(和PHP搭配之最佳組合).sock是MySQL(和PHP搭配之最佳組合)監聽的Sock文件位置,對於使用RPM安裝的用戶應該是/var/lib/MySQL(和PHP搭配之最佳組合)/MySQL(和PHP搭配之最佳組合).sock,對於使用源碼安裝則是/tmp/MySQL(和PHP搭配之最佳組合).sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL(和PHP搭配之最佳組合)資料庫存放的位置。 需要注意的時,如果你打算把這條命令放在你的rc.local裡面,必須確認在執行這條指令時MySQL伺服器必須沒有啟動! 檢測修復所有資料庫(表) MySQL(和PHP搭配之最佳組合)check -A -o -r -p 二、check table 和 repair table 登陸MySQL終端: MySQL -uxxxxx -p dbname 1.> check table tabTest; 如果出現的結果說Status是OK,則不用修復,如果有Error,可以用: 1.> repair table tabTest; 進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpMyAdmin裡面也可以使用check/repair的功能。
H. 如何修復Access資料庫_Access資料庫教程
椋�嚀宓牟街樅縵攏� 1:從TOOLS欄目中下載Win32-ODBC.zip,下載完後用winzip解開到一個temp目錄,共有三個文件: Readme Win32-ODBC.ppd Win32-ODBC.tar.gz 2:在DOS窗口下,temp目錄中運行下面的DOS命令:ppm install Win32-ODBC.p Access資料庫被損壞主要分為以下幾種情況:1、嚴重損壞;2、輕度損壞;3、有些表被損壞或有些表的部分記錄被損壞。下面就分情況介紹解決辦法。 1、使用Access97打不開資料庫、系統提示不可識別的資料庫格式或不是該表的索引等信息,這樣的資料庫都是損壞比較嚴重的。損害嚴重的資料庫一般來說都是無法修復的,只有恢復備份了,好在這種情況比較少見。 接下來利用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資料庫的注意事項,首先,我們在修復資料庫前一定要做好備份,以防數據丟失或損壞; 修復Access資料庫時候 有一些資料庫中有RELATION(關系)來維護數據的一致性,但當資料庫異常後相關表的RELATION也就丟失了,在修復好資料庫後一定要把RELATION再聯好,有些軟體可以自動修復RELATION,比如用友公司的ERP8.XX系列產品的資料庫可以通過把表accinformation中的[cSysid]='AA' and [項目號]='99'的記錄,把[設置值]和[預設值]改為'8.0A0',重新進入系統時,系統會自動升級並重建索引。 分享:Access 2007基礎入門手冊 這本入門手冊是否合適你? 我只想告訴你我非常喜歡這本書。
I. SQL2000資料庫的系統表出錯,怎麼修復syscolumns和sysobjects
用dbcc
checkdb
檢查資料庫。
DBCC
CHECKDB
重啟伺服器後,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行資料庫的修復,修復資料庫存在的一致性錯誤與分配錯誤。
use
master
declare
@databasename
varchar(255)
set
@databasename='需要修復的資料庫實體的名稱'
exec
sp_dboption
@databasename,
N'single',
N'true'
--將目標資料庫置為單用戶狀態
dbcc
checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc
checkdb(@databasename,REPAIR_REBUILD)
exec
sp_dboption
@databasename,
N'single',
N'false'--將目標資料庫置為多用戶狀態
然後執行
DBCC
CHECKDB('需要修復的資料庫實體的名稱')
檢查資料庫是否仍舊存在錯誤。注意:修復後可能會造成部分數據的丟失。
J. SQLyog怎麼修復資料庫中的數據表
SQLyog怎麼修復資料庫中的數據表
就用你上面的語句就行了,創建完之後可以右擊這個庫選擇創建資料庫腳本就會出現標準的創建資料庫的腳本