當前位置:首頁 » 操作系統 » 資料庫修復語句

資料庫修復語句

發布時間: 2023-05-27 00:04:54

㈠ 如何恢復資料庫的內容

昨天幫一個朋友恢復了sql server 資料庫 現在把過程寫出來 大瞎穗家一起分享

我那個哥們是從別人那拷了一個資料庫的數據文件 (c:mssql data 目肆螞錄下的文件)

最初我是用的

在一台好的機器上重新安裝SQL Server 建立相同的資料庫設備(大小) 和資料庫

停掉SQL Server 用拷貝出來的資料庫文件覆蓋剛建立的資料庫文件 再重新啟動

SQL Server 但一直不可以 我猜關鍵是無法建立相同的資料庫設備(大小)

後來採用了

系統存儲過程

sp_attach_db // 附加數裂神埋據庫文件到伺服器

sp_attach_db_single_file // 附加資料庫的單個文件到伺服器

具體的sql 語句就是

例如

EXEC sp_attach_single_file_db pubs e:datapubs mdf sp_attach_db @dbname= conmis @filename = d: conmis _data mdf @filename = d: conmis _log ldf

如何附加資料庫文件到伺服器(即 通過* mdf *ldf 文件修復資料庫)

另外查找資料時看到也可以通過日誌恢復以前的數據 不知那位哥們看看是不是可以

用日誌恢復

restore log {data_name|@database_name_var}fromwith [norecovery ecoverystandby_undo_file_name][ ][stopat={data_time|@data_time_var}

例如 庫名為database 日誌為database _log要求恢復 / / : 前的數據

lishixin/Article/program/SQL/201311/16392

㈡ 請教如何使用DBCC命令修復資料庫的相關推薦

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 替換成真實的資料庫名字。

㈢ 怎麼修復sql2005資料庫

sql2005資料庫修復方法如下:
1、停止資料庫服務。
2、將需要恢復的資料庫文件復制到另外的位置。
3、啟動資料庫服務。
4、確認要恢復的資料庫文件已經成功復制到另外的位置,然後在SQL
Server
Management
Studio中刪除要恢復的資料庫。
5、新建同名的資料庫(資料庫文件名也要相同)。
6、停止資料庫服務。
7、用第2步中備份的.mdf文件覆蓋新資料庫的同名文件。
8、啟動資料庫服務。
9、運行alter
database
dbname
set
emergency,將資料庫設置為emergency
mode
10、運行下面的命令就可以恢復資料庫:Titleuse
masterdeclare
@databasename
varchar(255)
set
@databasename='要恢復的資料庫名稱'

㈣ 資料庫修復的資料庫升級錯誤修復

1.我們使用默認方式建立一個供恢復使用的資料庫(如pos)。可以在SQL Server Enterprise Manager裡面建立。
2.停掉資料庫伺服器。
3.將剛才生成的資料庫的日誌文件pos_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件pos_data.mdf。
4.啟動資料庫伺服器。此時會看到資料庫pos的狀態為「置疑」。這時候不能對此資料庫進行任何操作。
5.設置資料庫允許直接操悉模悶作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫睜彎伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中
將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。
use master
go
exec sp_configure 'allow updates',1
go
reconfigure with override
go
6.設置pos為緊急修復模式
update sysdatabases set status=-32768 where dbid=DB_ID('pos')
--此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於「只讀置疑離線緊急模式」可以看到資料庫裡面的表,但是僅僅有系統表
7.下面執行真正的恢復操作,重建資料庫日誌文件
go
dbcc rebuild_log('pos','D:Program FilesMicrosoft SQL ServerMSSQLDatapos_log.ldf')
go
--執行過程中,如果遇到下列提示信息:
--伺服器: 消息 5030,級別 16,狀態 1,行 1
--未能排它地鎖定資料庫以執行該操作。
--DBCC 執行完畢。如果 DBCC 輸出了錯碼態誤信息,請與系統管理員聯系。
--說明您的其他程序正在使用該資料庫,如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了pos庫的系統表,那麼退出SQL Server
Enterprise Manager就可以了。
--正確執行完成的提示應該類似於:
--警告: 資料庫 'pos' 的日誌已重建。已失去事務的一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必須重置資料庫選項,並且可能
需要刪除多餘的日誌文件。
--DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
--此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為「只供DBO使用」。此時可以訪問資料庫裡面的用戶表了。
8.驗證資料庫一致性(可省略)
go
dbcc checkdb('pos')
--一般執行結果如下:
--CHECKDB 發現了 0 個分配錯誤和 0 個一致性錯誤(在資料庫 'pos' 中)。
--DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
9.設置資料庫為正常狀態
go
exec sp_dboption 'pos','dbo use only','false'
go
--如果沒有出錯,那麼恭喜,現在就可以正常的使用恢復後的資料庫啦。
10.最後一步,我們要將步驟E中設置的「允許對系統目錄直接修改」一項恢復。因為平時直接操作系統表是一件比較危險的事情。當然,我們可以在SQL Server
Enterprise Manager裡面恢復,也可以使用如下語句完成
exec sp_configure 'allow updates',0
go
reconfigure with override
go

㈤ 如何修復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>是提示符):

