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

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

高可用mongodb集群的學(xué)習(xí)記錄(一安裝配置MongoDB-創(chuàng)新互聯(lián)

一安裝配置MongoDB

一、概述

NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為東河等服務(wù)建站,東河等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東河企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

NoSQL用于超大規(guī)模數(shù)據(jù)的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。

今天我們可以通過第三方平臺(如:Google,Facebook等)可以很容易的訪問和抓取數(shù)據(jù)。用戶的個人信息,社交網(wǎng)絡(luò),地理位置,用戶生成的數(shù)據(jù)和用戶操作日志已經(jīng)成倍的增加。我們?nèi)绻獙@些用戶數(shù)據(jù)進(jìn)行挖掘,那SQL數(shù)據(jù)庫已經(jīng)不適合這些應(yīng)用了, NoSQL數(shù)據(jù)庫的發(fā)展也卻能很好的處理這些大的數(shù)據(jù)。

NoSQL的優(yōu)點

高可擴(kuò)展性 可以橫向擴(kuò)展也可以縱向擴(kuò)展

分布式計算

低成本高性能

架構(gòu)的靈活性,半結(jié)構(gòu)化數(shù)據(jù)

沒有復(fù)雜的關(guān)系

MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

MongoDB 是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫.支持類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。所以這個非常方便,我們可以用sql操作MongoDB,從關(guān)系型數(shù)據(jù)庫遷移過來,開發(fā)人員學(xué)習(xí)成本會大大減少。如果再對底層的sql API做一層封裝,開發(fā)基本可以感覺不到mongodb和關(guān)系型數(shù)據(jù)庫的區(qū)別。同樣MongoDB也是號稱自己能夠快速搭建一個高可用可擴(kuò)展的的分布式集群

二、安裝配置與應(yīng)用

MongoDB可以在windows上安裝使用,同樣支持linux平臺。我這里選的是linux平臺安裝。

1. 首先下載并解壓安裝包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下載 tar  -zxvf mongodb-linux-x86_64-3.0.6.tgz                  # 解壓 mv  mongodb-linux-x86_64-3.0.6/  /usr/local/mongodb            # 將解壓包拷貝到指定目錄

把MongoDB的可執(zhí)行文件路徑加到PATH變量中(~/.bash_profile)

PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin

2. 創(chuàng)建所mongodb啟動需要的路徑和文件

mkdir /data/db #創(chuàng)建存放mongodb的數(shù)據(jù)文件夾 mkdir /usr/local/mongodb/logs/ #創(chuàng)建存放mongodb日志的文件夾 touch /usr/local/mongodb/logs/mongodb.log #創(chuàng)建存放mongodb的日志文件

3. 啟動mongodb服務(wù)。命令窗口直接執(zhí)行就行

[root@DB ~]# mongod  2017-11-14T13:14:19.809+0800 I JOURNAL  [initandlisten] journal dir=/data/db/journal 2017-11-14T13:14:19.809+0800 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed 2017-11-14T13:14:19.815+0800 I JOURNAL  [durability] Durability thread started 2017-11-14T13:14:19.815+0800 I JOURNAL  [journal writer] Journal writer thread started 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] MongoDB starting : pid=4287 port=27017 dbpath=/data/db 64-bit host=DB 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 16384 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] db version v3.0.6 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] build info: Linux build6.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] allocator: tcmalloc 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] options: {} 2017-11-14T13:14:19.849+0800 I NETWORK  [initandlisten] waiting for connections on port 27017

可以看到mongodb服務(wù)進(jìn)程以及啟動,開啟了27017端口等待連接了

另開一個命令窗口,使用mongo命令可以與mongodb進(jìn)行交互。由于它是一個JavaScript Shell,可以輸入簡單的算術(shù)運算測試一下:

[root@DB mongodb]# mongo  MongoDB shell version: 3.0.6 connecting to: test Server has startup warnings:  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 16384 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files. 2017-11-14T13:14:19.834+0800 I CONTROL  [initandlisten]  > 3+2 5

也可以插入一些簡單數(shù)據(jù),查詢驗證:

> db.a.insert({a:1}) WriteResult({ "nInserted" : 1 }) > db.a.find() { "_id" : ObjectId("5a0a7fa7766decd974b3ad3f"), "a" : 1 } >

三、mongodb啟動命令參數(shù)說明

mongod的主要參數(shù)有:

