1. 程式人生 > >MongoDB學習筆記——MongoDB 連線配置

MongoDB學習筆記——MongoDB 連線配置

 https://www.cnblogs.com/AlvinLee/p/6062167.html

--------------------------------------------------------------------------------

MongoDB Replica Set配置

https://blog.csdn.net/monkey_four/article/details/50837586

--------------------------------------------------------------------------------

MongoDB連線標準格式:

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

引數說明

Mongodb://

必填的字首,標識當前字串為便準連結格式

username:[email protected]

可選項,給出使用者名稱和密碼後,在連線資料庫伺服器後,驅動都會嘗試登陸這個資料庫

host

uri裡唯一的必填項,資料庫的連線地址,人如果需要連線副本集,需要制定多個主機地址

:port

可選項,如果不填則預設為27017埠

/database

希望連線到的資料庫名稱,只要在設定username:[email protected]後才會有效,如果不指定,則預設為admin資料庫

?options

可選項,如果不適用/database,則需要在前面加上/。所有連線選項都是鍵值對name=value格式,鍵值對之間使用&或;(分號)分割

   

options引數說明

connect=direct|replicaset

direct: 直接建立一個到伺服器的連線。如果指定了多個host,將按先後順序挨個嘗試建立連線,直到連線建立成功為止。如果只指定了一個host,則 direct 為預設值。

replicaset: 使用creplica set semantics建立連線(即使只提供了一個host)。指定的host作為種子列表來查詢完整的replica set。當指定多個host時 replicaset 為預設值。

replicaset=name

驅動驗證建立連線的replica set的名字。應用於 connect=replicaset。

slaveok=true|false

true: 對於 connect=direct 模式,驅動對列表中的第一個伺服器建立連線,即使它不是主伺服器。對 connect=replicaset 模式,驅動將所有寫操作傳送到主節點,將所有讀操作按round robin順序分發到從節點。

false: 對 connect=direct 模式,驅動按順序嘗試所有host直到找到主節點。對 connect=replicaset 模式,驅動將只連線到主節點,並將所有讀操作和寫操作都發送到主節點。

safe=true|false

true: 驅動在每次更新操作後都發送 getlasterror 命令以確保更新成功(參考 w 和 wtimeout)。

false: 驅動每次更新操作後不傳送 getlasterror 命令。

w=n

w:代表server的數量:。
w=-1 不等待,不做異常檢查

w=0 不等待,只返回網路錯誤

w=1 檢查本機,並檢查網路錯誤

w>1 檢查w個server,並返回網路錯誤

應用於safe=true

wtimeoutMS=ms

寫操作超時的時間,應用於 safe=true.

fsync=true|false

是不是等待重新整理資料到磁碟,應用於safe=true

journal=true|false

是不是等待提交的資料已經寫入到日誌,並重新整理到磁碟,應用於safe=true

maxPoolSize=n

minPoolSize=n

一些驅動會把沒用的連線關閉。 然而,如果連線數低於minPoolSize值之下, 它們不會關閉空閒的連線。注意:連線會按照需要進行建立,因此當連線池被許多連線預填充的時候,minPoolSize不會生效。

waitQueueTimeoutMS=ms

在超時之前,執行緒等待連線生效的總時間。如果連線池到達最大並且所有的連線都在使用,這個引數就生效了。

waitQueueMultiple=n

驅動強行限制執行緒同時等待連線的個數。 這個限制了連線池的倍數。

connectTimeoutMS=ms

可以開啟連線的時間。

socketTimeoutMS=ms

傳送和接受sockets的時間

ReadPreference

primary

主節點,預設模式,讀操作只在主節點,如果主節點不可用,報錯或者丟擲異常。

primaryPreferred

首選主節點,大多情況下讀操作在主節點,如果主節點不可用,如故障轉移,讀操作在從節點。

secondary

從節點,讀操作只在從節點, 如果從節點不可用,報錯或者丟擲異常。

secondaryPreferred

首選從節點,大多情況下讀操作在從節點,特殊情況(如單主節點架構)讀操作在主節點。

nearest

最鄰近節點,讀操作在最鄰近的成員,可能是主節點或者從節點

   

參考示例:

   

連線本地資料庫伺服器,埠是預設的。

   

mongodb://localhost

   

使用使用者名稱fred,密碼foobar登入localhost的admin資料庫。

   

mongodb://fred:[email protected]

   

使用使用者名稱fred,密碼foobar登入localhost的baz資料庫。

   

mongodb://fred:[email protected]/baz

   

連線 replica pair, 伺服器1為example1.com伺服器2為example2。

   

mongodb://example1.com:27017,example2.com:27017

   

連線 replica set 三臺伺服器 (埠 27017, 27018, 和27019):

   

mongodb://localhost,localhost:27018,localhost:27019

   

連線 replica set 三臺伺服器, 寫入操作應用在主伺服器 並且分佈查詢到從伺服器。

   

mongodb://host1,host2,host3/?slaveOk=true

   

直接連線第一個伺服器,無論是replica set一部分或者主伺服器或者從伺服器。

   

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

   

當你的連線伺服器有優先順序,還需要列出所有伺服器,你可以使用上述連線方式。

   

安全模式連線到localhost:

   

mongodb://localhost/?safe=true

   