㈥ 資料庫損壞如何修復(bcp

ORDER BY NAME把查詢的結果集全部復制下來,新建一個文本文件取名為「導出.bat」把結果集復制進去並保存,把該文件存放在d盤目錄下。2.在查詢分析器中選擇思迅資料庫運行:

select 'bcp 問題資料庫..'name' IN ''d: estdb'name'.txt -c -Usa -S伺服器名小寫 -P ' FROM SYSOBJECTS WHERE TYPE = 'U'

ORDER BY NAME

把查詢的結果集全部復制下來,磨物山新建一個文本文件取名為「導入.bat」把結果集復制進去並保存,把該文件存放在d盤目錄下。3.運行「導出.bat」(注意:該文件雙擊即可運行),資料庫中的數據會倒出到TESTDB目錄中。4.刪除原來的問題資料庫,重新建立新的資料庫。5.在查詢分析器中選擇思迅資料庫運行:

select 'delete 'name FROM SYSOBJECTS WHERE TYPE = 'U'

然後把返回的結果集復瞎中制,新建一個查詢分析器窗口,把復制的內容粘貼下運行!6.最後運行「導入.bat」 ,倒入成功後就恢復資料庫了!7.最後在查詢分析器中選擇思迅資料庫運行

uset_sys_system set sys_var_value=(select max(flow_id) from t_im_flow where num2=1) where sys_var_id='ioflow_pointer'

go8.日結螞頌,檢查數據。注意:a.請根據語句中的漢字提示,進行修改對應內容。如:語句中的「問題資料庫」,修改為hbposv5

㈦ 資料庫如何修復

可能有文件缺失或損壞,可以停掉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資料庫置疑 修復SQL資料庫置疑方法

1、在實際的操作中由於突然斷電或者突然斷網造成資料庫置疑(在企業管理器中資料庫後面出現置疑兩個字),下面我們通過以下方法來進行修復置疑的資料庫。

2、我們使用默認方式建立一個供恢復使用的資料庫(如test)。可以在SQL Server Enterprise Manager裡面建立。

3、停掉資料庫伺服器。

4、將剛才生成的資料庫的日誌文件test_log.ldf刪除,用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data.mdf。

5、啟動資料庫伺服器。此時會看到資料庫test的狀態為「置疑」。這時候不能對此資料庫進行任何操作。

6、設置資料庫允許直接操作系統表。此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器,按右鍵,選擇「屬性」,在「伺服器設置」頁面中將「允許對系統目錄直接修改」一項選中。也可以使用如下語句來實現。

㈨ 如何恢復和修復MS SQL資料庫的MDF文件[2]

怎麼辦呢?別著急 下面我們舉例說明恢復辦法

A 我們使用默認方式建立一個供恢復使用的資料庫(如test) 可以在SQL Server Enterprise Manager裡面建立

B 停掉資料庫伺服器

C 將剛才生成的數悶談仿據庫的日誌文件test_log ldf刪除 用要恢復的資料庫mdf文件覆蓋剛才生成的資料庫數據文件test_data mdf

D 啟動資料庫伺服器 此時會看到資料庫test的狀態為 置疑 這時候不能對此資料庫進行任何操作

E 設置資料庫允許直接

操作系統表 此操作可以在SQL Server Enterprise Manager裡面選擇資料庫伺服器 按右鍵 選擇 屬性 在 伺服器設置 頁面中將螞纖 允許對系統目錄直接修改 一項選中 也可以使用如下語句來實現

以下是引用片段 usemaster go sp_configure allowupdates go reconfigurewithoverride go

F 設置test為緊急修復模式

update sysdatabases set status= where dbid=DB_ID( test )

此時可以在SQL Server Enterprise Manager裡面看到該資料庫處於 只讀置疑離線緊急模式 可以看到資料庫裡面的表 但是僅僅有系統表

G 下面執行真正的恢復操作 重建資料庫日誌文件

dbcc rebuild_log( test C:Program FilesMicrosoft SQL ServerMSSQLData est_log ldf )

執行過程中 如果遇到下列提示信息

伺服器: 消息 級別 狀態 行

未能排它地鎖定資料庫以執行該操作

DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系

說明您的其他程序正在使用該資料庫 如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的系統表 那麼退出SQL Server Enterprise Manager就可以了

正確執行完成的提示應該類似於

警告: 資料庫 test 的日誌已重建 已失去事務的一致性 應運行 DBCC CHECKDB 以驗證物理一致性 將必須重置資料庫選項 並且可能需要刪除多餘的日誌文件

DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系

此時打開在SQL Server Enterprise Manager裡面會看到資料庫的狀態為 只供DBO使用 此時可以訪問資料庫裡面的用戶表了

H 驗證資料庫一致性(可省略)

dbcc checkdb( test )

一般執行結果如下

CHECKDB 發現了 個分配錯誤和 個一致性錯誤(在資料庫 test 中)

DBCC 執行完畢 如果 DBCC 輸出了錯誤信息 請與系統管理員聯系

I 設置資料庫為正常狀態

sp_dboption test dbo use only false

侍拍如果沒有出錯 那麼恭喜 現在就可以正常的使用恢復後的資料庫啦

J 最後一步 我們要將步驟E中設置的 允許對系統目錄直接修改 一項恢復 因為平時直接操作系統表是一件比較危險的事情 當然 我們可以在SQL Server Enterprise Manager裡面恢復 也可以使用如下語句完成

以下是引用片段 sp_configure allowupdates go reconfigurewithoverride go

lishixin/Article/program/SQL/201311/16354

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:88
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:310
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:794
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:346
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:818
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:367
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:594