mongodb 文檔型資料庫以json格式存儲數據
mongodb與RDBMS最的區別在於:沒有固定的行列組織數據結構
mongodb數據存儲格式:BSON
二進位的JSON,JSON文檔的二進位編碼存儲格式
BSON有JSON沒有的Date和BinData
mongodb中的document以及BSON形式存放
安裝部署
系統準備
redhat或centos6.2以上系統
系統開發包完整
ip地址和hosts文件解析正常
iptables防火牆和SeLinux關閉
關閉大頁內存機制
在/etc/rc.local最後添加如下代碼
echo "永久關閉大頁內存機制"
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
echo "臨時關閉大頁內存機制" echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
其他版本參照官方文檔修改方法
修改/etc/security/limits.conf
* - nofile 65535
mongodb安裝
創建所需用戶和組
useradd mongod echo "mongod:mongod" | chpasswd
創建mongodb所需目錄結構
mkdir -p /mongodb/conf mkdir -p /mongodb/log mkdir -p /mongodb/bin mkdir -p /mongodb/data
下載軟體並解壓
cd /opt wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.12.tgz tar xf mongodb-linux-x86_64-rhel70-3.6.12.tgz cp -a /opt/mongodb-linux-x86_64-rhel70-3.6.12/bin/* /mongodb/bin
設置目錄結構權限
chown -R mongod:mongod /mongodb
設置環境變量
su - mongod cat >/home/mongod/.bash_profile <<EOF export PATH=/mongodb/bin/:\$PATH EOF source .bash_profile
啟動mongodb
su - mongod mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork
登錄mongodb
mongo
配置文件結構
mongodb推薦使用YAML格式
NOTE:
YAML does not support tab characters for identation: use spaces instead
--系統日誌有關
systemLog: destination: file path: "/mongodb/log/mongodb.log" --日誌位置 logAppend: true--日誌位置追加模式記錄
--數據存儲有關
storage: journal: enabled: true --是否開啟日誌 dbPath: "/mongodb/data" --數據路徑的位置
--進程控制
processManagement: fork: true --後臺守護進程 pidFilePath: <string> --pid文件的位置,一般不用配置,可以去掉這行,自動生成到data中
--網絡配置有關
net: bindIP: <ip> --監聽地址,默認監聽0.0.0.0 port: <port> --埠號,默認監聽27017
--安全驗證有關配置
security: authorization: enabled --是否打開用戶密碼驗證
配置文件示例
在mongod用戶下執行如下腳本
cat > /mongodb/conf/mongo.conf <<EOF systemLog: destination: file path: "/mongodb/log/mongodb.log" logAppend: true storage: journal: enabled: true dbPath: "/mongodb/data" processManagement: fork: true net: bindIp: 0.0.0.0 port: 27017 security: authorization: enabled EOF
關閉mongodb
mongod -f /mongodb/conf/mongo.conf --shutdown
啟動mongodb
mongod -f /mongodb/conf/mongo.conf
配置systemd管理mongodb
注意,需要以root權限操作管理mongodb
cat > /etc/systemd/system/mongod.service <<EOF [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] User=mongod Type=forking ExecStart=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf --shutdown PrivateTmp=true [Install] WantedBy=multi-user.target EOF
管理命令
注意:啟動時需要將原來普通用戶啟動的mongodb服務關閉,否則啟動失敗
systemctl restart mongod systemctl stop mongod systemctl start mongod
登錄mongodb
mongo show databases; use admin; show tables;