轉自://http://f.dataguru.cn/thread-133804-1-1.html
在個人電腦尤其是虛擬機器上,適當使用參數可以加快進程啟動速度,減少磁碟佔用空間 如 mongod --replSet abc --dbpath 1 --port 27001 --oplogSize 50 --logpath log.1 --logappend --fork --smallfiles --nojournal
--replSet 叢集名 --dbpath 資料檔案儲存目錄 -port 連接埠 --oplogSize 動作記錄,這裡設定了50M,對於實驗環境足夠了,生產環境一般預設就好,5%的磁碟空間,當然越大越好 --logpath 記錄檔 --logappend 追加日誌方式 --fork 後台運行 --smallfiles 使用小檔案 --nojournal 不記錄動作記錄
使用以上命令啟動mongodb很快,而且佔用空間小
|
##################### 分割線 #############################
MongoDB複本集的快速搭建 轉載自: http://www.cnblogs.com/zjhptxl/p/3365685.html
在進行配置複本集的前先進行一點說明 在啟動單個mongod執行個體要啟用安全認證 只要在啟動的時候增加一個--auth啟動參數即可,但是複本集的安全認證不是這樣 他需要另外一個啟動參數 --keyFile 加上你的密匙檔案路徑 密匙檔案的內容產生可以使用linux命令隨機產生 openssl rand -base64 741 產生完後 密匙檔案的許可權必須設定成沒有使用者組和其他許可權的檔案 否則你的mongo執行個體啟動不了 切記!!!! 參考資料 http://docs.mongodb.org/manual/tutorial/generate-key-file/ 複本集的配置過程大致分為兩個步驟 1)啟動執行個體 2)初始化複本集 複本集的配置過程 1.啟動三個執行個體 有一個是仲裁節點 mongod --rest --replSet rs --port 40000 --dbpath /var/lib/mongodb/mongonode1 --directoryperdb --fork --logpath /var/log/mongo/mongodnode1.log --keyFile /root/authfile mongod --rest --replSet rs --port 40001 --dbpath /var/lib/mongodb/mongonode2 --directoryperdb --fork --logpath /var/log/mongo/mongodnode2.log --keyFile /root/authfile mongod --rest --replSet rs --port 40002 --dbpath /var/lib/mongodb/mongoarbiter --fork --logpath /var/log/mongo/mongodarbiter.log --nojournal --keyFile /root/authfile 當然你也可以使用設定檔進行啟動3份配置如下
# mongonode1.conf logpath=/var/log/mongo/mongodnode1.log logappend=true fork = true port = 40000 dbpath=/var/lib/mongodb/mongonode1 directoryperdb=true replSet=rs keyFile=/root/authfile rest=true
# mongonode2.conf logpath=/var/log/mongo/mongodnode2.log logappend=true fork = true port = 40001 dbpath=/var/lib/mongodb/mongonode2 directoryperdb=true replSet=rs keyFile=/root/authfile rest=true
# mongoarbiter.conf logpath=/var/log/mongo/mongodarbiter.log logappend=true fork = true port = 40002 dbpath=/var/lib/mongodb/mongoarbiter nojournal=true nohttpinterface = true replSet=rs keyFile=/root/authfile rest=true
2.串連到一個非仲裁節點的執行個體,進行初始化 初始化一個複本集,有3種方式可以: 1)db.runCommand({replSetInitiate : <config_object> } ) 2)rs.initiate(<config_object>) 3)rs.initiate()//先初始化,再通過rs.add、rs.remove等方法修改 開始執行如下命令 cfg={ "_id":"rs", "members":[{ "_id":0, "host":"192.168.247.45:40000" }] } rs.initiate(cfg) rs.add('192.168.247.45:40001') rs.add('192.168.247.45:40002',{ariterOnly:true}) 簡單測試 在主節點執行如下指令碼 for(var i=0;i<1000;i++){ db.zjh.insert({name:'mongo'+i,count:1-i}); } rs:PRIMARY> db.zjh.ensureIndex({count:1}); 到從節點執行個體進行查看 正確同步 至此你的複本集已經搭建完畢 可以進行你的各種測試了 members 數群組成員屬性說明(預設值在括弧中): _id:在複本集中的每一個成員都必須有一個_id表示,這個_id是通常是數字,從0開始增長。需要注意的是當其中一個成員退休了(指從複本集config中移除了),新加入的成員不能重新使用這個退休成員的_id; host:ip地址和連接埠號碼; arbiterOnly(false):如果是true,則表示這個成員為仲裁節點,不接收資料; buildIndexes(true):如果設定為false,則會阻止在這個節點上建立第二索引,通常這個節點是作為純粹的資料備份,從不用來被查詢。不過也因為此節點沒有第二索引,所以他寫入的東西很少,也就需要很少的記憶體和磁碟。_id的索引還是會被建立的。只有當priority屬性設定為0時,此項才能設定為false,一般不會用到這個選項; hidden(false):如果此項為true,不要告訴用戶端的此節點的存在,設定隱藏節點的原因是此節點的資料的使用模式和其他節點大為不同,比如:報表,統計,備份等。設定為ture時,允許你針對這個節點發送非主要查詢。 priority(1.0):權重,更高的權重會被選舉為主節點 tags({}):一個文檔代表這台伺服器的位置,有利於位置感知的讀寫。其實就是表示此節點位於哪個資料中心的,mongodb會根據tags找近的資料中心節點同步資料。 slaveDelay(0):同步資料的延遲,設定為0表示立即更新同步資料。 votes(1):此節點可以發出的投票數,一般不用修改他 settings 對象:settings對象可以在叢集建立起來以後用再進行設定,通常使用預設值