外部服務器能否訪問文檔數據庫實例
外部服務器不能直接訪問DDS實(shi)例,訪問方(fang)式如(ru)下(xia):
- 將DDS實例與彈性云主機(Elastic Cloud Server,簡稱ECS)創建在同一個VPC下,通過ECS來訪問DDS實例。
- 對于開通公網訪問功能的DDS實例,可以通過外網進行訪問。
什么是文檔數據庫連接數
數(shu)據庫連接(jie)數(shu)表(biao)示應(ying)(ying)用程(cheng)序可以(yi)同時連接(jie)數(shu)據庫的(de)(de)數(shu)量,與您(nin)應(ying)(ying)用程(cheng)序或者(zhe)網站能(neng)夠支持的(de)(de)最大用戶數(shu)沒有(you)關系(xi)。
- 對于集群實例,一般指客戶端同mongos之間的連接數。
- 對于副本集實例,一般指客戶端同Primary節點和Secondary節點之間的連接數。
實例的連接數滿怎么處理?
連接數滿的提示
- 使用Mongo Shell連接實例時,出現以下提示,表示當前連接池的連接數已滿。
圖 提示信息
- 使用Python連接實例時,出現以下提示,表示當前連接池的連接數已滿。
pymongo.errors.ServerSelectionTimeoutError: connection closed, connection closed
處理方法一
您可以查詢節點當前連(lian)接(jie)(jie)數,以及當前連(lian)接(jie)(jie)來源,分析各(ge)個終端和(he)DDS實(shi)例分別建立(li)了多少連(lian)接(jie)(jie),并作出相應調(diao)整,具體請參見如(ru)何查詢及限制連(lian)接(jie)(jie)數。
處理方法二
實(shi)例的最大連接(jie)數可通過(guo)修(xiu)(xiu)改參(can)數“net.maxIncomingConnections”的值進行調整,修(xiu)(xiu)改后重(zhong)啟實(shi)例生效。如(ru)何修(xiu)(xiu)改參(can)數值請參(can)見編輯參(can)數組。
- 如果參數值是“default”,表示最大連接數為缺省值,并且與實例的規格相關,具體請參見數據庫實例規格。
- 如果調整連接數過大,可能導致服務崩潰,這時只能通過變更實例規格增加承載的連接數的數量,具體請參見變更集群實例的節點。
如果實例參(can)數組(zu)(zu)為默(mo)認(ren)參(can)數組(zu)(zu),由(you)于默(mo)認(ren)參(can)數組(zu)(zu)中不允許(xu)修改(gai)參(can)數值(zhi),您可以創(chuang)建一個參(can)數組(zu)(zu),并修改(gai)對應參(can)數值(zhi),修改(gai)后將(jiang)新參(can)數組(zu)(zu)關聯到該實例,具體(ti)請(qing)參(can)見變更參(can)數組(zu)(zu)。
如何查詢及限制連接數
下面(mian)以(yi)副本(ben)集實(shi)例為例,介紹如何查(cha)詢(xun)實(shi)例的(de)連接使用(yong)情況,以(yi)及(ji)設置連接池的(de)連接數。
查詢當前連接數
根據您購買的文檔數(shu)據庫實例規格不同,最(zui)大連(lian)接數(shu)也不同。
最大連接數是指(zhi)實例中每個節點(dian)的最大連接數。
示例:您(nin)購買了2核4GB規(gui)格的三節(jie)點副本(ben)集實(shi)例,那么(me)該實(shi)例的Primary節(jie)點和Secondary節(jie)點的最大連(lian)接數均為400,Hidden節(jie)點由于其架構特殊性(xing),不對(dui)外提(ti)供(gong)服務。
使用Mongo Shell連(lian)接(jie)副本(ben)集(ji)主(zhu)節(jie)點(dian)后,執(zhi)行命令db.serverStatus().connections查詢(xun)節(jie)點(dian)當(dang)前(qian)連(lian)接(jie)數。
replica:PRIMARY> db.serverStatus().connections
{ "current" : 7, "available" : 398, "totalCreated" : 818364 }
您(nin)需要關注(zhu)以下參數及對(dui)應的值:
- current:當前已經建立的連接數。
- available:當前可用的連接數。
查詢當前連接來源
- 使用Mongo Shell連接副本集主節點后,切換至admin數據庫。
replica:PRIMARY> use admin
- 執行命令db.runCommand({currentOp: 1, $all: true}),查詢連接來源。
通過分析命令(ling)的輸出結(jie)果,您可以查詢每個(ge)連(lian)(lian)接對(dui)應的來源(yuan)IP地址。從而得出各個(ge)終端(duan)和(he)DDS實例分別建立了(le)多(duo)少連(lian)(lian)接。
圖 輸出結果
如何限制終端的連接數
文檔數(shu)據庫(ku)服務(wu)支持通過Connection String URI登(deng)錄數(shu)據庫(ku)。通過Connection String URI登(deng)錄數(shu)據庫(ku)時,在URI末尾加上“&maxPoolSize=”,即(ji)可(ke)設置(zhi)連接池的連接數(shu)。
示例:使用Mongo Shell連(lian)接副本集實例時,限(xian)制連(lian)接池的連(lian)接數為10。
mongo "mongodb://rwuser:xxxxxxxxxx@192.168.168.116:8635,192.168.200.147:8635/test?authSource=admin&replicaSet=replica&maxPoolSize=10"
圖限制連接數
說明: 關于不同語(yu)言的客(ke)戶端(duan)如何限制連接池的數量,請參考MongoDB官網各語(yu)言客(ke)戶端(duan)的API文檔(dang)。
ECS無法連接到DDS實例的原因
遇到該(gai)問題,請參考以下步驟排(pai)查解決。以集群(qun)模式下實例(li)為(wei)例(li)說明(ming)。
步(bu)驟 1 先確認彈性云主機實例和(he)文檔數據庫實例是否在同一個虛擬私(si)有云。
- 如果在,執行步驟2。
- 如果不在,需要重新創建彈性云主機實例,使之和文檔數據庫實例在同一個虛擬私有云下。
步(bu)驟 2 查(cha)看彈性云主機(ji)實例是否添加安全(quan)組。
- 如果有,檢查安全組的配置規則是否滿足要求,然后執行步驟3。
- 如果沒有,從彈性云主機的實例詳情頁面,進入虛擬私有云頁面,選擇“安全組”,添加安全組。
步驟 3 在彈性(xing)云主機上,測試是否可(ke)以正常連接到(dao)文檔數據庫實例(li)地(di)址的端口。
telnet <實例地址> {8635}
- 如果可以通信,說明網絡是正常的,請檢查數據庫用戶和密碼。
- 如果端口不通,請聯系售后技術支持協助排查。
客戶端問題導致連接實例失敗?
客(ke)戶(hu)端問題導致連接文(wen)檔(dang)數(shu)據庫實例失敗,可以從以下(xia)幾(ji)個方面檢查。
1、彈性云主機的安全(quan)策略
對于Windows平臺,可檢查Windows的安全(quan)策略(lve)是否開(kai)放文檔數據庫(ku)端口(kou)。
對(dui)于Linux平臺,可使用(yong)iptables檢查(cha)防火墻(qiang)及端口的放行情況。
2、應用配置(zhi)錯誤常見(jian)的(de)有(you)IP寫錯、端(duan)口參(can)數配置(zhi)錯誤和JDBC等的(de)連接參(can)數配置(zhi)錯誤。
說明: 如問題仍(reng)未解(jie)決,請聯系售(shou)后(hou)技術支持。
服務端問題導致連接實例失敗
文檔數據(ju)庫服務端可(ke)能出現的問(wen)題如(ru)下(xia),請依次進(jin)行檢(jian)測。
1、連接數(shu)滿(man)導致連接失敗。
解決(jue)方法:通過(guo)云監控(kong)(kong)的資源監控(kong)(kong)功能查看(kan)連接數(shu)、CPU使(shi)用率等指標是否正常,如果達到(dao)上限,需要重啟文(wen)檔數(shu)據庫實(shi)例、斷開(kai)實(shi)例連接或擴容節點解決(jue)。
2、實例狀態異常,比如實例重啟(qi)卡住,文檔(dang)數據庫服務系統故障等(deng)。
解(jie)決方法:嘗(chang)試重(zhong)啟功能。如果無法解(jie)決,請聯系(xi)售后技術(shu)支持。
應用程序怎么訪問虛擬私有云中的文檔數據庫實例
您需(xu)要確保您的應用(yong)程序所在(zai)的彈性云主(zhu)機與文(wen)(wen)檔(dang)數(shu)據庫(ku)實例在(zai)同一個虛擬私(si)(si)有(you)云中。如(ru)果(guo)不在(zai),需(xu)要修改虛擬私(si)(si)有(you)云中的路由表和網(wang)絡ACL,以確保應用(yong)程序所在(zai)的彈性云主(zhu)機能夠訪問(wen)文(wen)(wen)檔(dang)數(shu)據庫(ku)服(fu)務。
應用程序是否需要支持自動重連數據庫
建議您(nin)的應用(yong)程(cheng)序支持自(zi)動重連數據庫,當(dang)數據庫重啟后,無需(xu)人工(gong)介入,應用(yong)會自(zi)動恢復,提供更高的可用(yong)性。
同(tong)時(shi)建議您的(de)應(ying)用(yong)程序采用(yong)長連(lian)接方式連(lian)接數據庫(ku),以降(jiang)低(di)資源消耗,提高性能。
創(chuang)建并(bing)登錄(lu)彈(dan)性(xing)云(yun)(yun)主(zhu)機,請參見《彈(dan)性(xing)云(yun)(yun)主(zhu)機用(yong)戶指南》中“創(chuang)建并(bing)登錄(lu)Windows彈(dan)性(xing)云(yun)(yun)主(zhu)機”或“創(chuang)建并(bing)登錄(lu)Linux彈(dan)性(xing)云(yun)(yun)主(zhu)機”的內容(rong)。
- 該彈性云主機用于連接文檔數據庫實例,需要與待連接的實例處于同一虛擬私有云子網內。
- 創建彈性云主機時,要選擇操作系統,例如Redhat6.6,并為其綁定EIP(Elastic IP,彈性IP彈性公網IP)。
- 正確配置安全組,使得彈性云主機可以通過文檔數據庫服務“基本信息”頁面下節點的“內網IP”訪問文檔數據庫實例。
MongoDB官網提供了針(zhen)對(dui)不同操作系統的客戶(hu)端安裝包,其二進制安裝包下載頁面鏈接為:。
下面將(jiang)以Red Hat Linux 7和MongoDB 3.4.0為例,介紹(shao)如何獲取相(xiang)應安(an)裝包并完成安(an)裝。
操作步驟
步驟(zou) 1 獲(huo)取安裝包。
1、進入官網下載鏈接地址:。
2、選擇(ze)(ze)“Server”,在“OS”中選擇(ze)(ze)“RHEL 7.0 Linux 64-bit x64”,單擊(ji)“All version binaries”。如(ru)下(xia)圖所示。
圖(tu) MongoDB官網頁(ye)面(mian)

