1. 程式人生 > 其它 >MongoDB學習筆記:命令列工具

MongoDB學習筆記:命令列工具

本文更新於2022-01-22,使用MongoDB 4.4.5。

目錄

bsondump

BSON檢視工具。

bsondump BSONFILENAME

mongo

JavaScript shell。

mongo [OPTION] [DB_NAME|HOST[:PORT][/DB_NAME]|MONGODB_URI] [JS_FILENAME[ ...]]

OPTION可為:

  • --nodb:啟動shell時不連線到任何mongod。
  • --norc:啟動shell時不載入使用者主目錄下的.mongorc.js。預設會載入。
  • --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於互動介面提示輸入密碼。
  • --quiet:不列印連線成功後的提示資訊。
  • --username|-u USERNAME:指定使用者名稱。

如不指定DB_NAME或HOST[:PORT][/DB_NAME或MONGODB_URI,預設連線到localhost:27017/test。

MONGODB_URI的格式為:mongodb://[USERNAME[:PASSWORD]@]HOST[:PORT][,...,HOST1[:PORT1]][/[DB_NAME]][?NAME=VALUE[&...&NAME1=VALUE1]]

。NAME=VALUE可為:

  • replicaSet=REPLSET_NAME:副本集名字。如使用此引數,可指定任意個(並不需要所有)HOST[:PORT],會自動選擇主節點連線。

如指定JS_FILENAME,則依次執行指令碼檔案然後退出(相對路徑根據shell執行目錄)。否則,以互動方式使用shell。

mongod

MongoDB伺服器。

mongod [OPTION]
mongod --replSet REPLSET_NAME
mongod --repair [--repairpath DST_DIR] [--dbpath DIR]

OPTION可為:

  • -v:日誌級別。不使用該選項則為最低值0;-vvvvv為最高值5(記錄幾乎所有操作,包括每一個請求處理的內容)。
  • --auth:啟用身份驗證。
  • --bind_ip:監聽的IP。
  • --dbpath DIR:資料目錄。預設為/data/db(Windows為當前驅動器)。
  • --config|-f FILENAME:配置檔案。命令列指定的選項可覆蓋配置檔案中的值。
  • --configsvr:作為配置伺服器啟動。預設埠為27019,預設資料目錄為/data/configdb。
  • --fork:建立後臺執行的子程序。需同時使用--logpath。
  • --directoryperdb:每個資料庫存放在單獨的目錄種。
  • --help:檢視幫助。
  • --journalCommitInterval MICROSECONDS:日記系統進行提交的時間間隔。單位為毫秒,最小為2,最大為500。
  • --logappend:以追加方式寫入日誌檔案。需同時使用--logpath。
  • --logpath FILENAME:日誌輸出檔案。如不指定則輸出至標準輸出。
  • --noprealloc:禁止預分配資料檔案。
  • --noscripting:禁止執行JavaScript指令碼。注意,某些shell輔助函式依賴於JavaScript指令碼。
  • --nounixsocket:不監聽UNIX套接字。
  • --port PORT:監聽的埠。預設為27017。
  • --profile LEVEL:設定系統分析器等級。0為關閉系統分析器,1為只記錄慢查詢,2為記錄所有操作。
  • --quiet:不輸出日誌。
  • --repair:修復資料。不會監聽埠,但會輸出日誌。
  • --repairpath DST_DIR:指定修復時複製檔案的目標目錄。
  • --replSet REPLSET_NAME:指定副本集名稱,作為副本集節點啟動。不使用此選項,則以單機模式啟動。
  • --shardsvr:作為分片啟動。預設埠為27018,
  • --slowms MICROSECONDS:設定系統分析器的慢查詢閾值。單位為毫秒。
  • --syncdelay SECONDS:將髒頁重新整理到磁碟的時間間隔。單位為秒。

配置檔案的格式如下:

  • #後面的內容作為註釋忽略。
  • 指定引數的語法為OPTION = VALUE。OPTION為命令列引數去掉--,如命令列引數為不需指定值的開關選項則VALUE設定為true

mongodump

資料備份工具。備份過程中會繼續執行寫入操作。

mongodump [OPTION]

OPTION可為:

  • --help:檢視幫助。
  • --oplog:同時轉儲備份過程中的操作日誌oplog,以獲得備份時間點的快照。如備份副本集,必需使用此選項。
  • --out|-o DUMPDIR:輸出目錄。預設為dump。輸出目錄中包含若干個名字為資料庫名的目錄,每個目錄中包含若干個集合名開頭的.bson資料檔案和.metadata.json元資料檔案。
  • --port PORT:伺服器的埠。
  • --version:檢視版本。

如連線至副本集,則會自動選擇一個備份節點執行備份操作。

如連線至mongos,則會備份所有分片。

mongofiles

GridFS工具。

mongofiles [OPTION] COMMAND [ARG]

OPTION可為:

  • --db|-d DBNAME:指定資料庫。
  • --help:檢視幫助。
  • --local|-l LOCALFILENAME:本地檔名,只用於putget子命令。

COMMAND [ARG]可為(FILENAME可為檔案路徑):

  • delete FILENAME:從GridFS中刪除檔案。
  • get FILENAME:將GridFS中的檔案下載到檔案系統中。
  • list [PREFIX]:列出GridFS中的檔案。以字首匹配查詢。如不指定字首,則列出所有檔案。
  • put FILENAME:將檔案系統中的檔案上傳到GridFS。
  • search SUBSTRING:在GridFS中搜索檔案。搜尋子串。

mongorestore

資料恢復工具。

mongorestore [OPTION] [DUMPDIR|BSONFILENAME]

OPTION可為:

  • --collection|-c COLLECTIONNAME:只恢復指定的集合。
  • --db|-d DBNAME:只恢復指定的資料庫。
  • --dir DUMPDIR:需恢復的備份資料目錄。預設為dump。
  • --drop:進行資料替換,在恢復集合前先刪除之。
  • --oplogReplay:重放操作日誌oplog,以獲得備份時間點的快照。
  • --port PORT:伺服器的埠。
  • --version:檢視版本。

如連線至mongos,則會恢復所有分片。

mongos

分片路由。

mongos [OPTION]
mongos --configdb CONFIG

OPTION可為:

  • --configdb CONFIG:指定配置伺服器,格式為REPLSET_NAME/HSOT_PORT<,...,HSOT_PORT>。
  • --maxConns N:指定最大連線數量。
  • --nosplit:關閉塊的拆分。
  • --port PORT:指定監聽埠。預設為27017。

mongostat

狀態統計工具。每隔一段時間輸出一次,統計自上一次輸出以來的資訊。可連線至副本集和分片叢集。

mongostat [OPTION] [INTERVAL_SECONDS]

OPTION可為:

  • --discover:尋找副本集或分片叢集的所有節點,針對每個節點也輸出一行資訊。

輸出包含以下欄位:

  • host:主機地址。
  • insert:插入的次數。
  • query:查詢的次數。
  • update:更新的次數。
  • delete:刪除的次數。
  • getmore:查詢遊標時獲取更多資料的次數。
  • command:執行命令的次數。
  • dirty:
  • used:
  • flushes:資料重新整理至磁碟的次數。
  • mapped:對映的記憶體大小。通常約等於資料目錄的大小。
  • vsize:正在使用的虛擬記憶體大小。通常為資料目錄的2倍(一次用於對映檔案,一次用於日記系統)。
  • res:正在使用的記憶體大小。通常應儘量接近機器的記憶體大小。
  • faults:
  • qrw:讀寫操作的佇列大小。即被阻塞的讀寫操作的數量。讀和寫以“|”分隔。
  • arw:讀寫的活躍客戶端數量。即正在進行讀寫的客戶端的數量。讀和寫以“|”分隔。
  • net_in:通過網路傳輸進來的位元組數。不必和作業系統的統計相等。
  • net_out:通過網路傳輸出去的位元組數。不必和作業系統的統計相等。
  • conn:開啟的連線數。包括輸入和輸出連線。
  • set:副本集名稱。
  • repl:副本集的節點狀態。
  • time:統計的時間點。

mongotop

集合實時監控工具。每隔一段時間輸出一次。

mongotop [OPTION] [INTERVAL_SECONDS]

OPTION可為:

  • --locks:檢視每個資料庫的鎖狀態。