日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql置疑原因_SQL SERVER2000数据库置疑处理详解

發(fā)布時間:2023/12/10 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql置疑原因_SQL SERVER2000数据库置疑处理详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、數(shù)據(jù)庫置疑產(chǎn)生的原因

1、SQL Server所在分區(qū)空間是否足夠,數(shù)據(jù)庫文件大小是否達(dá)到最大文件限制,FAT32事務(wù)格式只支持4G以內(nèi)的文件?

2、數(shù)據(jù)庫文件損壞或被非正常刪除時會出現(xiàn)這種情況;

3、病毒防火墻的掃面也可能會引起數(shù)據(jù)庫置疑;

4、當(dāng)SQL

Server啟動時,將會嘗試獲得對數(shù)據(jù)庫文件的排他訪問權(quán),如果此時該文件被其他程序占用,或者遺失,數(shù)據(jù)庫將會被標(biāo)記為置疑;

5、電腦非法關(guān)機(jī)也可能會造成數(shù)據(jù)庫置疑;

6、電腦磁盤有壞道可能會造成數(shù)據(jù)庫置疑。

二、數(shù)據(jù)庫置疑的預(yù)防

1、數(shù)據(jù)庫文件存放的磁盤或磁帶,空間是否夠大,經(jīng)常檢查盤符的空間;

2、數(shù)據(jù)庫文件存放的磁盤格式設(shè)置為NTFS格式;

3、進(jìn)行病毒清除時,盡量將SQL Server服務(wù)停掉,再進(jìn)行殺毒操作,不過一般不會影響數(shù)據(jù)庫;

4、盡量減少非正常關(guān)機(jī);

5、建議購買后備電源;

6、實(shí)施軟件之后一定要做好自動備份處理。

7、建議每隔一定時間進(jìn)行一次數(shù)據(jù)庫全備份。

三、數(shù)據(jù)庫置疑測試環(huán)境搭建

1、分離數(shù)據(jù)庫,備份數(shù)據(jù)庫數(shù)據(jù)文件和日志文件

在SQL

Server2000企業(yè)管理器下,選中數(shù)據(jù)庫mytest庫,右鍵菜單中—所有任務(wù)—分離數(shù)據(jù)庫,對mytest數(shù)據(jù)庫實(shí)現(xiàn)分離操作。然后在C:\Program

Files\Microsoft SQL

Server\MSSQL\Data目錄下將mytest_Data.MDF和mytest_Log.LDF兩個文件做備份處理;如果mytest_Log.LDF已損壞,則只備份mytest_Data.MDF處理。

2、新建同名數(shù)據(jù)庫

在企業(yè)管理器中創(chuàng)建同名數(shù)據(jù)庫mytest,數(shù)據(jù)庫數(shù)據(jù)文件名和日志文件名需和原庫一致。

3、停止SQL Server服務(wù)

4、替換數(shù)據(jù)文件

只將備份的mytest_Data.MDF替換掉剛創(chuàng)建的mytest數(shù)據(jù)庫的mytest_Data.MDF文件

5、啟動SQL

Server服務(wù),此時由于mytest_Log.LDF日志文件出現(xiàn)問題,導(dǎo)致mytest數(shù)據(jù)庫處于置疑狀態(tài),在置疑狀態(tài)下,無法對數(shù)據(jù)庫做任何操作,如下圖所示:

四、數(shù)據(jù)庫置疑恢復(fù)

4.1、只備份了數(shù)據(jù)文件,無日志文件的情況

1、設(shè)置數(shù)據(jù)庫允許直接操作系統(tǒng)表。

此操作可以在企業(yè)管理器(SQL Server Enterprise

Manager)里面選擇數(shù)據(jù)庫服務(wù)器,按右鍵,選擇“屬性”,在“服務(wù)器設(shè)置”頁面中將“允許對系統(tǒng)目錄直接修改”一項(xiàng)選中。也可以在查詢分析器中使用如下語句來實(shí)現(xiàn):

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

2、設(shè)置mytest數(shù)據(jù)庫為緊急修復(fù)模式

在查詢分析器中使用如下語句:

-- -32768:將模式改為只讀/脫機(jī)/緊急模式

update sysdatabases set status=-32768 where

dbid=DB_ID('mytest')

此時刷新數(shù)據(jù)庫,可以在企業(yè)管理器(SQL Server Enterprise

Manager)里面看到該數(shù)據(jù)庫處于“只讀\置疑\脫機(jī)\緊急模式”可以看到數(shù)據(jù)庫里面的表,但是僅僅有系統(tǒng)表。

