Azure SQL Database 連接問題是使用 SQL Database 的常見問題,本文將會詳細(xì)介紹 Azure SQL Database 連接出現(xiàn)問題時的常見問題及排查方法。具體常見原因及排查思路如下。
防火墻設(shè)置不正確
防火墻配置不正確是導(dǎo)致 Azure SQL Database 連接不了比較最常見的問題。如果從公網(wǎng)連接可能是沒有把公網(wǎng)連接的客戶端地址加入防火墻允許列表。如果是從 Azure 虛擬機連接,可能是沒有配置好虛擬網(wǎng)絡(luò)服務(wù)終節(jié)點。同時,也有可能用戶本地的防火墻設(shè)置規(guī)則比較復(fù)雜,沒有運行 Azure 平臺的 Cluster 訪問,導(dǎo)致連接不上。具體分析如下:
1.允許 Azure Cluster IP 訪問本地:
Azure 平臺一些 Cluster 的 IP,用于平臺上相應(yīng)服務(wù)的訪問。如果用戶本地有入站規(guī)則限制,就需要把使用的 Azure SQL DataBase 所在區(qū)域的 IP 加入到入站規(guī)則允許列表中,如果有本地有出站規(guī)則限制,就需要把 IP 加入到出站的允許列表中。
2.設(shè)置公網(wǎng)防火墻允許列表:
可以在 Azure SQL Database 的防火墻設(shè)置中添加公網(wǎng)防火墻允許列表,如果需要從公網(wǎng)訪問 Azure SQL 數(shù)據(jù)庫必須配置將訪問的客戶端的 IP 地址加入防火墻允許列表,如下所示:
3.配置虛擬網(wǎng)絡(luò)服務(wù)終結(jié)點:
如果需要從 Azure 虛擬機中訪問 Azure SQL DataBase,但是又關(guān)閉允許訪問 Azure 服務(wù),則需要將 Azure 虛擬機配置到 Azure SQL DataBase 中。
添加現(xiàn)有虛擬網(wǎng)絡(luò),然后選擇虛擬機所在的虛擬網(wǎng)絡(luò)進行啟用服務(wù)終結(jié)點,并且添加虛擬網(wǎng)絡(luò),具體如下所示:
使用不同方式登錄 Azure SQL DataBase 來縮小范圍
當(dāng)遇到 Azure SQL DataBase 連接不上時,有多種方法可以幫助排查縮小范圍。
1.嘗試使用不同工具連接:
遇到當(dāng)前 Azure SQL DataBase 連接不了的情況,可以嘗試使用不同的工具連接。例如,如果使用 SQL Server Management Studio 登錄失敗,則可以使用 Navicat 進行登錄排查是某個客戶端問題造成的。
2.登錄在同一個區(qū)域的相同配置的另一個 Azure SQL DataBase:
通過登錄和連接有問題的 Azure SQL DataBase 在同一個區(qū)域,且配置相同的 Azure SQL DataBase 來排除是否是訂閱下某個區(qū)域的所有 Azure SQL DataBase 都存在連接問題。
3.門戶上用查詢編輯器登入:
通過使用 Azure 門戶上的查詢編輯器進行登入,查看是否會報同樣的錯誤,從而排除由于防火墻設(shè)置造成的連接問題。
排除是否為網(wǎng)絡(luò)問題
通過在本地的 CMD 中運行 psping -t sqldb.database.chinacloudapi.cn:1433 和 nslookup sqldb.database.chinacloudapi.cn 這兩條命令來判斷是否存在網(wǎng)絡(luò)問題。正常沒有問題則顯示如下:
抓包進行排查
如果上述方法都沒有排查出問題,也可以在 Azure SQL DataBase 連接不上時,通過抓取網(wǎng)絡(luò)包或者應(yīng)用報進行查看,用來分析具體原因。
使用 WireShark 抓取網(wǎng)絡(luò)包
1.下載 WireShark (下載地址:Download WireShark)。
2.開始抓包:
3.調(diào)用接口訪問數(shù)據(jù)庫,結(jié)束后停止抓包,請?zhí)峁╅_始調(diào)用接口到獲取數(shù)據(jù)的日志(開始時間,獲取數(shù)據(jù)的時間)。
4.保存抓包文件,對抓包文件中有異常報錯的地方進行分析,或者可以對使用的 Azure SQL DataBase 的 IP 地址進行分析。也可以將網(wǎng)絡(luò)包發(fā)給 Azure 技術(shù)支持進行分析。
使用 Fiddler Trace 抓取應(yīng)用包
1.若還未安裝 Fiddler Trace,從 Downloading Telerik Fiddler 下載安裝。
2.打開 Fiddler,點擊 Tools > Fiddler Options。
3.點擊 HTTPS 標(biāo)簽。
4.確認(rèn)設(shè)置如下圖所示:
5.若 Fiddler 要求你允許它用 root 權(quán)限, 點擊 Yes。
6.復(fù)現(xiàn) register Microsoft.PowerBIDedicated 錯誤,讓 Fiddler 抓取網(wǎng)絡(luò)包.
7.當(dāng)確認(rèn) Fiddler 已抓到所需的信息后, 點擊 File,取消選中 Capture Traffic 來取消 Fiddler 抓包。
8.點擊 File > Save > All Sessions 保存文件,對抓包文件中有異常報錯的地方進行分析,也可以將網(wǎng)絡(luò)包發(fā)給微軟技術(shù)支持團隊進行分析。
其他排查方法
1.連接池配置內(nèi)容,查看 Log in 數(shù)量或者并發(fā)連接數(shù)達(dá)到該定價層的上限值。
可以參考文檔中不同定價層的連接數(shù)上限:使用基于 DTU 的購買模型的單一數(shù)據(jù)庫的資源限制。
2.如果使用 Redirect 連接方式,此方式只支持 JDBC 驅(qū)動 4.6 及以上版本,低于這個版本的需要升級版本型號。