㈠ SQL server2008本地資料庫被刪,怎麼恢復
主要步驟如下:
1. 查詢被標記的資料庫
USE master
GO
SELECT NAME,STATE_DESC FROM SYS.DATABASES
WHERE STATE_DESC='SUSPECT'
GO
2. 設置為緊急狀態EMERGENCY,此時資料庫可以有一個專用戶連接。由於本屬次資料庫比較大,就沒有繼續向下操作,我的做法是寫了腳步,把數據逐個的導出到另外一個庫。
有部分表,數據不全,查詢失敗,通過限制條件,逐步把可以查詢出來的導出來。
USE master
GO
ALTER DATABASE BPO SET EMERGENCY
GO
3.檢查資料庫
DBCC CHECKDB (BPO)
GO
4. 設置用戶
ALTER DATABASE BPO SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
5. 修復
DBCC CHECKDB (BPO, REPAIR_ALLOW_DATA_LOSS)
GO
6. 設置用戶
ALTER DATABASE BPO SET MULTI_USER
GO
㈡ 如何使用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的功能。