MongoDB學習筆記:命令列工具
阿新 • • 發佈:2022-02-14
本文更新於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]]
- 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:本地檔名,只用於
put
和get
子命令。
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:檢視每個資料庫的鎖狀態。