CentOS 安裝 MongoDB

centos6.6下安裝MongoDB3.0.1

 

從MongoDB3.0版起,其安裝包比之前更細化,有的朋友可能不太瞭解區別,簡單說明一下:
Linux 64-bit legacy 這個版本即mongodb-linux-x86_64-3.0.1.tgz 不推薦在正式環境使用,這個版本特色是沒有鏈接ssl相關的庫,而且可能缺乏針對操做系統的一些性能優化,可是能夠測試用,安裝簡單。推薦按相應操做系統版本選擇對應的安裝包如centos6 rhel6選擇RHEL 6 Linux 64-bit,即mongodb-linux-x86_64-rhel62-3.0.1.tgz這個安裝包。

根據服務器的硬盤狀況,其中/home爲固態盤,/data爲固態盤 /storage爲機械盤php

[root@mail ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       197G  1.6G  186G   1% /
tmpfs            63G     0   63G   0% /dev/shm
/dev/sda1       380M   70M  290M  20% /boot
/dev/sdb1       733G  197M  696G   1% /data
/dev/sda5       410G  235M  389G   1% /home
/dev/sdc1       9.0T   40M  8.5T   1% /storage

linux

安裝openssl
#yum install -y openssl-devel openssl

# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.1.tgz
# tar xzvf mongodb-linux-x86_64-rhel62-3.0.1.tgz

# mkdir -p /home/local/
# mv mongodb-linux-x86_64-rhel62-3.0.1 /home/local/mongodb
# mkdir -p /data/mongodb
# mkdir -p /data/logs/mongodb
# touch /data/logs/mongodb/mongodb.log
# chmod -R 777 /data/logs/mongodb/mongodb.log

設置ulimit -n和ulimit -u的值大於20000。若是ulimit的值設置太低的話,當MongoDB處於       頻繁訪問的狀態下,將會產生錯誤,最終致使沒法鏈接到MongoDB實例。
# ulimit -n 25000
# ulimit -u 25000

# cd /home/local/mongodb/bin/
# vi mongodb.conf
port=20000 #端口
dbpath= /data/mongodb #數據文件存放目錄
logpath=/data/logs/mongodb/mongodb.log #日誌文件存放目錄
logappend=true #使用追加的方式寫日誌
fork=true #以守護程序的方式啓用,即在後臺運行
maxConns=5000 #最大同時鏈接數 默認2000
bind_ip=127.0.0.1,172.16.20.126 #只容許經過局域網IP:172.16.20.126及本機訪問
noauth=true #不啓用驗證
nohttpinterface=true
rest=false

設置防火牆,以便局域網內的其它服務器能夠訪問
vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000 -j ACCEPT

/etc/init.d/iptables restart

 

若是沒有numactl命令,使用yum安裝
yum install -y numactl

在proc中關閉NUMA
# echo 0 > /proc/sys/vm/zone_reclaim_mode  
# sysctl -w vm.zone_reclaim_mode=0


啓動命令:
# numactl --interleave=all /home/local/mongodb/bin/mongod --config /home/local/mongodb/bin/mongodb.conf

# numactl --interleave=all /home/local/mongodb/bin/mongod -f /home/local/mongodb/bin/mongodb.conf

about to fork child process, waiting until server is ready for connections.
forked process: 25071
child process started successfully, parent exiting


正常中止方法:
# ps aux | grep mongod
# kill  -2 PID

# /home/local/mongodb/bin/mongo -port 20000
> use  admin  
> db.shutdownServer();

2015-03-19T00:43:27.760+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-03-19T00:43:27.760+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

不重啓服務器的狀況下解決辦法,在Linux下執行:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

服務器重啓後當即生效辦法:
# vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi


開機自動啓動mongodb
# vi /etc/rc.d/rc.local
rm -rf /data/mongodb/mongod.lock
numactl --interleave=all /home/local/mongodb/bin/mongod -f /home/local/mongodb/bin/mongodb.conf

說明:啓動時必須加numactl --interleave=all
 
 
2、MongoDB 3.0安裝配置faq
http://webprox.redstonesrv.fr/browse.php/qU6OBihY/_2BTWuWx/rLZNRESq/MIu7der5/ISEOTGe5/jncv4QuE/LSbDvehs/W0d3g_3D/b29/
 

MongoDB 3.0版本安裝介質
MongoDB 3.0版本安裝包比之前更細化,有的朋友可能不太瞭解區別,簡單說明一下:
Linux 64-bit legacy 這個版本即mongodb-linux-x86_64-3.0.0.tgz 不推薦在正式環境使用,這個版本特色是沒有鏈接ssl相關的庫,而且可能缺乏針對操做系統的一些性能優化,可是能夠測試用,安裝簡單。
推薦按相應操做系統版本選擇對應的安裝包如centos6 rhel6選擇RHEL 6 Linux 64-bit,即mongodb-linux-x86_64-rhel62-3.0.0.tgz這個安裝包。
有朋友反應安裝不上,由於還須要安裝相應的依賴庫如OpenSSL 相關的庫。
以下所示,就是缺乏OpenSSL 相關的庫c++

ldd mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod
mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod: /usr/lib64/libssl.so.10: no version information available (required by mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod)
mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod: /usr/lib64/libcrypto.so.10: no version information available (required by mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod)
mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod: /usr/lib64/libcrypto.so.10: no version information available (required by mongodb-linux-x86_64-rhel62-3.0.0/bin/mongod)
linux-vdso.so.1 =>  (0x00007ffffd961000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003d5b600000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003d62e00000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003d60e00000)
librt.so.1 => /lib64/librt.so.1 (0x0000003d5be00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003d5ae00000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039bc800000)
libm.so.6 => /lib64/libm.so.6 (0x0000003d5ba00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003d5ce00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003d5b200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003d5aa00000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000003d61a00000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003d60a00000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003d5e200000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003d60600000)
libz.so.1 => /lib64/libz.so.1 (0x0000003d5c200000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003d61e00000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003d60200000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003d5d600000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003d5ca00000)

安裝好後web

[root[@ccj-sf](/user/ccj-sf) export]# ldd /export/mongodb/bin/mongod
linux-vdso.so.1 =>  (0x00007fff8f7ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6e0d5a9000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f6e0d33d000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f6e0cf59000)
librt.so.1 => /lib64/librt.so.1 (0x00007f6e0cd51000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6e0cb4d000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f6e0c846000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6e0c5c2000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6e0c3ac000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6e0c017000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6e0d7cf000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f6e0bdd3000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f6e0baed000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f6e0b8e8000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f6e0b6bc000)
libz.so.1 => /lib64/libz.so.1 (0x00007f6e0b4a6000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f6e0b29a000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f6e0b097000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6e0ae7d000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6e0ac5d000)

配置文件
mmapv1引擎,配置文件與2.x版本徹底相同。如:mongodb

# cat mongod.cnf 
dbpath=/export/data/mongodb30/mongod
logpath=/export/data/mongodb30/log/mongod.log
pidfilepath=/export/data/mongodb30/pid/mongod.pid
directoryperdb=true
replSet=a3
logappend=true
keyFile=/export/data/mongodb30/key
port=20000
fork=true

wireTiger引擎配置增長相關參數便可,以副本集爲例,如:centos

# cat mongod.cnf 
dbpath=/export/data/mongodb30/mongod
logpath=/export/data/mongodb30/log/mongod.log
pidfilepath=/export/data/mongodb30/pid/mongod.pid
directoryperdb=true
replSet=a3
logappend=true
keyFile=/export/data/mongodb30/key
port=20000
fork=true
storageEngine=wiredTiger
wiredTigerCacheSizeGB=10
wiredTigerStatisticsLogDelaySecs=0
wiredTigerJournalCompressor=snappy
wiredTigerDirectoryForIndexes=true
wiredTigerCollectionBlockCompressor=snappy
wiredTigerIndexPrefixCompression=1

YAML 格式配置文件:
2.6版本就引入,以上面副本集爲例:api

$ cat mongodb.cnf 
systemLog:
 destination: file
 path: /export/data/mongodb30/log/mongod.log
 logAppend: true
storage:
 journal:
  enabled: true
 dbPath: /export/data/mongodb30/mongod
 directoryPerDB: true
 engine: wiredTiger
 wiredTiger:
  engineConfig:
   cacheSizeGB: 10
   directoryForIndexes: true
  collectionConfig:
   blockCompressor: snappy
  indexConfig:
   prefixCompression: true
net:
 port: 20000
replication:
 replSetName: a3 
security:
 keyFile: /export/data/mongodb30/key
processManagement:
 pidFilePath: /export/data/mongodb30/pid/mongod.pid
 fork: true 
setParameter:
   enableLocalhostAuthBypass: false

單機去掉replication及keyfile設置便可,分片增長一些參數,如:
mongod增長性能優化

sharding:
 clusterRole: shardsvr

configer server服務器

sharding:
 clusterRole: configsvr

參考:
http://docs.mongodb.org/manual/reference/configuration-options/app

相關文章
相關標籤/搜索