有兩種方法,一種方法使用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伺服器必須沒有啟動!
最後檢測修復所有資料庫(表)。
Ⅱ 整個SQL被刪了,我把資料庫文件.mdf和.log文件恢復回來了,但不知道如何恢
很簡單一個資料庫最重要的就是這兩個文件你可以有兩種方法1
直接覆蓋
新建一個資料庫
把兩個文件覆蓋到對應資料庫的文件上2
用還原的方法,
其原理是和1一樣的
選擇設備後
在強制還原下
要在事務日記里選擇你新建的資料庫文件的路徑
一般只有一個資料庫時不用選擇系統會自動找到。
Ⅲ Sql資料庫MDF數據文件怎麼數據恢復
直接在SQL管理那裡,附加進去就可以了,,這就是SQL的數據文件直接分離出來的,並不是備份或者其它方式。相當於,直接從資料庫文件夾拷出來的,所以你直接附加回去就可以了。
Ⅳ 如何恢復/修復SQL Server的MDF文件
如果備份的資料庫有2個文件,分別是.LDF 和 .MDF,打開企業管理器,在實例上右擊---所有任務--附加資料庫,然後選擇那個.MDF文件,就可以了。 或者在查詢分析器中輸入: sp_attach_db 資料庫名稱,路徑\文件名.ldf,路徑\文件名.MDF SQL Server資料庫備份有兩種方式,一種是使用BACKUP DATABASE將資料庫文件備份出去,另外一種就是直接拷貝資料庫文件mdf和日誌文件ldf的方式。下面將主要討論一下後者的備份與恢復。本文假定您能熟練使用SQL Server Enterprise Manager(SQL Server企業管理器)和SQL Server Quwey Analyser(SQL Server查詢分析器) 1、正常的備份、恢復方式 正常方式下,我們要備份一個資料庫,首先要先將該資料庫從運行的數據伺服器中斷開,或者停掉整個資料庫伺服器,然後復制文件。 卸下資料庫的命令:Sp_detach_db 資料庫名 連接資料庫的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16] sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name' 使用此方法可以正確恢復SQL Sever7.0和SQL Server 2000的資料庫文件,要點是備份的時候一定要將mdf和ldf兩個文件都備份下來,mdf文件是資料庫數據文件,ldf是資料庫日誌文件。 卸下資料庫:sp_detach_db 'test' 連接資料庫: sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf' sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf' 2、只有mdf文件的恢復技術 由於種種原因,我們如果當時僅僅備份了mdf文件,那麼恢復起來就是一件很麻煩的事情了。 如果您的mdf文件是當前資料庫產生的,那麼很僥幸,也許你使用sp_attach_db或者sp_attach_single_file_db可以恢復資料庫,但是會出現類似下面的提示信息 設備激活錯誤。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF' 可能有誤。 已創建名為 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日誌文件。
Ⅳ SQL資料庫覆蓋能恢復么.mdf文件
1、把mdf文件和ldf文件拷貝到資料庫的默認路徑C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA里;
2、在sqlserver里新建個查詢,執行下面代碼;
USE master;
GO
CREATE DATABASE NewFile
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File.mdf'),
(FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File_log.ldf')
FOR ATTACH;
GO
3、刷新資料庫,就出現了新的資料庫NewFile;
根據mdf文件和ldf文件還原成功!
Ⅵ SQL恢復master資料庫方法 只有mdf文件的資料庫如何恢復
首先先和大家講一講SQL
Server恢復master資料庫方法,具體步驟如下
第一步:復制model.mdf、mastlog.ldf、model.mdf、modellog.ldf、msdbdata.mdf、msdblog.ldf文件。
從X:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates
至X:\Program
Files\Microsoft
SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
註:以上「X:\Program
Files\Microsoft
SQL
Server」為SQL
Server的安裝目錄。以下的「C:\Program
Files\Microsoft
SQL
Server」為系統盤下的目錄
第二步:定位並執行安裝命令
1.
首先找到安裝命令:C:\Program
Files\Microsoft
SQL
Server\100\Setup
Bootstrap\Release\setup.exe
2.
執行命令
如果只是Windows身份驗證模式,只需要如下語法即可:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=<instance
name>
/SQLSYSADMINACCOUNTS=<accounts>
如果是復合身份驗證模式,則需要使用/SAPWD參數提供sa的密碼:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=<instance
name>
/SQLSYSADMINACCOUNTS=<accounts>
/SAPWD=<sa
password>
我安裝時設置的是復合認證模式,SQL
Server系統管理員帳號是administrators組,sa密碼是123456。並且就一個默認實例:MSSQLSERVER。
所以在命令行執行如下命令:
復制代碼
代碼如下:setup
/ACTION=REBUILDDATABASE
/QUIET
/INSTANCENAME=MSSQLSERVER
/SQLSYSADMINACCOUNTS=administrators
/SAPWD=123456
第三步:執行完畢後沒有任何提示信息(不管成功與否),但是可以馬上在C:\Program
Files\Microsoft
SQL
Server\100\Setup
Bootstrap\Log\Summary.txt中查看安裝日誌。
最後,在Sql
Server
Configuration
Manager中啟動SQL
Server服務成功。
在處理過程中出現了這種情況SQL恢復資料庫又該怎麼辦?只有mdf文件時,應當如何進行恢復,即有log文件的資料庫如何恢復
SQL恢復資料庫具體實現步驟:
1、新建一個同名資料庫。
2、停止資料庫服務,覆蓋新建的資料庫主文件(小技巧:最好放在同一個磁碟裡面,把新建的資料庫主文件刪掉或移開,再把要恢復的資料庫主文件剪切過去,這樣就可以節省時間。)
3、啟動資料庫服務,資料庫變為置疑或可疑狀態。然後在查詢分析器中運行:
alter
database
無日誌文件的資料庫名稱
set
emergency
設置為緊急狀態。
4、再運行:
alter
database
無日誌文件的資料庫名稱
set
single_user
或者:
Sp_dboption
'無日誌文件的資料庫名稱',
'single
user',
'true'
設置為單用戶模式。
5、檢查並重建日誌文件,運行:
dbcc
checkdb('無日誌文件的資料庫名稱',REPAIR_ALLOW_DATA_LOSS)
這個時間比較長。耐心等待!如果有錯誤提示,再運行:
dbcc
checkdb('無日誌文件的資料庫名稱',REPAIR_REBUILD)
進行修復。如果沒有錯誤,可以跳過。
6、恢復成多用戶模式
alter
database
無日誌文件的資料庫名稱
set
multi_user
或者:
Sp_dboption
'無日誌文件的資料庫名稱',
'single
user',
'false'
刷新資料庫,你就可以看到已經修復好的資料庫了。
以上就是為大家分享的SQL恢復資料庫方法,希望對大家恢復資料庫有所幫助。
Ⅶ 如何修復已經損壞的SQL的MDF文件
可以嘗試使用覆蓋法。新建另外一個資料庫,然後停止sql,再將mdf文件復制過去改名一樣的,再啟動sql。
Ⅷ 求最好的 SQL資料庫MDF損壞 SQL資料庫MDF損壞修復工具
可以嘗試使用覆蓋法。新建另外一個資料庫,然後停止sql,再將mdf文件復制過去改名一樣的,再啟動sql。