第六步、開始網(wǎng)絡(luò)配置進(jìn)行連接,對(duì)外提供服務(wù),使用的默認(rèn)的1433端口
當(dāng)上面的幾個(gè)重要的?統(tǒng)庫都已經(jīng)啟動(dòng)完成之后,下一步就是開始檢查網(wǎng)絡(luò)環(huán)境,進(jìn)行網(wǎng)絡(luò)服務(wù)的配置,對(duì)外進(jìn)行提供服務(wù)了,一般來講,在SQL Server中利用的網(wǎng)絡(luò)啟動(dòng)協(xié)議有三種:Shared Memory、Named Pope和TCP/IP,其實(shí)在日常我們最常用的就是TCP/IP這種方式了,并且默認(rèn)開啟的是1433端口。
我們來看一下正常啟動(dòng)過程中,該部?的詳細(xì)日志:

這?的Shared Memory是專供本地連接通過LPC(Local Procedure Call)技術(shù)向SQL Server做的連接。它不走網(wǎng)絡(luò)層,所以他是速度最快的連接方式。正常啟動(dòng)后會(huì)顯示上面的正常日志。
Named Pipe方式正常啟動(dòng),也會(huì)顯示出上面的日志??梢钥吹健?/p>
這其中我們最常用的TCP/IP這種方式,也正常的啟動(dòng)了,并且指定了兩種訪問方式,ipv4/ipv6,然后后面加上了1433端口號(hào)。
在這個(gè)過程中最常出現(xiàn)的問題就是,1433端口被其它程序占用,這樣就導(dǎo)致TCP/IP協(xié)議無法正常啟動(dòng),這樣我們會(huì)看到如下日志信?

并且在windows 系統(tǒng)日志?也會(huì)有記錄

解決方法:
其實(shí)這里出現(xiàn)的問題還是挺好解決的,只需要找到占用這個(gè)端口的應(yīng)用程序,采取措施讓它把這個(gè)端口給讓出來就可以。
當(dāng)然出現(xiàn)這些問題?意味著客戶端已經(jīng)無法通過TCP/IP這種遠(yuǎn)程連接的方式進(jìn)行連接訪問了。
這時(shí)候一般管理員可以采用SQL Server給其提供的“專用管理員連接”(DAC)進(jìn)行連接,這種方式我們以后再介紹。
當(dāng)然,在SQL Server啟動(dòng)的過程中,一般出現(xiàn)這種網(wǎng)絡(luò)問題,或者協(xié)議不能成功加載,SQL Server會(huì)報(bào)出錯(cuò)誤信息,但是一般情況下是不會(huì)影響SQL Server的正常啟動(dòng)的。受影響的可能只是出問題的那種協(xié)議功能。
我們只需要根據(jù)日志,定位問題,然后解決掉,重新啟動(dòng)就可以了。
-----------------------------------------------------分割線------------------------------------------------------------------
第七步、開始啟動(dòng)msdb系統(tǒng)數(shù)據(jù)庫
關(guān)于msdb這個(gè)系統(tǒng)數(shù)據(jù)庫,它是被安排在系統(tǒng)庫中接近最后一個(gè)了,除了用戶數(shù)據(jù)庫和臨時(shí)庫tempdb之外,當(dāng)啟動(dòng)過程中已經(jīng)進(jìn)行到這一步的時(shí)候,其實(shí)我們的實(shí)例就已經(jīng)啟動(dòng)起來了,并且能夠連接。
我們知道m(xù)sdb這個(gè)庫中主要的存儲(chǔ)的信息是應(yīng)用各個(gè)庫的備份信息,各種job的歷史跑批信息等,其實(shí)諸多的都是來自于用戶數(shù)?庫所產(chǎn)生的一些客觀數(shù)據(jù)。
我們來看一下這個(gè)庫出現(xiàn)了問題會(huì)產(chǎn)生什么現(xiàn)象:
我將這個(gè)庫文件移除走,然后重新啟動(dòng)服務(wù),啟動(dòng)過程中沒有報(bào)任何錯(cuò)誤,并且能夠順利啟動(dòng)?我們用SSMS直接連接過去,也可以正常連接

但是當(dāng)我們點(diǎn)擊開數(shù)據(jù)的時(shí)候,其實(shí)是看不到任何用戶數(shù)據(jù)庫的,并且會(huì)產(chǎn)生一個(gè)錯(cuò)誤提示:

看來是不能使用的,我們來查看一下錯(cuò)誤日志:

