數據庫怎麼修復?
數據庫如何修復
可能有文件缺失或損壞,可以停掉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數據庫內數據是否正常,是的話換回原數據庫即可。
如何恢復系統數據庫?
關於系統數據庫的恢復總結如下:在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模式下進行,有以下幾種方法進入單用戶模式:1 可以在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動-f 用最小配置啟動SQL Server-m 單用戶模式啟動SQL Server2 可以在控制面板-服務-MSSQLServer的啟動參數中輸入-c -f -m或者輸入-m,點擊開始3 還有一種更靈活的啟動方法:用存在註冊表裡的啟動參數啟動
怎樣修復已經損壞的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')
......
電腦數據庫怎麼修復操作?
如果沒有主數據庫,您就無法成功地啟動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)”
怎麼修復數據庫 修復數據庫壞塊方法
修復數據庫壞塊
dbv
你也可以用dbv工具看一下你現在其他的數據文件有沒有還有壞塊的
dbv file='yourfilename'
恢復方法:
當Oracle數據庫出現壞塊時,Oracle會在警告日誌文件(alert_SID.log)中記錄壞塊的信息:
ORA-01578: ORACLE data block corrupted (file # 7, block # )
ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/users01.dbf'
其中,<AFN>代表壞塊所在數據文件的絕對文件號,代表壞塊是數據文件上的第幾個數據塊
出現這種情況時,應該首先檢查是否是硬件及操作系統上的故障導致Oracle數據庫出現壞塊。在排除了數據庫以外的原因後,再對發生壞塊的數據庫對象進行處理。
1.確定發生壞塊的數據庫對象
SELECT tablespace_name,
segment_type,
owner,
segment_name
FROM dba_extents
WHERE file_id =
AND between block_id AND block_id+blocks-1;
2.決定修復方法
如果發生壞塊的對象是一個索引,那麼可以直接把索引DROP掉後,再根據表裡的記錄進行重建;
如果發生壞塊的表的記錄可以根據其它表的記錄生成的話,那麼可以直接把這個表DROP掉後重建;
如果有數據庫的備份,則恢復數據庫的方法來進行修復;
如果表裡的記錄沒有其它辦法恢復,那麼壞塊上的記錄就丟失了,只能把表中其它數據壞上的記錄取出來,然後對這個表進行重建。
3.用Oracle提供的DBMS_REPAIR包標記出壞塊
exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('','');
4.使用Create table as select命令將表中其它塊上的記錄保存到另一張表上
create table corrupt_table_bak
as
select * from corrupt_table;
5.用DROP TABLE命令刪除有壞塊的表
drop table corrupt_table;
6.用alter table rename命令恢復原來的表
alter table corrupt_table_bak
rename to corrupt_table;
7.如果表上存在索引,則要重建表上的索引
PART2
2014.7.22研究恢復數據庫壞塊:
Oracle調用標準C的系統函數,對數據塊進行讀寫操作,因此,壞塊是有可能由以下幾種原因產生:
硬件的I/O錯誤
操作系統的I/O錯誤或緩衝問題
內存或paging問題
磁盤修復工具
一個數據文件的一部分正在被覆蓋
Oracle試圖訪問一個未被格式化的系統塊失敗
數據文件部分溢出
Oracle或者操作系統的bug
遇到“ORA-01578:ORACLE data block corrupted”錯誤
處理方法:1.rman的recover命令可以在數據庫保持open狀態下只恢復受損的數據塊
2.如果沒有備份,......
如何修復MYSQL數據庫
來快速修復所有的數據庫或者特定的數據庫;方法:進入Mysql的Bin目錄:C:\Program Files\MySQL\MySQL Server 4.1\bin
運行:mysqlcheck -A -o -r -uroot -p123
注意,將123改成你自己的root用戶密碼
希望能解決您的問題。
如何修復ACCESS數據庫
ACCESS數據庫,使用時間超過2-3個月 或網站每日訪問人數超過100個獨立IP 或數據庫大於200M後,都可能經常造成損壞,導致用戶的網站就很慢,也會導致服務器CPU一直100%,一般可以採用以下方法修復,如修復後還是無法使用,可能只有轉換成MSSQL數據庫。
修復方法:(經常修復,可以使網站速度更快)
1.先下載網站數據庫文件
2. office 2003套件中 有Access 2003 安裝好以後打開
3.菜單中 工具>>數據庫實用工具>>壓縮和修復數據庫>>選擇下載好的網站數據庫文件建議修復2-3次,修復後,重新上傳到FTP內即可
關於重新安裝SQL後,原有的數據庫如何恢復的問題!
從新安裝數據庫後,打開數據庫管理器,右鍵數據庫——附加——瀏覽——找到你要的數據庫——確定——就行了
如何修復 SQL 數據庫置疑
修復sql2000數據庫置疑
在實際的操作中由於突然斷電或者突然斷網造成數據庫置疑(在企業管理器中數據庫後面出現置疑兩個字),下面我們通過以下方法來進行修復置疑的數據庫。
A.我們使用默認方式建立一個供恢復使用的數據庫(如test)。可以在SQL Server Enterprise Manager裡面建立。
B.停掉數據庫服務器。
C. 將剛才生成的數據庫的日誌文件test_log.ldf刪除,用要恢復的數據庫mdf文件覆蓋剛才生成的數據庫數據文件test_data.mdf。
D. 啟動數據庫服務器。此時會看到數據庫test的狀態為“置疑”。這時候不能對此數據庫進行任何操作。
E. 設置數據庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇數據庫服務器,按右鍵,選擇“屬性”,在“服務器設置”頁面中將“允許對系統目錄直接修改”一項選中。也可以使用如下語句來實現。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
F.設置test為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')
此時可以在SQL Server Enterprise Manager裡面看到該數據庫處於“只讀\置疑\脫機\緊急模式”可以看到數據庫裡面的表,但是僅僅有系統表
G.下面執行真正的恢復操作,重建數據庫日誌文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')
執行過程中,如果遇到下列提示信息:
服務器: 消息 5030,級別 16,狀態 1,行 1
未能排它地鎖定數據庫以執行該操作。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯繫。
說明您的其他程序正在使用該數據庫,如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的系統表,那麼退出SQL Server Enterprise Man互ger就可以了。
正確執行完成的提示應該類似於:
警告: 數據庫 'test' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置數據庫選項,並且可能需要刪除多餘的日誌文件。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯繫。
此時打開在SQL Server Enterprise Manager裡面會看到數據庫的狀態為“只供DBO使用”。此時可以訪問數據庫裡面的用戶表了。
H.驗證數據庫一致性(可省略)
dbcc checkdb('test')
一般執行結果如下:
CHECKDB 發現了 0 個分配錯誤和 0 個一致性錯誤(在數據庫 'test' 中)。
DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯繫。
I.設置數據庫為正常狀態
sp_dboption 'test','dbo use only','false'
如果沒有出錯,......