標籤:
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為機械盤
[[email protected] ~]# 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
安裝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 二、MongoDB 3.0安裝配置faqhttp://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 相關的庫
ldd mongodb-linux-x86_64-rhel62-3.0.0/bin/mongodmongodb-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)
安裝好後
[root[@ccj-sf](/user/ccj-sf) export]# ldd /export/mongodb/bin/mongodlinux-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版本完全相同。如:
# cat mongod.cnf dbpath=/export/data/mongodb30/mongodlogpath=/export/data/mongodb30/log/mongod.logpidfilepath=/export/data/mongodb30/pid/mongod.piddirectoryperdb=truereplSet=a3logappend=truekeyFile=/export/data/mongodb30/keyport=20000fork=true
wireTiger引擎配置增加相關參數即可,以複本集為例,如:
# cat mongod.cnf dbpath=/export/data/mongodb30/mongodlogpath=/export/data/mongodb30/log/mongod.logpidfilepath=/export/data/mongodb30/pid/mongod.piddirectoryperdb=truereplSet=a3logappend=truekeyFile=/export/data/mongodb30/keyport=20000fork=truestorageEngine=wiredTigerwiredTigerCacheSizeGB=10wiredTigerStatisticsLogDelaySecs=0wiredTigerJournalCompressor=snappywiredTigerDirectoryForIndexes=truewiredTigerCollectionBlockCompressor=snappywiredTigerIndexPrefixCompression=1
YAML 格式設定檔:
2.6版本就引入,以上面複本集為例:
$ cat mongodb.cnf systemLog: destination: file path: /export/data/mongodb30/log/mongod.log logAppend: truestorage: journal: enabled: true dbPath: /export/data/mongodb30/mongod directoryPerDB: true engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 10 directoryForIndexes: true collectionConfig: blockCompressor: snappy indexConfig: prefixCompression: truenet: port: 20000replication: replSetName: a3 security: keyFile: /export/data/mongodb30/keyprocessManagement: 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/
CentOS 安裝 MongoDB