3、重建數(shù)據(jù)庫日志文件

下面執(zhí)行真正的恢復(fù)操作,在查詢分析器中用dbcc

rebuild_log命令來重建數(shù)據(jù)庫日志文件(重建路徑根據(jù)你實(shí)際的數(shù)據(jù)庫路徑來)

dbcc rebuild_log('mytest','C:\Program

Files\Microsoft SQL Server\MSSQL\Data\mytest_Log.LDF')

執(zhí)行過程中,如出現(xiàn)如下錯誤:

服務(wù)器: 消息 5030,級別 16,狀態(tài) 1,行 1

未能排它地鎖定數(shù)據(jù)庫以執(zhí)行該操作。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

原因:說明其他程序正在使用該數(shù)據(jù)庫,如果之前在第3步中使用企業(yè)管理器打開了mytest庫的系統(tǒng)表,那么退出企業(yè)管理器就可以了。

該命令正常執(zhí)行的結(jié)果提示如下:

警告: 數(shù)據(jù)庫 'mytest' 的日志已重建。已失去事務(wù)的一致性。應(yīng)運(yùn)行 DBCC

CHECKDB 以驗(yàn)證物理一致性。將必須重置數(shù)據(jù)庫選項(xiàng),并且可能需要刪除多余的日志文件。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

此時,打開企業(yè)管理器,會看到該數(shù)據(jù)庫的狀態(tài)為“只供DBO使用”,這表示可以訪問數(shù)據(jù)庫里面的用戶表了。

4、驗(yàn)證數(shù)據(jù)庫一致性(數(shù)據(jù)庫較大時,會耗費(fèi)一定的時間)

在查詢分析器中執(zhí)行如下命令:

dbcc checkdb('mytest')

一般執(zhí)行結(jié)果:

'sysobjects' 的 DBCC 結(jié)果。

對象 'sysobjects' 有 27 行,這些行位于 1 頁中。

'sysindexes' 的 DBCC 結(jié)果。

對象 'sysindexes' 有 41 行,這些行位于 2 頁中。

'syscolumns' 的 DBCC 結(jié)果。

對象 'syscolumns' 有 271 行,這些行位于 6 頁中。

'systypes' 的 DBCC 結(jié)果。

對象 'systypes' 有 26 行,這些行位于 1 頁中。

'syscomments' 的 DBCC 結(jié)果。

對象 'syscomments' 有 95 行,這些行位于 7 頁中。

...

CHECKDB 發(fā)現(xiàn)了 0 個分配錯誤和 0 個一致性錯誤(在數(shù)據(jù)庫 'mytest' 中)。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

5、設(shè)置數(shù)據(jù)庫為正常狀態(tài)

在查詢分析器中執(zhí)行:

sp_dboption 'mytest','dbo use

only','false'

如果提示命令已成功完成,且沒有報錯,那么恭喜,現(xiàn)在就可以正常的使用恢復(fù)后的數(shù)據(jù)庫啦。

6、最后一步,需要將第1步中設(shè)置的“允許對系統(tǒng)目錄直接修改”一項(xiàng)恢復(fù)。因?yàn)槠綍r直接操作系統(tǒng)表是一件比較危險的事情。當(dāng)然,我們可以在企業(yè)管理器里面直接修改恢復(fù),也可以在查詢分析器中使用如下語句完成:

use master

go

sp_configure 'allow updates',0

reconfigure with override

go

執(zhí)行結(jié)果一般如下:

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

已將配置選項(xiàng) 'allow updates' 從 1 改為 0。請運(yùn)行 RECONFIGURE 語句以安裝。

4.2、備份了數(shù)據(jù)文件,日志文件的情況

1、設(shè)置數(shù)據(jù)庫允許直接操作系統(tǒng)表。

此操作可以在企業(yè)管理器(SQL Server Enterprise

Manager)里面選擇數(shù)據(jù)庫服務(wù)器,按右鍵,選擇“屬性”,在“服務(wù)器設(shè)置”頁面中將“允許對系統(tǒng)目錄直接修改”一項(xiàng)選中。也可以在查詢分析器中使用如下語句來實(shí)現(xiàn):

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

運(yùn)行結(jié)果:

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

已將配置選項(xiàng) 'allow updates' 從 0 改為 1。請運(yùn)行 RECONFIGURE 語句以安裝。