以安全模式連線到replica set,並且等待至少兩個複製伺服器成功寫入,超時時間設定為2秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

  分類:  MongoDB       « 上一篇: MongoDB學習筆記——資料庫操作
» 下一篇: MongoDB學習筆記——集合管理

MongoDB連線標準格式:

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

引數說明

Mongodb://

必填的字首,標識當前字串為便準連結格式

username:[email protected]

可選項,給出使用者名稱和密碼後,在連線資料庫伺服器後,驅動都會嘗試登陸這個資料庫

host

uri裡唯一的必填項,資料庫的連線地址,人如果需要連線副本集,需要制定多個主機地址

:port

可選項,如果不填則預設為27017埠

/database

希望連線到的資料庫名稱,只要在設定username:[email protected]後才會有效,如果不指定,則預設為admin資料庫

?options

可選項,如果不適用/database,則需要在前面加上/。所有連線選項都是鍵值對name=value格式,鍵值對之間使用&或;(分號)分割

   

options引數說明

connect=direct|replicaset

direct: 直接建立一個到伺服器的連線。如果指定了多個host,將按先後順序挨個嘗試建立連線,直到連線建立成功為止。如果只指定了一個host,則 direct 為預設值。

replicaset: 使用creplica set semantics建立連線(即使只提供了一個host)。指定的host作為種子列表來查詢完整的replica set。當指定多個host時 replicaset 為預設值。

replicaset=name

驅動驗證建立連線的replica set的名字。應用於 connect=replicaset。

slaveok=true|false

true: 對於 connect=direct 模式,驅動對列表中的第一個伺服器建立連線,即使它不是主伺服器。對 connect=replicaset 模式,驅動將所有寫操作傳送到主節點,將所有讀操作按round robin順序分發到從節點。

false: 對 connect=direct 模式,驅動按順序嘗試所有host直到找到主節點。對 connect=replicaset 模式,驅動將只連線到主節點,並將所有讀操作和寫操作都發送到主節點。

safe=true|false

true: 驅動在每次更新操作後都發送 getlasterror 命令以確保更新成功(參考 w 和 wtimeout)。

false: 驅動每次更新操作後不傳送 getlasterror 命令。

w=n

w:代表server的數量:。
w=-1 不等待,不做異常檢查

w=0 不等待,只返回網路錯誤

w=1 檢查本機,並檢查網路錯誤

w>1 檢查w個server,並返回網路錯誤

應用於safe=true

wtimeoutMS=ms

寫操作超時的時間,應用於 safe=true.

fsync=true|false

是不是等待重新整理資料到磁碟,應用於safe=true

journal=true|false

是不是等待提交的資料已經寫入到日誌,並重新整理到磁碟,應用於safe=true

maxPoolSize=n

minPoolSize=n

一些驅動會把沒用的連線關閉。 然而,如果連線數低於minPoolSize值之下, 它們不會關閉空閒的連線。注意:連線會按照需要進行建立,因此當連線池被許多連線預填充的時候,minPoolSize不會生效。

waitQueueTimeoutMS=ms

在超時之前,執行緒等待連線生效的總時間。如果連線池到達最大並且所有的連線都在使用,這個引數就生效了。

waitQueueMultiple=n

驅動強行限制執行緒同時等待連線的個數。 這個限制了連線池的倍數。

connectTimeoutMS=ms

可以開啟連線的時間。

socketTimeoutMS=ms

傳送和接受sockets的時間

ReadPreference

primary

主節點,預設模式,讀操作只在主節點,如果主節點不可用,報錯或者丟擲異常。

primaryPreferred

首選主節點,大多情況下讀操作在主節點,如果主節點不可用,如故障轉移,讀操作在從節點。

secondary

從節點,讀操作只在從節點, 如果從節點不可用,報錯或者丟擲異常。

secondaryPreferred

首選從節點,大多情況下讀操作在從節點,特殊情況(如單主節點架構)讀操作在主節點。

nearest

最鄰近節點,讀操作在最鄰近的成員,可能是主節點或者從節點

   

參考示例:

   

連線本地資料庫伺服器,埠是預設的。

   

mongodb://localhost

   

使用使用者名稱fred,密碼foobar登入localhost的admin資料庫。

   

mongodb://fred:[email protected]

   

使用使用者名稱fred,密碼foobar登入localhost的baz資料庫。

   

mongodb://fred:[email protected]/baz

   

連線 replica pair, 伺服器1為example1.com伺服器2為example2。

   

mongodb://example1.com:27017,example2.com:27017

   

連線 replica set 三臺伺服器 (埠 27017, 27018, 和27019):

   

mongodb://localhost,localhost:27018,localhost:27019

   

連線 replica set 三臺伺服器, 寫入操作應用在主伺服器 並且分佈查詢到從伺服器。

   

mongodb://host1,host2,host3/?slaveOk=true

   

直接連線第一個伺服器,無論是replica set一部分或者主伺服器或者從伺服器。

   

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

   

當你的連線伺服器有優先順序,還需要列出所有伺服器,你可以使用上述連線方式。

   

安全模式連線到localhost:

   

mongodb://localhost/?safe=true

   

以安全模式連線到replica set,並且等待至少兩個複製伺服器成功寫入,超時時間設定為2秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000