使用 文檔數(shù)據(jù)庫(kù)服務(wù) (Document Database Service,簡(jiǎn)稱DDS)實(shí)例時(shí),實(shí)例連接失敗真是令人頭大。萬(wàn)事開(kāi)頭難,跟著小云妹,耐心閱讀本貼,讓你自學(xué)成才,實(shí)例連接自此暢通無(wú)阻!
順著以下幾個(gè)方面進(jìn)行排查,問(wèn)題就可以迎刃而解~
1. 排除 數(shù)據(jù)庫(kù) 實(shí)例異常
可能原因:DDS系統(tǒng)故障,實(shí)例狀態(tài)異常,實(shí)例或表被鎖定等。
解決方法:嘗試實(shí)例重啟功能。
2. 使用正確的客戶端連接方式
建議安裝使用4.0版本以上的MongoDB客戶端連接實(shí)例,以集群為例:
連接方式 | 使用場(chǎng)景 |
內(nèi)網(wǎng)方式 | 系統(tǒng)默認(rèn)提供內(nèi)網(wǎng)IP地址。當(dāng)應(yīng)用部署在ECS上,且該ECS與DDS實(shí)例處于同一區(qū)域,同一VPC時(shí),建議單獨(dú)使用內(nèi)網(wǎng)IP連接ECS與DDS實(shí)例。 |
公網(wǎng)方式 | 不能通過(guò)內(nèi)網(wǎng)IP地址訪問(wèn)DDS實(shí)例時(shí),使用公網(wǎng)訪問(wèn),建議單獨(dú)綁定 彈性公網(wǎng)IP 連接ECS(或公網(wǎng)主機(jī))與DDS實(shí)例。 |
3. 使用正確的SSL方式安全連接
1. (推薦)SSL方式:實(shí)例連接管理頁(yè)面的SSL開(kāi)關(guān)開(kāi)啟,并且上傳證書(shū)到ECS。
2. 普通方式:實(shí)例基本信息頁(yè)面的SSL開(kāi)關(guān)關(guān)閉。
4. 排除連接命令錯(cuò)誤
請(qǐng)獲取正確的連接地址、端口參數(shù)配置、用戶名和密碼、SSL方式下命令錯(cuò)誤,并重試連接實(shí)例。
SSL內(nèi)網(wǎng)連接集群示例:./mongo mongodb://rwuser:****@:,:/test?authSource=admin --ssl --sslCAFile --sslAllowInvalidHostnames
連接地址:
連接信息可在“實(shí)例管理”頁(yè)的“連接地址”列獲取。
圖1 連接地址
數(shù)據(jù)庫(kù)端口:
目標(biāo)實(shí)例的“連接管理”頁(yè)面,“內(nèi)網(wǎng)連接”頁(yè)簽的“數(shù)據(jù)庫(kù)端口”。
用戶名和密碼:
root管理員帳號(hào)及其對(duì)應(yīng)的密碼。
證書(shū)名稱:
SSL證書(shū)文件名,該文件需放在執(zhí)行該命令的路徑下。
SSL公網(wǎng)連接集群示例:./mongo mongodb://rwuser:****@:/test?authSource=admin --ssl --sslCAFile --sslAllowInvalidHostnames
連接地址:
單擊實(shí)例名稱,在實(shí)例“連接管理”頁(yè)面“公網(wǎng)連接”頁(yè)簽的公網(wǎng)連接地址處獲取。
數(shù)據(jù)庫(kù)端口:
目標(biāo)實(shí)例的“連接管理”頁(yè)面,“公網(wǎng)連接”頁(yè)簽的“數(shù)據(jù)庫(kù)端口”。
用戶名和密碼:
root管理員帳號(hào)及其對(duì)應(yīng)的密碼。
證書(shū)名稱:
SSL證書(shū)文件名,該文件需放在執(zhí)行該命令的路徑下。
5. 排除網(wǎng)絡(luò)不通
跨網(wǎng)段訪問(wèn)(配置IP映射)
1. 確保在源端ECS網(wǎng)絡(luò)與實(shí)例節(jié)點(diǎn)網(wǎng)絡(luò)連通,如果網(wǎng)絡(luò)不通,可以可以通過(guò)建立VPC對(duì)等連接進(jìn)行相關(guān)配置。
2. 在客戶端與副本集實(shí)例部署在不同網(wǎng)段的情況下需要進(jìn)行跨網(wǎng)段訪問(wèn)配置,例如訪問(wèn)副本集的客戶端所在網(wǎng)段為192.168.0.0/16,副本集所在的網(wǎng)段為172.16.0.0/24,則需要添加跨網(wǎng)段配置192.168.0.0/16才能正常訪問(wèn)。
內(nèi)網(wǎng)訪問(wèn)
1. 檢查ECS與RDS是否在同一個(gè)區(qū)域,VPC。
● 不同區(qū)域的云服務(wù)之間內(nèi)網(wǎng)互不相通,無(wú)法訪問(wèn)實(shí)例。請(qǐng)就近選擇靠近您業(yè)務(wù)的區(qū)域,可減少網(wǎng)絡(luò)時(shí)延,提高訪問(wèn)速度。
● 不同VPC下,可以通過(guò)建立VPC對(duì)等連接實(shí)現(xiàn)網(wǎng)絡(luò)互通。
2. 檢查安全組規(guī)則。
在ECS上測(cè)試是否可以正常連接到DDS實(shí)例地址的端口。
3. 安全組外訪問(wèn)安全組內(nèi)的DDS實(shí)例時(shí),需要為安全組添加相應(yīng)的入方向規(guī)則。
telnet <實(shí)例地址> {8635}
公網(wǎng)訪問(wèn)
1. 檢查安全組規(guī)則。
安全組外訪問(wèn)安全組內(nèi)的DDS實(shí)例時(shí),需要為安全組加相應(yīng)的入方向規(guī)則。
2. 檢查網(wǎng)絡(luò)ACL規(guī)則。
a. 進(jìn)入 虛擬私有云 網(wǎng)絡(luò)ACL列表。
b. 檢查EIP綁定的網(wǎng)卡是否在網(wǎng)絡(luò)ACL關(guān)聯(lián)的子網(wǎng)下。
c. 查看網(wǎng)絡(luò)ACL當(dāng)前是“開(kāi)啟”狀態(tài)還是“關(guān)閉”狀態(tài)。
d. 若網(wǎng)絡(luò)ACL為“開(kāi)啟”狀態(tài),需要添加ICMP放通規(guī)則進(jìn)行流量放通。
注意:網(wǎng)絡(luò)ACL的默認(rèn)規(guī)則是丟棄所有出入方向的包,關(guān)閉“網(wǎng)絡(luò)ACL”后,其默認(rèn)規(guī)則仍然生效。
3. 相同區(qū)域主機(jī)進(jìn)行ping測(cè)試。
如果在原ECS上沒(méi)有ping通DDS實(shí)例綁定的EIP,請(qǐng)?jiān)谙嗤瑓^(qū)域的另一臺(tái)ECS上去ping該EIP,如果可以正常ping通,說(shuō)明 虛擬網(wǎng)絡(luò) 正常,請(qǐng)?zhí)峤还温?lián)系華為云客服協(xié)助解決。
6. 排除實(shí)例的連接數(shù)滿的情況
1. 查看實(shí)例的連接數(shù)是否已達(dá)上限。
2. 云監(jiān)控服務(wù) 目前可以監(jiān)控?cái)?shù)據(jù)庫(kù)CPU、內(nèi)存、磁盤、連接數(shù)等指標(biāo),并且設(shè)置告警策略,出現(xiàn)告警時(shí)可以提前識(shí)別風(fēng)險(xiǎn)。
7. 連接失敗的常見(jiàn)報(bào)錯(cuò)及處理方法
1. Mongo Shell連接實(shí)例失敗,提示:isMaster。
該命令為非SSL方式下連接實(shí)例的命令,若實(shí)例已開(kāi)通SSL連接,執(zhí)行此命令會(huì)報(bào)錯(cuò)??捎靡韵路绞浇鉀Q:
。關(guān)閉SSL連接,使用非SSL方式下的命令連接實(shí)例。
。下載SSL證書(shū),將證書(shū)上傳到ECS目錄下(示例:/root/ca.crt),使用SSL方式下的命令連接實(shí)例。
2. Mongo Shell連接實(shí)例失敗,提示No route to host以及connection attempt failed。
可能是DDS實(shí)例的端口錯(cuò)誤,也可能是DDS實(shí)例與ECS不在同一個(gè)區(qū)域活子網(wǎng)??梢酝ㄟ^(guò)curl命令確認(rèn)到達(dá)DDS實(shí)例的網(wǎng)絡(luò)是否暢通。
3. Mongo Shell連接實(shí)例失敗,提示No route to host以及connection attempt failed。
可能是DDS實(shí)例的端口錯(cuò)誤,也可能是DDS實(shí)例與ECS不在同一個(gè)區(qū)域活子網(wǎng)。可以通過(guò)curl命令確認(rèn)到達(dá)DDS實(shí)例的網(wǎng)絡(luò)是否暢通。
4. Mongo Shell連接實(shí)例失敗,提示:Authentication failed。
可能是連接DDS實(shí)例命令中管理員密碼錯(cuò)誤。請(qǐng)重新輸入正確的管理員密碼。
5. Mongo Shell連接實(shí)例失敗,提示:couldn't connect to server。
可能是未設(shè)置正確的安全組策略,導(dǎo)致從安全組外訪問(wèn)安全組內(nèi)的DDS實(shí)例失敗。請(qǐng)?jiān)O(shè)置正確的安全組策略。
6. Mongo Shell連接實(shí)例失敗,提示:Cannot list multiple servers in URL without 'replicaSet' option。
可能是由于MongoDB客戶端版本太低導(dǎo)致的。請(qǐng)使用4.0版本以上的MongoDB客戶端連接實(shí)例。
7. Mongo Shell連接副本集實(shí)例失敗,提示:Cannot list multiple servers in URL without 'replicaSet'option。
可能是使用Connection String URI連接副本集實(shí)例時(shí),URI命令行沒(méi)有加雙引號(hào)。請(qǐng)將命令行添加雙引號(hào),再連接副本集實(shí)例。
8. Java驅(qū)動(dòng)連接實(shí)例失敗,提示:Timeout while receiving message。
可能是由于異常的慢查詢占用實(shí)例資源,導(dǎo)致CPU使用率激增甚至到達(dá)峰值,請(qǐng)檢查是否有慢查詢,建議添加索引進(jìn)行優(yōu)化。也可能是應(yīng)用端連接池的配置錯(cuò)誤導(dǎo)致,如超時(shí)時(shí)間的設(shè)置等,請(qǐng)檢查應(yīng)用端連接池的配置是否正確。
更多詳細(xì)內(nèi)容,趕緊戳這里,了解詳情吧~~
最新文章
- 華為云資料 2021年 3月刊
- 文檔數(shù)據(jù)庫(kù)服務(wù)DDS實(shí)例類型_MongoDB實(shí)例類型_華為云
- 文檔數(shù)據(jù)庫(kù)服務(wù)DDS常見(jiàn)故障排除_MongoDB常見(jiàn)故障排除_華為云
- MongoDB_文檔數(shù)據(jù)庫(kù)服務(wù)DDS_華為云
- 文檔數(shù)據(jù)庫(kù)服務(wù)DDS數(shù)據(jù)恢復(fù)_MongoDB數(shù)據(jù)恢復(fù)_華為云
- 文檔數(shù)據(jù)庫(kù)服務(wù)DDS參數(shù)模板管理_MongoDB參數(shù)管理_華為云