2、設(shè)置mytest數(shù)據(jù)庫為緊急模式

在查詢分析器中使用如下語句:

-- 32768:將模式改為置疑\緊急模式

update sysdatabases set status=32768 where

dbid=DB_ID('mytest')

此時刷新數(shù)據(jù)庫,可以在企業(yè)管理器(SQL Server Enterprise

Manager)里面看到該數(shù)據(jù)庫處于“置疑\緊急模式”,但是什么都看不到。

3、設(shè)置數(shù)據(jù)庫為單用戶模式

下面執(zhí)行真正的恢復(fù)操作,使用如下命令設(shè)置數(shù)據(jù)庫為單用戶模式。

sp_dboption 'mytest','single

user',true

此時,打開企業(yè)管理器,會看到該數(shù)據(jù)庫的狀態(tài)由“置疑\緊急模式”變?yōu)椤熬o急模式”,仍然看不到任何表之類的文件。

4、驗(yàn)證數(shù)據(jù)庫一致性(數(shù)據(jù)庫較大時,會耗費(fèi)一定的時間)

在查詢分析器中執(zhí)行如下命令:

dbcc checkdb('mytest')

一般執(zhí)行結(jié)果:

'sysobjects' 的 DBCC 結(jié)果。

對象 'sysobjects' 有 27 行,這些行位于 1 頁中。

'sysindexes' 的 DBCC 結(jié)果。

對象 'sysindexes' 有 41 行,這些行位于 2 頁中。

'syscolumns' 的 DBCC 結(jié)果。

對象 'syscolumns' 有 271 行,這些行位于 6 頁中。

'systypes' 的 DBCC 結(jié)果。

對象 'systypes' 有 26 行,這些行位于 1 頁中。

'syscomments' 的 DBCC 結(jié)果。

對象 'syscomments' 有 95 行,這些行位于 7 頁中。

...

CHECKDB 發(fā)現(xiàn)了 0 個分配錯誤和 0 個一致性錯誤(在數(shù)據(jù)庫 'mytest' 中)。

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

5、修改mytest數(shù)據(jù)庫狀態(tài)

update sysdatabases set status=28 where

name='mytest'

此時,刷新下數(shù)據(jù)庫,可以看到mytest數(shù)據(jù)的狀態(tài)也恢復(fù)正常,且能看到相關(guān)數(shù)據(jù)文件了,

status參數(shù)說明:

1 = autoclose;使用 sp_dboption 設(shè)置。

4 = select into/bulkcopy;使用 sp_dboption 設(shè)置。

8 = trunc. log on chkpt;使用 sp_dboption 設(shè)置。--//設(shè)完檢查點(diǎn)后即清除日志

16 = torn page detection,使用 sp_dboption 設(shè)置。--//殘缺頁檢測

32 = loading。

64 = pre recovery。

128 = recovering。

256 = not recovered。

512 = offline;使用sp_dboption 設(shè)置。

1024 = read only;使用 sp_dboption 設(shè)置。

2048 = dbo use only;使用

sp_dboption 設(shè)置。

4096 = single user;使用 sp_dboption 設(shè)置。--//單用戶

32768 = emergency mode。--//緊急恢復(fù)模式

4194304 = autoshrink。

1073741824 = cleanly shutdown。

注意:這里的status=28(28=16+8+4)三種模式的組合。

6、最后一步,需要將第1步中設(shè)置的“允許對系統(tǒng)目錄直接修改”一項(xiàng)恢復(fù)。因?yàn)槠綍r直接操作系統(tǒng)表是一件比較危險的事情。當(dāng)然,我們可以在企業(yè)管理器里面直接修改恢復(fù),也可以在查詢分析器中使用如下語句完成:

use master

go

sp_configure 'allow updates',0

reconfigure with override

go

執(zhí)行結(jié)果一般如下:

DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯誤信息,請與系統(tǒng)管理員聯(lián)系。

已將配置選項(xiàng) 'allow updates' 從 1 改為 0。請運(yùn)行 RECONFIGURE 語句以安裝。

7、修改mytest數(shù)據(jù)庫為多用戶模式

sp_dboption 'mytest','single

user',false

根據(jù)以上操作步驟執(zhí)行相關(guān)操作后,如果不出什么意外,你的數(shù)據(jù)就成功恢復(fù)了。

總結(jié)

以上是生活随笔為你收集整理的mysql置疑原因_SQL SERVER2000数据库置疑处理详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。