MongoDB學習筆記系列:(七) 服務器管理

1、mongoDB啓動配置詳講
一、啓動項 mongod --helpphp

    

  基本配置參數網站:http://www.uspcat.com/forum.php?mod=viewthread&tid=7722&extra=page%3D1mongodb

  1.一、利用config配置文件來啓動數據庫改變端口爲8888
  (1)mongodb.conf配置文件:
  dbpath=D:\Work\MongoDB\Data
  port=8888
  (2)mongodbConf.bat啓動文件:(設置環境變量)
 mongod.exe --config mongodb.conf
  (3)啓動mongo客戶端shell文件:
 mongo 127.0.0.1:8888
二、 中止mongoDB服務
 2.一、Ctrl+C組合鍵能夠關閉數據庫
    shell

 2.二、admin數據庫命令關閉數據庫,以下所示:
 > use admin
   switched to db admin
 > db.shutdownServer()
   Tue Aug 06 22:08:55.920 DBClientCursor::init call() failed
   server should be down...
   Tue Aug 06 22:08:55.930 trying reconnect to 127.0.0.1:8888
   Tue Aug 06 22:08:56.934 reconnect 127.0.0.1:8888 failed couldn't connect to server 127.0.0.1:8888
2、導出、導入、運行時備份和恢復
一、導出數據(中斷其餘操做)
 cmd命令:
 利用mongoexport命令導出:
  -d 指明要導出的數據庫;
  -c 指明要導出的表;
  -o 指明要導出的文件名;
  -csv 指定導出的csv格式;
  -q 過濾導出
  --type <json|csv|tsv>
 1.一、把數據庫foobar中的person文檔集合導出
  默認端口(27017):mongoexport -d foobar -c person -o d:/person.json
 1.二、導出其它主機數據庫的文檔集合
  非默認端口(8888):mongoexport --host 127.0.0.1 --port 8888 -d foobar -c person -o d:/person.json
二、導入數據(中斷其餘操做)
    2.一、參考API:http://cn.docs.mongodb.org/manual/reference/mongoimport
    2.一、把person文件導入到foobar數據庫中的person文檔
 默認端口(27017):mongoimport --db foobar --collection person --file d:/person.json
 非默認端口(8888): mongoimport --host 127.0.0.1 --port 8888 --db foobar --collection person --file d:/person.json
三、熱備份:
優勢:數據庫引擎無需離線。
缺點:不能保證數據完整性,操做時會下降mongodb性能。
(1)、運行時備份(mongodump)
 3.1.一、參考API:http://cn.docs.mongodb.org/manual/reference/mongodump
 3.1.二、導出127.0.0.1服務器下的8888下的foobar數據庫
        mongodump --host 127.0.0.1:8888 -d foobar -o d:/foobar
(2)、運行時恢復(mongorestore)
 3.2.一、參考API:http://cn.docs.mongodb.org/manual/reference/mongorestore
 3.2.二、刪除數據庫foobar,用剛纔導出的數據庫文件恢復數據庫
        mongorestore --host 127.0.0.1:8888 -d foobar -directoryperdb d:/foobar/foobar
四、冷備份(俗稱」懶人備份「)
 mongoDB是文件數據庫,這其實就能夠用拷貝文件的方式進行備份。
優勢:能夠徹底保證數據完整性,不影響數據庫性能。
缺點:須要數據庫引擎離線。
3、Fsync鎖和數據修復
一、Fsync鎖
1.一、mongoDB的簡單結構,以下圖所示:數據庫

    

1.二、上鎖和解鎖
(1)、上鎖:db.runCommand({fsync:1,lock:1});
(2)、解鎖:db.currentOp();
二、數據修復
當停電等看不可逆轉災難來臨的時候,因爲mongodb的存儲結構致使會產生垃圾數據。
在數據恢復之後,這些垃圾數據依然存在,這是數據庫提供一個自我修復的能力。
使用起來很簡單。示例以下:
db.repairDatabase();
4、用戶管理和安全認證
一、添加用戶
 1.一、爲admin數據庫添加root用戶和foobar數據庫的danny用戶
  use admin
  db.addUser("uspcat","123");
  use foobar
  db.addUser("yunfengcheng","123"); //
  db.addUser("readonly","123456",true);//只讀用戶
二、啓用用戶
 db.auth("名稱","密碼");
三、安全檢查() --auth
注意:
(1)只須要再從新啓動服務器的時候,指定auth參數.就能夠阻止客戶端的訪問和鏈接,以下:
 mongod --dbpath D:\Work\MongoDB\Data --rest --auth
(2)想要登陸驗證模塊生效,必須在admin庫中添加一個用戶(root),同時要指定auth參數。
3.一、非foobar的用戶是不能操做數據庫的,以下圖所示:json

            

3.二、啓用本身的用戶才能訪問數據庫,以下圖所示:安全

            

3.三、非admin數據庫的用戶不能使用數據庫命令,以下圖所示:服務器

            

3.四、admin數據庫中的數據通過認證爲管理員用戶,以下圖所示:ide

            

四、用戶刪除操做
db.system.users.remove({user:"testuser"})性能

五、限制特定IP地址訪問
這樣能夠避免來自公網上的惡意***。
MongDB能夠指定對外服務的綁定,默認設置爲空,即綁定在本機全部可用IP上,
對於商業系統,出於安全考慮,能夠綁定內網,減小外網訪問避免***。
只須要啓動時加bind_ip便可.
     mongod --bind_ip 192.168.1.100    //啓動mongodb時綁定ip192.168.1.100
此時客戶端想訪問192.168.1.100上的服務器,就須要顯示地指定鏈接的IP地址是192.168.1.100。
     mongo 192.168.1.100網站

相關文章
相關標籤/搜索