--quiet# 安靜輸出 --port arg# 指定服務(wù)端口號,默認(rèn)端口27017 --bind_ip arg# 綁定服務(wù)IP,若綁定127.0.0.1,則只能本機(jī)訪問,不指定默認(rèn)本地所有IP --logpath arg# 指定MongoDB日志文件,注意是指定文件不是目錄 --logappend# 使用追加的方式寫日志 --pidfilepath arg# PID File 的完整路徑,如果沒有設(shè)置,則沒有PID文件 --keyFile arg# 集群的私鑰的完整路徑,只對于Replica Set 架構(gòu)有效 --unixSocketPrefix arg# UNIX域套接字替代目錄,(默認(rèn)為 /tmp) --fork# 以守護(hù)進(jìn)程的方式運行MongoDB,創(chuàng)建服務(wù)器進(jìn)程 --auth# 啟用驗證 --cpu# 定期顯示CPU的CPU利用率和iowait --dbpath arg# 指定數(shù)據(jù)庫路徑 --diaglog arg# diaglog選項 0=off 1=W 2=R 3=both 7=W+some reads --directoryperdb# 設(shè)置每個數(shù)據(jù)庫將被保存在一個單獨的目錄 --journal# 啟用日志選項,MongoDB的數(shù)據(jù)操作將會寫入到j(luò)ournal文件夾的文件里 --journalOptions arg# 啟用日志診斷選項 --ipv6# 啟用IPv6選項 --jsonp# 允許JSONP形式通過HTTP訪問(有安全影響) --maxConns arg# 大同時連接數(shù) 默認(rèn)2000 --noauth# 不啟用驗證 --nohttpinterface# 關(guān)閉http接口,默認(rèn)關(guān)閉27018端口訪問 --noprealloc# 禁用數(shù)據(jù)文件預(yù)分配(往往影響性能) --noscripting# 禁用腳本引擎 --notablescan# 不允許表掃描 --nounixsocket# 禁用Unix套接字監(jiān)聽 --nssize arg (=16)# 設(shè)置信數(shù)據(jù)庫.ns文件大小(MB) --objcheck# 在收到客戶數(shù)據(jù),檢查的有效性, --profile arg# 檔案參數(shù) 0=off 1=slow, 2=all --quota# 限制每個數(shù)據(jù)庫的文件數(shù),設(shè)置默認(rèn)為8 --quotaFiles arg# number of files allower per db, requires --quota --rest# 開啟簡單的rest API --repair# 修復(fù)所有數(shù)據(jù)庫run repair on all dbs --repairpath arg# 修復(fù)庫生成的文件的目錄,默認(rèn)為目錄名稱dbpath --slowms arg (=100)# value of slow for profile and console log --smallfiles# 使用較小的默認(rèn)文件 --syncdelay arg (=60)# 數(shù)據(jù)寫入磁盤的時間秒數(shù)(0=never,不推薦) --sysinfo# 打印一些診斷系統(tǒng)信息 --upgrade# 如果需要升級數(shù)據(jù)庫  * Replicaton 參數(shù)   --------------------------------------------------------------------------------   --fastsync# 從一個dbpath里啟用從庫復(fù)制服務(wù),該dbpath的數(shù)據(jù)庫是主庫的快照,可用于快速啟用同步 --autoresync# 如果從庫與主庫同步數(shù)據(jù)差得多,自動重新同步, --oplogSize arg# 設(shè)置oplog的大小(MB)  * 主/從參數(shù)   --------------------------------------------------------------------------------   --master# 主庫模式 --slave# 從庫模式 --source arg# 從庫 端口號 --only arg# 指定單一的數(shù)據(jù)庫復(fù)制 --slavedelay arg# 設(shè)置從庫同步主庫的延遲時間  * Replica set(副本集)選項:   --------------------------------------------------------------------------------   --replSet arg# 設(shè)置副本集名稱  * Sharding(分片)選項   -------------------------------------------------------------------------------- --configsvr# 聲明這是一個集群的config服務(wù),默認(rèn)端口27019,默認(rèn)目錄/data/configdb --shardsvr# 聲明這是一個集群的分片,默認(rèn)端口27018 --noMoveParanoia# 關(guān)閉偏執(zhí)為moveChunk數(shù)據(jù)保存   可以把上述參數(shù)都寫進(jìn)mongodb.conf配置文件里: [root@DB mongodb]# cat mongodb.conf  dbpath=/data/db logpath=/usr/local/mongodb/logs/mongodb.log logappend=true port=27017 fork=true auth=false nohttpinterface=false bind_ip=192.168.221.160 journal=true quiet=true

啟動的時候使用-f參數(shù)引用這個位置即可

[root@DB mongodb]# mongod -f /usr/local/mongodb/mongodb.conf  about to fork child process, waiting until server is ready for connections. forked process: 4319 child process started successfully, parent exiting [root@DB mongodb]# ps -ef  |grep mongo root       4319      1  1 13:36 ?        00:00:00 mongod -f /usr/local/mongodb/mongodb.conf [root@DB mongodb]# mongo 192.168.221.160  MongoDB shell version: 3.0.6 connecting to: 192.168.221.160/test Server has startup warnings:  2017-11-14T13:36:25.213+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 2017-11-14T13:36:25.213+0800 I CONTROL  [initandlisten]  2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten]  2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten]  2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never' 2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten]  2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 16384 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files. 2017-11-14T13:36:25.214+0800 I CONTROL  [initandlisten]  > db.a.find() { "_id" : ObjectId("5a0a7fa7766decd974b3ad3f"), "a" : 1 } >

我們都知道,這種單實例的配置只適合學(xué)習(xí)開發(fā)時使用,生產(chǎn)肯定不會這么使用,不然單節(jié)點掛掉整條數(shù)據(jù)流全丟了

接下來一篇我們繼續(xù)學(xué)習(xí)mongodb主從的配置···

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞名稱:高可用mongodb集群的學(xué)習(xí)記錄(一安裝配置MongoDB-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://weahome.cn/article/hjcop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部