国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術(shù)知識(shí)庫(kù) >  數(shù)據(jù)庫(kù) >  相關(guān)技術(shù)支持 >  SQL Server數(shù)據(jù)庫(kù)啟動(dòng)過(guò)程(用戶(hù)數(shù)據(jù)庫(kù)加載過(guò)程常見(jiàn)問(wèn)題)第一部分

SQL Server數(shù)據(jù)庫(kù)啟動(dòng)過(guò)程(用戶(hù)數(shù)據(jù)庫(kù)加載過(guò)程常見(jiàn)問(wèn)題)第一部分

2016-10-07 08:16:07 10772

此篇主要介紹的是SQL Server啟動(dòng)過(guò)程中關(guān)于用戶(hù)數(shù)據(jù)庫(kù)加載的流程,并且根據(jù)加載過(guò)程中所遇到的一系列問(wèn)題提供解決方案。

其實(shí)SQL Server作為微軟的一款優(yōu)秀RDBMS,它啟動(dòng)的過(guò)程中,本身所帶的那些系統(tǒng)庫(kù)發(fā)生問(wèn)題的情況相對(duì)還是很少的,我們?cè)谄匠J褂弥校鰡?wèn)的大部分集中于我們自己建立的用戶(hù)數(shù)據(jù)庫(kù)。

而且,相對(duì)于側(cè)重面而言,其實(shí)我們更關(guān)注的是我們自己建立的用戶(hù)數(shù)據(jù)庫(kù),假如系統(tǒng)數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題,甚至實(shí)例出現(xiàn)問(wèn)題,最壞的情況我們重搭環(huán)境,但是如果我們應(yīng)用的用戶(hù)數(shù)據(jù)庫(kù)壞掉了,那可不是重搭環(huán)境就能解決的。這牽扯到公司利益問(wèn)題,問(wèn)題嚴(yán)重性不言而喻!

閑言少敘,我們速度進(jìn)入本篇的正題。

 

上一篇我們介紹了SQL Server實(shí)例啟動(dòng)的過(guò)程,并且分析了其詳細(xì)的過(guò)程,而在這一流程中,有一個(gè)步驟非常關(guān)鍵,就是加載恢復(fù)用戶(hù)數(shù)據(jù)庫(kù)的過(guò)程,我們來(lái)截取這段日志信息:

 

上面是一個(gè)正常啟動(dòng)各個(gè)用戶(hù)庫(kù)的流程,SQL Server會(huì)采用多線程的進(jìn)行數(shù)據(jù)庫(kù)啟動(dòng),并且在這個(gè)過(guò)程中進(jìn)行一致性校驗(yàn),確保啟動(dòng)的數(shù)據(jù)庫(kù)能夠正常使用。

而這過(guò)程中會(huì)發(fā)生很多問(wèn)題,在分析問(wèn)題之前,我先要介紹SQL Server數(shù)據(jù)庫(kù)的幾個(gè)常見(jiàn)狀態(tài):

 RECOVERING(恢復(fù)中):

這個(gè)狀態(tài)表示數(shù)據(jù)在啟動(dòng)完成后,正在發(fā)生恢復(fù),也就是上面日志中的 Recovery過(guò)程,和其它的關(guān)系型數(shù)據(jù)庫(kù)一樣,SQL Server對(duì)所有的數(shù)據(jù)庫(kù)行為都是先寫(xiě)事務(wù)日志,然后在修改內(nèi)存中的數(shù)據(jù),然后通過(guò)后臺(tái)的一個(gè)進(jìn)程在適當(dāng)?shù)臅r(shí)候進(jìn)行寫(xiě)入硬盤(pán)(Lazy write),所以在數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中,磁盤(pán)中的數(shù)據(jù)并不是最新的,如果這個(gè)時(shí)候關(guān)閉了,在下一次啟動(dòng)過(guò)程中SQL Server就要根據(jù)事務(wù)日志中的記錄,將磁盤(pán)中的舊的數(shù)據(jù)改寫(xiě),改寫(xiě)過(guò)程為:

1、重做redo

2、回滾和撤銷(xiāo) undo/rollback

上面的目的就是為了保證數(shù)據(jù)庫(kù)一致性。

如果上面的流程發(fā)生了問(wèn)題,就會(huì)進(jìn)去到下面這個(gè)狀態(tài):

RECOVERY PENDING(掛起還原):

這個(gè)過(guò)程就是將恢復(fù)數(shù)據(jù)的過(guò)程掛起,掛起的原因基本就是不能正常打開(kāi)所用的數(shù)據(jù)庫(kù)文件。這里先記住這個(gè)狀態(tài)就行,我在后面的內(nèi)容會(huì)再現(xiàn)這個(gè)問(wèn)題,以及給出解決方案。

如果能找到文件或者能打開(kāi)文件,但是文件有問(wèn)題,機(jī)會(huì)出現(xiàn)下面這個(gè)狀態(tài):

SUSPECT(質(zhì)疑):

這個(gè)狀態(tài),我相信很多用戶(hù)如果在玩數(shù)據(jù)庫(kù)久了的時(shí)候,會(huì)偶爾遇到,相對(duì)于其它狀態(tài),這個(gè)狀態(tài)是出現(xiàn)最高的。

原因很簡(jiǎn)單:數(shù)據(jù)庫(kù)文件壞掉了。

當(dāng)經(jīng)歷了上面的這個(gè)幾個(gè)狀態(tài)都不出現(xiàn)問(wèn)題,上面的這幾個(gè)狀態(tài)下,數(shù)據(jù)庫(kù)都是不能使用的,會(huì)進(jìn)入到下面這個(gè)狀態(tài):

ONLINE(在線):

這個(gè)狀態(tài)應(yīng)該是最期待的了,數(shù)據(jù)庫(kù)在線,正常使用,默認(rèn)都是正常的在線狀態(tài)。

 

當(dāng)然,除了上面幾個(gè)數(shù)據(jù)自己形成的數(shù)據(jù)庫(kù)狀態(tài),在我們管理員處理數(shù)據(jù)庫(kù)的時(shí)候也會(huì)更改狀態(tài),這里我們順便提一下:

OFFLINE(離線):有在線狀態(tài)就有離線狀態(tài),很簡(jiǎn)單,讓數(shù)據(jù)庫(kù)離線,用戶(hù)不能使用

RESTORING(還原中):這個(gè)狀態(tài)很簡(jiǎn)單,管理員正在還原該數(shù)據(jù)庫(kù),不解釋

EMERGENCY(緊急):這個(gè)狀態(tài)也是管理員用的,就是說(shuō)明數(shù)據(jù)庫(kù)有問(wèn)題了,它正在盡量解決

 

以上幾個(gè)狀態(tài)中,發(fā)生在啟動(dòng)過(guò)程中,并且會(huì)發(fā)生問(wèn)題就是上面的RECOVERY PENDING(掛起還原)、SUSPECT(質(zhì)疑)、RECOVERING(恢復(fù)中)

我們依次來(lái)看:

RECOVERY PENDING(掛起還原)

出現(xiàn)這個(gè)狀態(tài)通常的原因是數(shù)據(jù)庫(kù)文件找不到,或者文件找到權(quán)限訪問(wèn)不到,我們來(lái)看該問(wèn)題報(bào)?信息:

在數(shù)據(jù)庫(kù)中存儲(chǔ)方式中,分為主文件組和輔助文件組和日志文件,為了展示方便我們特意建立了個(gè)測(cè)試庫(kù),來(lái)重現(xiàn)該部分問(wèn)題:


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: