修復sql
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)刪除。
5.重新啟動SQL Server服務,然後運行如下命令:
Use Master
go
sp_configure 'allow updates', 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'hbposv6_branch'
--Verify one row is updated before committing
commit tran
go
6.停止SQL然後重新啟動SQL Server服務,然後運行如下命令
(更換日誌文件路徑地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('hbposv6_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf')
--在這里,請輸入你的資料庫的路徑
go
7.停止SQL然後重新啟動SQL Server服務,然後運行:
use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go
sp_configure 'allow updates', 0
reconfigure with override
go
8.運行dbcc checkdb(db_name) 檢查資料庫的完整性
9.修復數庫
--請在查詢分析器中執行下列語句.執行前斷開其它
所有資料庫連接,最好是斷開網線
--如果不是該資料庫名,請將資料庫
--hbposv6_branch
--改為要修復的資料庫
USE master
Go
--單用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--資料庫檢查
DBCC CHECKDB ('hbposv6_branch')
Go
--如果返回結果出現了紅色的提示文字,說明資料庫中存在錯誤,需要修復
--資料庫修復
DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
Go
--再次資料庫檢查,如果返回結果中沒有了紅色的提示文字,
說明修復成功;
DBCC CHECKDB ('hbposv6_branch')
Go
--否則意味著還需要更高級別的修復;嘗試將上面修復語句的
'repair_rebuild'換為'repair_allow_data_loss'再試,
之後再次檢查資料庫。
--如果還有錯誤未修復,請把這些信息以文字的方式發給我們
--退出前請一定要執行以下語句返回到多用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
go
註:都要把 dbname 替換成真實的資料庫名字。
② SQL怎麼恢復
需要安裝SQL,如果有特定用途的軟體也要使用資料庫,把Microsoft SQL Server \MSSQL1\MSSQL\DATA裡面這個軟體的mdf文件附加到資料庫里就行了(以SQL2005為例)。希望對您有用!
③ 怎樣修復已經損壞的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伺服器必須沒有啟動!
最後檢測修復所有資料庫(表)。
④ sql server 怎麼修復安裝
1、首先打開開始菜單,找到sqlserver安裝中心,如圖。
2、打開後,點擊維護選項,如圖。
3、在維護面板中,點擊修復選項,如圖。
4、然後點擊修復後,彈出如圖所示的選擇框,找到sqlserver的安裝包確定即可。
5、然後就跟安裝的時候一樣了,不過只需要勾選自己想要添加的功能,就完成了。
⑤ 什麼方法可以修復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就可以了。
正確執行完成的提示應該類似於:
警告: 資料庫 'test' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能需要刪除多餘的日誌文件。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。
9) 驗證資料庫一致性
dbcc checkdb('test')
10.設置資料庫為正常狀態
sp_dboption 'test','dbo use only','false'
如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。
11)最後一步,我們要將步驟6中設置的「允許對系統目錄直接修改」一項恢復;
⑥ 如何修復sql資料庫master
在網上搜索了一下,發現了一篇介紹比較詳細的,而且也確實解決了這一問題(我在VM上測試過可以),特將其全文轉貼如下:
關於系統資料庫的恢復總結如下:
在SQL Server資料庫中,系統信息存儲在系統資料庫中,主要的系統資料庫包括:
master-從整體上控制用戶資料庫和SQL Server操作,在創建了任何用戶定義的對象後,都要備份它
model-為新資料庫提供模版和原型
msdb-包含了有關作業、報警及操作員等信息
如果包含系統資料庫的介質變了,那麼必須重建系統資料庫,如果你仍然可以啟動SQL Server服務,則可以通過RESTORE語句從系統資料庫的備份中恢復資料庫。
如果master壞了,不能啟動系統,可以按照下面步驟進行恢復
1.重建系統資料庫 運行c:/mssql7/binn/rebuildm.exe,按照提示進行即可,
過程中需要系統資料庫樣本的路徑,可在安裝光碟中找到;
2 重建系統資料庫後,啟動SQL Server服務,用系統資料庫的備份恢復資料庫
就行了通常恢復順序為master->msdb->model
在恢復master的備份時要注意:必須在單用戶(single user)模式下進行
a.進入單用戶模式的方法:
1.在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m
其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動
-f 用最小配置啟動SQL Server
-m 單用戶模式啟動SQL Server
2.可以在控制面板-服務-MSSQLServer的啟動參數中輸入-c -f -m或者輸入-m,點擊開始
3.進行master資料庫的恢復
a.直接進入查詢分析器,有個提示不要理會它
輸入恢復語句進行資料庫恢復:
RESTORE DATABASE master from disk='c:/具體的備份文件名'
b.或者用這個,在命令提示符下輸入,注意大小寫
使用"windows身份驗證"的,輸入:isql /E
使用"sql server和windows身份驗證"的,輸入:isql /U"用戶名" /P"密碼"
然後在出現的提示符下輸入(注意1>,2>是提示符):
⑦ sql server2008怎麼修復
1、修改資料庫為緊急模式ALTER DATABASE Stock SET EMERGENCY
2、使資料庫變為單用戶模式ALTER DATABASE Stock SET SINGLE_USER
3、修復資料庫日誌重新生成,此命令檢查的分配,結構,邏輯完整性和所有資料庫中的對象錯誤。當您指定「REPAIR_ALLOW_DATA_LOSS」作為DBCC CHECKDB命令參數,該程序將檢查和修復報告的錯誤。但是,這些修復可能會導致一些數據丟失。DBCC CheckDB (Stock, REPAIR_ALLOW_DATA_LOSS)
4、使資料庫變回為多用戶模式ALTER DATABASE Stock SET MULTI_USER1:重新建立一個,一樣的資料庫,路徑名稱,文件都一樣哈!
⑧ 如何修復SQL資料庫
上網上下載個軟體清理工具,一切搞定。
⑨ sql server 打不開,如何修復(詳情看圖)謝謝!
在windows開始菜單中SQLServer的目錄下有一個SQLServer安裝中心,打開後點擊左側菜單中的維護,在右側選擇修復,然後選擇安裝程序所在路徑(安裝光碟),然後按提示進行操作即可修復安裝,修復一下試試