3、在下載頁面(mian)中,單擊客戶端安裝包名(ming)稱“linux/mongodb-linux-x86_64-rhel70-3.4.0.tgz”,下載3.4.0版本的二進制安裝包。如(ru)下圖所示。
圖下載頁面

步驟 2 將安(an)裝包上(shang)傳到(dao)彈(dan)性云(yun)主(zhu)機上(shang)。如何(he)(he)登錄彈(dan)性云(yun)主(zhu)機,請參見(jian)16.4.8 如何(he)(he)創建并登錄彈(dan)性云(yun)主(zhu)機。
步驟 3 在(zai)彈性云主(zhu)機上,解(jie)壓安(an)裝(zhuang)包。
tar zxvf mongodb-linux-x86_64-rhel70-3.4.0.tgz
步驟 4 進(jin)入安裝包(bao)的“bin”文件夾下,獲取客戶端工具。
cd mongodb-linux-x86_64-rhel70-3.4.0/bin
其中(zhong),常用(yong)工具包含如下(xia):
- MongoDB客戶端mongo。
- 數據導出工具mongoexport。
- 數據導入工具mongoimport。
步驟 5 使(shi)用客戶(hu)端工具前,需要對工具賦予執(zhi)行(xing)權限。
- 執行chmod +x mongo,賦予連接實例的權限。
- 執行chmod +x mongoexport,賦予導出數據的權限。
- 執行chmod +x mongoimport,賦予導入數據的權限。
步驟 6 客戶端安裝(zhuang)成功(gong)后,如需連(lian)接實例(li),請(qing)參(can)見各實例(li)類型快速入門下“連(lian)接實例(li)”的(de)內容。
如何安裝Robo 3T工具
本章節介紹如(ru)何(he)獲(huo)取Robo 3T工具的安裝(zhuang)包并(bing)完成安裝(zhuang)。
操作步驟
步(bu)驟(zou) 1 打(da)開Robo 3T下載地址:,單擊“Download Robo 3T”。
圖下載頁面

步驟 2 在(zai)彈出(chu)框中,下載“robo3t-1.3.1-windows-x86_64-7419c406.exe”。
圖 下載工具

步驟 3 雙擊(ji)“robo3t-1.3.1-windows-x86_64-7419c406.exe”文件,開始執(zhi)行(xing)安裝。
步驟(zou) 4 安裝(zhuang)完成后,打開(kai)工具,界面展示(shi)(shi)如(ru)下圖所示(shi)(shi)。
圖工具主界面

步驟 5 工(gong)具安裝成(cheng)功后(hou),您可(ke)以通過工(gong)具連接實(shi)例。
- 連接集群實例,請參見通過公網連接集群實例。
- 連接副本集實例,請參見通過公網連接副本集實例。