真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mongodb集群基礎(chǔ)知識

http://blog.csdn.net/luonanqin/article/details/8497860  MongoDB集群搭建的三種方式

成都創(chuàng)新互聯(lián)公司是一家成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需規(guī)劃網(wǎng)站,網(wǎng)站開發(fā)公司,于2013年創(chuàng)立是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。

NOSQL = Not Only SQL  mongodb存儲方式是文檔式存儲,并不是Key-Value形式。

Mongodb的三種集群方式的搭建:Replica Set / Sharding / Master-Slaver

Replica Set 副本集集群原理:(最簡單的集群方式)

主節(jié)點,備節(jié)點,仲裁節(jié)點。主備節(jié)點存儲數(shù)據(jù),仲裁節(jié)點不存儲數(shù)據(jù)。

客戶端同時連接主節(jié)點與備節(jié)點,不連接仲裁節(jié)點。

默認(rèn)設(shè)置下,主節(jié)點提供所有增刪查改服務(wù),備節(jié)點不提供任何服務(wù)。但是可以通過設(shè)置使備節(jié)點提供查詢服務(wù),這樣就可以減少主節(jié)點的壓力,當(dāng)客戶端進(jìn)行數(shù)據(jù)查詢時,請求自動轉(zhuǎn)到備節(jié)點上。這個設(shè)置叫做Read Preference Modes,同時Java客戶端提供了簡單的配置方式,可以不必直接對數(shù)據(jù)庫進(jìn)行操作。

仲裁節(jié)點是一種特殊的節(jié)點,它本身并不存儲數(shù)據(jù),主要的作用是決定哪一個備節(jié)點在主節(jié)點掛掉之后提升為主節(jié)點,所以客戶端不需要連接此節(jié)點。這里雖然只有一個備節(jié)點,但是仍然需要一個仲裁節(jié)點來提升備節(jié)點級別。

測試:一個是往主節(jié)點插入數(shù)據(jù),能從備節(jié)點查到之前插入的數(shù)據(jù)(查詢備節(jié)點可能會遇到某個問題,可以自己去網(wǎng)上查查看)。二是停掉主節(jié)點,備節(jié)點能變成主節(jié)點提供服務(wù)。三是恢復(fù)主節(jié)點,備節(jié)點也能恢復(fù)其備的角色,而不是繼續(xù)充當(dāng)主的角色。二和三都可以通過rs.status()命令實時查看集群的變化。

Sharding 分片集群:

和Replica Set類似,都需要一個仲裁節(jié)點,但是Sharding還需要配置節(jié)點和路由節(jié)點。就三種集群搭建方式來說,這種是最復(fù)雜的。

Master-Slaver 主備方式

官方已經(jīng)不推薦這種方式,搭建方式也相對簡單。

用過的人應(yīng)該知道m(xù)ongodb吃內(nèi)存的問題,解決辦法只能通過ulimit來控制內(nèi)存使用量,但是如果控制不好的話,mongodb會掛掉。

mongodb的安裝

執(zhí)行腳本 install_mongodb_20160510.sh  即可安裝mongodb服務(wù)。詳細(xì)請看redme

mongodb集群的安裝

常用命令

mongodb的啟動

/opt/server/mongodb/bin/mongod -f /opt/server/mongodb/mongodb.conf

/opt/server/mongodb/bin/mongod -f /opt/server/mongodb/mongodb.conf --fork  #單機環(huán)境/與配置文件有關(guān)系,具體請參看配置文件

mongodb的停止

kill -15 pid

pkill mongod

mongodb登錄方式

/opt/server/mongodb/bin/mongo 192.168.1.200:27017

查看狀態(tài)

rs.status()

刪除節(jié)點:

rs.remove("mongodb13.kk.net:27019")  #可以刪除節(jié)點

添加節(jié)點:

rs.addArb("mongodb13.kk.net:27019")  #可以添加節(jié)點,但這樣添加的節(jié)點為仲裁

mongodb副本集如何添加一個節(jié)點使其成為備節(jié)點呢?

在主節(jié)點上操作

use admin

cfg={ _id:"wlb", members:[ {_id:0,host:'192.168.11.215:27017',priority:2}, {_id:1,host:'192.168.11.187:27017',priority:1},{_id:2,host:'192.168.11.25:27017',arbiterOnly:true}] };

rs.reconfig(cfg);  #使配置生效

rs.status()

查看所有數(shù)據(jù)庫

show dbs

MongoDB 創(chuàng)建數(shù)據(jù)庫

use znx 

db

show dbs   #會發(fā)現(xiàn)創(chuàng)建的數(shù)據(jù)庫不在列表中,要想顯示需要插入數(shù)據(jù)

備節(jié)點若想查看數(shù)據(jù)庫,需要執(zhí)行如下命令,否則報13435錯誤

rs.slaveOk(true)

插入數(shù)據(jù)

db.znx.insert({"name":"dengyong"})

show dbs     #會顯示出znx數(shù)據(jù)庫,備節(jié)點也會顯示

查看全部數(shù)據(jù)表

show collections 

查看全部表記錄

db.znx.find()

刪除pushlog這張表

> db.Pushlog.drop()  #具體操作,輸入db.Pushlog.d后按table鍵,看有啥命令

true

備節(jié)點查看數(shù)據(jù),先執(zhí)行如下命令,否則會報錯

rs.slaveOk(true)

MongoDB 刪除數(shù)據(jù)庫

use znx

db.dropDatabase()   #執(zhí)行刪除命令

show dbs            #znx數(shù)據(jù)庫已刪除

參考鏈接:http://blog.csdn.net/chen88358323/article/details/50206651

mongodb創(chuàng)建用戶

use admin

db.createUser({user:"wjs",pwd:"wjs",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})   #創(chuàng)建用戶

show users                #查看用戶  需要先use數(shù)據(jù)庫

內(nèi)置角色:

    1. 數(shù)據(jù)庫用戶角色:read、readWrite;

    2. 數(shù)據(jù)庫管理角色:dbAdmin、dbOwner、userAdmin;

    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    4. 備份恢復(fù)角色:backup、restore;

    5. 所有數(shù)據(jù)庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    6. 超級用戶角色:root  

    // 這里還有幾個角色間接或直接提供了系統(tǒng)超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)

    7. 內(nèi)部角色:__system

    

具體角色:

Read:允許用戶讀取指定數(shù)據(jù)庫

readWrite:允許用戶讀寫指定數(shù)據(jù)庫

dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計或訪問system.profile

userAdmin:允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶

clusterAdmin:只在admin數(shù)據(jù)庫中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。

readAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限

readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限

userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限

dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。

root:只在admin數(shù)據(jù)庫中可用。超級賬號,超級權(quán)限

db.system.users.find()    #查看用戶

show users 

創(chuàng)建一個數(shù)據(jù)庫znx

use znx

創(chuàng)建一個普通用戶wxc

db.createUser({user:"wxc",pwd:"wxc",roles:[{role:"readWrite",db:"znx"}]}) 

釋放掉MongoDB占用的內(nèi)存

重啟服務(wù)來釋放內(nèi)存,或 使用MongoDB內(nèi)置的closeAllDatabases命令達(dá)到目的:

mongo> use admin 

mongo> db.runCommand({closeAllDatabases:1})

監(jiān)控MongoDB的內(nèi)存使用情況

db.serverStatus().mem


分享文章:mongodb集群基礎(chǔ)知識
標(biāo)題網(wǎng)址:http://weahome.cn/article/pccjej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部