雖然這個(gè)庫的重要性比起master之類的庫重要性要稍顯差一些,但是缺少了它我們的SQL Server雖然能啟動(dòng),但是依然不能使用。
解決方法:
要解決這個(gè)問題其實(shí)方式就很多種了,因?yàn)榈酱宋覀兊腟QL Server實(shí)例已經(jīng)能夠正常啟動(dòng)了,我們可以采取:
1、利用備份還原該庫,參考文章前面的方式(推薦)
2、關(guān)掉服務(wù),利用暴力的拷貝文件的方式進(jìn)行恢復(fù),簡單有效,非常規(guī)操作
3、找臺(tái)相同的環(huán)境,找到相同的文件,直接拷貝?來使用
4、利用安裝文件進(jìn)行恢復(fù)(不推薦)
---------------------------------------------------分割線---------------------------------------------------------------
第八步、啟動(dòng)用戶數(shù)據(jù)庫,并且完整各個(gè)庫的完整性校驗(yàn),并且在啟動(dòng)用戶數(shù)據(jù)庫之前,先將系統(tǒng)庫的tempdb進(jìn)行清空
本步驟所遇到的問題層出不窮,各種樣式,?打算再重新組織一篇文章,專門列舉,此篇就?介?了。
但有一點(diǎn)需要記?。涸谶@一步之前SQL Server會(huì)將tempdb這個(gè)系統(tǒng)庫清空掉,也就是說,每次的重啟操作,系統(tǒng)都會(huì)將tempdb清空,然后重建,這一步一般不會(huì)發(fā)生異常,成功之后會(huì)出現(xiàn)以下日志信息:

第九步、開始重建系統(tǒng)的另外一個(gè)數(shù)據(jù)庫tempdb
tempdb這個(gè)庫比較特殊,每次重啟的時(shí)候都是重新創(chuàng)建的,SQL Server會(huì)根據(jù)master數(shù)據(jù)庫里的記錄的信息以model數(shù)據(jù)庫為本進(jìn)行創(chuàng)建。所以只要我們保證model數(shù)據(jù)庫沒有問題,然后硬盤沒有問題,tempdb的數(shù)據(jù)庫文件就應(yīng)該沒有問題。
關(guān)于temdb這個(gè)庫的所有配置信息是存儲(chǔ)于master的數(shù)據(jù)庫中的,里面的內(nèi)容信息是存儲(chǔ)于model系統(tǒng)庫中的
這樣就帶來了一個(gè)問題,有時(shí)候我們的master的庫是從別的機(jī)器下面?zhèn)浞菹聛淼?,所以它里面?huì)記錄這個(gè)tempdb這個(gè)庫在原來機(jī)器上的路徑,這樣在啟動(dòng)創(chuàng)建的時(shí)候就會(huì)報(bào)錯(cuò)。
所以我們需要執(zhí)行以下命令更改這個(gè)庫路徑
a、用參數(shù)啟動(dòng)SQL Server
net start MSSQLSERVER /f /m /T3608
b.修改數(shù)據(jù)文件和日志文件路徑
ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,FILENAME='C:
ight path.... emdb.mdf');
go
ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,FILENAME='C:
ight path.... emdblog.ldf');
go
c.正常啟動(dòng)數(shù)據(jù)庫既可以
還有一種情況,就是創(chuàng)建該文件的時(shí)候,提供的硬盤空間不足,或者權(quán)限不夠,我們也是根據(jù)上面的方式,修改到一個(gè)正確的路徑,并且確保權(quán)限正確。
也可以更改temp文件的大小,默認(rèn)是4M,代碼如下:
ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,SIZE=100MB);
go
ALTER DATABASE tempdb MODIFY FILE(NAME=tempdev,SIZE=100MB);
go
至此,如果上面的整個(gè)過程都沒出問題的話,?個(gè)正常的SQL Server就可以啟動(dòng)成功的。
結(jié)語
本篇文章到此結(jié)束了.....此篇耗時(shí)三天.....為了盡可能的呈現(xiàn)出所有的問題現(xiàn)象,我對(duì)本地的SQL Server進(jìn)行了多種無情的蹂躪、各種的摧殘,力求能夠重顯各種不同的應(yīng)用場(chǎng)景問題現(xiàn)象,然后盡可能的找到合適的解決方案,當(dāng)然還有很多的情況沒有展現(xiàn)出來,后續(xù)遇到,會(huì)一一補(bǔ)充進(jìn)來,當(dāng)然有遇到不能解決的,也可以留言,我們一起分析解決。
關(guān)于用戶數(shù)據(jù)庫啟動(dòng)過程,這個(gè)過程是一個(gè)問題較易發(fā)生的步驟,神馬質(zhì)疑、恢復(fù)中、不可用等等現(xiàn)象,后續(xù)的文章中列舉分析。