1. 程式人生 > >Mongodb日常運維操作命令

Mongodb日常運維操作命令

恢復數據 數據導出 導入 comm .org mman against 列名 dba

本文源鏈接地址:https:www.93bok.com

一、啟動和終止

1、正常啟動
systemctl start mongodb
2、以修復模式啟動
mongod -f /etc/mongodb/mongodb.conf
3、停止修復模式
> use admin
> db.shutdownServer()
4、關閉mongodb服務
systemctl stop mongodb

二、登錄和退出

1、登錄

mongo 命令直接加MongoDB服務器的IP地址就可以利用 Mongo 的默認端口號(27017)登陸 Mongo,然後便能夠進行簡單的命令行操作

如果默認bind綁定的ip是127.0.0.1以及端口號是27017,那麽登錄可以直接用下面兩種方式都可以:
1)mongo
2)mongo 127.0.0.1:27017
如果綁定了固定的ip地址,如bing_ip=192.168.10.100,那麽連接mongodb命令為:
mongo 192.168.10.100:27017
如果是連接某個庫,命令是:
mongo ip:port/庫名 -u用戶名 -p密碼
2、退出

直接輸入exit,然後回車就好了

三、安全管理

1、以安全認證模式啟動
mongod --auth -f /etc/mongodb/mongodb.conf

或者也可以修改配置文件,設置auth=true,重啟mongodb進程即可

2、添加用戶
> db.createUser({user:"nongkaige",pwd:"123!@",roles:["readWrite","dbAdmin"]})
Successfully added user: { "user" : "nongkaige", "roles" : [ "readWrite", "dbAdmin" ] }
3、數據庫認證、安全模式
> db.auth("nongkaige","123!@")
1
4、顯示當前所有用戶
> show users
{
    "_id" : "nongkaige.nongkaige",
    "user" : "nongkaige",
    "db" : "nongkaige",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "nongkaige"
        },
        {
            "role" : "dbAdmin",
            "db" : "nongkaige"
        }
    ]
}
5、刪除用戶
> db.dropUser("nongkaige")
true
6、為數據庫寫數據加鎖

說明:改操作已經對數據庫上鎖,不允許執行寫數據操作,一般在執行數據庫備份時有用

> db.fsyncLock()
{
    "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
    "lockCount" : NumberLong(1),
    "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
    "ok" : 1
}
7、查看當前鎖狀態
> db.currentOp()
    "fsyncLock" : true,
    "info" : "use db.fsyncUnlock() to terminate the fsync write/snapshot lock",
    "ok" : 1
8、解鎖
> db.fsyncUnlock()
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }

四、數據備份、恢復、導入、導出

1、備份全部數據庫
mkdir testbak
cd testbak/
mongodump
2018-03-27T16:41:07.876+0800    writing admin.system.users to 
2018-03-27T16:41:07.877+0800    done dumping admin.system.users (3 documents)
2018-03-27T16:41:07.877+0800    writing admin.system.version to 
2018-03-27T16:41:07.878+0800    done dumping admin.system.version (2 documents)

說明:默認備份目錄及數據文件格式為./dump/[databasename]/[collectionname].bson

2、備份指定數據庫
mongodump -d admin

說明:備份數據庫admin中的數據

3、備份一個數據庫中的某個集合
mongodump -d admin -c system.users

說明:備份數據庫admin中的system.users集合

4、恢復全部數據庫
cd testbak/
mongorestore --drop
2018-03-27T17:18:20.949+0800    using default ‘dump‘ directory
2018-03-27T17:18:20.950+0800    preparing collections to restore from
2018-03-27T17:18:20.953+0800    restoring users from dump/admin/system.users.bson
2018-03-27T17:18:20.971+0800    done

說明:將備份的所有數據庫恢復到數據庫,--drop指定恢復數據之前,刪除原來數據庫的數據,否則會造成恢復後的數據重復

5、恢復某個數據庫的數據
cd testbak/
mongorestore -d admin --drop
6、恢復某個數據庫中的某個集合
cd testbak/
mongorestore -d admin -c system.users --drop
7、向mongodb導入數據
mongoimport -d admin -c system.users --type csv --headerline --drop < csvORtsvFile.csv

說明:將文件csvORtsvFile.csv的數據導入到admin數據庫的system.users集合中,使用csv或tsv文件的列名作為集合的列名

需要註意的是,使用--headerline選項時,只支持csv和tsv文件。--type支持的類型有三個:csv、tsv、json

8、從mongodb導出數據
mongoexport -d admin -c system.users -q {} -f _id,title,url,spiderName,pubDate --csv > test.csv

說明:將admin數據庫中system.users集合的數據導出到test.csv文件,其中個選項含義:

-f指定csv列名為_id,title,url,spiderName,pubDate
-q指定查詢條件

五、基本日常操作命令

1、查看服務器上的數據庫
> show dbs
2、切換數據庫(如果沒有這個數據庫,自動創建)
> use config
3、查看數據庫中的所有集合
> show collections
4、查看當前所在數據庫
> db
5、創建數據庫

mongo 中創建數據庫采用的也是 use 命令,如果 use 後面跟的數據庫名不存在,那麽mongo將會新建該數據庫。不過,實際上只執行 use 命令後,mongo 是不會新建該數據庫的,直到你向該數據庫中插入了數據。

> use nongkaige
switched to db nongkaige
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

到這裏並沒有看到創建nongkaige數據庫

> db.nongkaige.insert({"name":"testdb"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin      0.000GB
config     0.000GB
local      0.000GB
nongkaige  0.000GB

這樣,就可以看到mongo創建了nongkaige數據庫

6、刪除數據庫(默認刪除當前所在庫,如果要刪除指定庫,使用use切換目錄再刪除)
> db.dropDatabase()
{ "dropped" : "nongkaige", "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
7、刪除集合
> use nongkaige
switched to db nongkaige
> show collections
nongkaige
> db.nongkaige.drop()
true
> show collections
>
8、查看當前mongodb版本
> db.version()
3.6.3
9、查看當前數據庫的連接機器地址
> db.getMongo()
connection to 127.0.0.1:27017
10、從指定機器上克隆數據庫
> db.cloneDatabase("192.168.10.110")
11、從指定機器上復制指定數據庫的數據到某個數據庫中
> db.copyDatabase("master_slave","nongkaige","127.0.0.1")
{ "ok" : 1 }

Mongodb日常運維操作命令