目錄
2?????? 內(nèi)核參數(shù)調(diào)整... 2
2.4???????????? 啟動(dòng)ntp時(shí)間同步... 4
3.1???????????? 添加環(huán)境變量... 4
3.2???????????? 節(jié)點(diǎn)配置說明... 4
3.2.1???????? Mongod數(shù)據(jù)節(jié)點(diǎn)... 4
3.2.2???????? Config節(jié)點(diǎn)... 5
3.2.3???????? Route節(jié)點(diǎn)... 7
3.3???????????? 啟動(dòng)mongod. 7
3.4???????????? Config Replica-set配置... 7
3.5???????????? Shard Replica-set配置... 8
3.6.2???????? 添加Shard Replica-set用戶... 9
3.7???????????? Sharding配置... 9
3.8???????????? 檢查節(jié)點(diǎn)... 10
4.1???????????? 替換應(yīng)用war/jar包... 10
4.2???????????? 修改應(yīng)用mongo配置... 11
4.3.1???????? Mongo中移除注冊相關(guān)api配置... 11
4.3.2???????? Redis中移除注冊相關(guān)api緩存... 12
5.1???????????? 新集群關(guān)閉Balancer 12
5.2???????????? 舊集群數(shù)據(jù)導(dǎo)出... 12
5.3???????????? 新集群數(shù)據(jù)導(dǎo)入... 13
5.4???????????? 新集群創(chuàng)建索引... 14
5.5???????????? 新集群sequence處理... 14
5.6???????????? 新集群開啟Balancer 14
5.7???????????? 檢查數(shù)據(jù)分片狀況... 15
6?????? 啟動(dòng)應(yīng)用... 15
[if !supportLists]1??????[endif]部署規(guī)劃
分為3個(gè)sharding, 每個(gè)sharding是一個(gè)replica-set,每個(gè)replica-set包含兩個(gè)數(shù)據(jù)節(jié)點(diǎn)和一種仲裁(Arb)節(jié)點(diǎn)
[if !supportLists]2??????[endif]內(nèi)核參數(shù)調(diào)整
[if !supportLists]2.1??[endif]sysctl.conf
vi /etc/sysctl.conf
#加入:
vm.nr_hugepages= 0
vm.overcommit_memory=1
vm.zone_reclaim_mode=0
net.ipv4.tcp_syncookies?=?1
net.ipv4.tcp_tw_reuse?=?1
net.ipv4.tcp_tw_recycle?=?1
net.ipv4.tcp_max_tw_buckets?=?5000
net.ipv4.tcp_synack_retries?=?2
net.ipv4.tcp_syn_retries?=?2
net.ipv4.tcp_keepalive_time?=?1800
net.core.rmem_default?=?256960
net.core.rmem_max?=?513920
net.core.wmem_default?=?256960
net.core.wmem_max?=?513920
net.ipv4.tcp_wmem?=?8192?256960?16777216
net.ipv4.tcp_rmem?=?32768?256960?16777216
net.ipv4.tcp_max_orphans?=?3276800
net.ipv4.tcp_fin_timeout?=?30
net.core.somaxconn?=?16384
net.core.netdev_max_backlog?=?16384
kernel.msgmnb?=?655360000
kernel.msgmax?=?6553600
kernel.msgmni?=?4096
#生效
sysctl –p
[if !supportLists]2.2??[endif]limits.conf
vi /etc/security/limits.conf
#加入
*???? soft? nproc????? 65536
*???? hard nproc????? 65536
*???? soft? nofile????? 65536
*???? hard nofile????? 65536
[if !supportLists]2.3??[endif]其他
#關(guān)閉THP
echo?'never'?>?/sys/kernel/mm/transparent_hugepage/enabled
echo?'never'?>?/sys/kernel/mm/transparent_hugepage/defrag
cat/sys/kernel/mm/transparent_hugepage/enabled
cat/sys/kernel/mm/transparent_hugepage/defrag
#取消虛擬內(nèi)存限制
vi /etc/profile
加入
ulimit -v unlimited
. /etc/profile
#磁盤使用使用noatime,nodiratime
/dev/md2?/?ext4?defaults,noatime?0?0
mount?-o?remount?/
#設(shè)置較小的磁盤readahead參數(shù)值32(16KB)
blockdev --getra /dev/sda
blockdev --setra 32 /dev/sda
[if !supportLists]2.4??[endif]啟動(dòng)ntp時(shí)間同步
vi /usr/local/sbin/ntpddate.sh
killall ntpd
/usr/local/ntp-dev-4.2.7p26/bin/ntpdate10.95.99.56
crontab -e
1 * * * * /usr/local/sbin/ntpddate.sh
[if !supportLists]3??????[endif]Mongodb安裝
[if !supportLists]3.1??[endif]添加環(huán)境變量
MONGODB_HOME=/home/mongodb/mongodb-3.2
export PATH=$MONGODB_HOME/bin:$PATH
[if !supportLists]3.2??[endif]節(jié)點(diǎn)配置說明
在4臺(tái)服務(wù)器上建立mongodb相關(guān)目錄
mkdir -p/home/mongodb/{etc,mongoLog,mongoData}/
mkdir -p/home/mongodb/mongoData/{shard1,shard2,shard3,config}
[if !supportLists]3.2.1???????[endif]Mongod數(shù)據(jù)節(jié)點(diǎn)
shard1、shard2、shard3配置文件僅端口、數(shù)據(jù)和日志文件目錄不一樣
shard1端口27021,shard2端口27022,shard3端口27023
#shard1.conf
systemLog:
?quiet: true
?logAppend: true
?path: /home/mongodb/mongoLog/shard1.log
?destination: file
?traceAllExceptions: true
storage:
?engine: wiredTiger
?dbPath: /home/mongodb/mongoData/shard1
?directoryPerDB: true
?journal:
??enabled: true
?wiredTiger:
?engineConfig:
??directoryForIndexes: true
?collectionConfig:
??blockCompressor: snappy
?indexConfig:
??prefixCompression: true
processManagement:
?fork: true
net:
?port: 27021
?maxIncomingConnections: 50000
?http:
?enabled: false
operationProfiling:
?slowOpThresholdMs: 500
?mode: slowOp
security:
?keyFile: /home/mongodb/etc/mongodbkeyfile
?javascriptEnabled: false
replication:
?replSetName: shard1
?oplogSizeMB: 1000
sharding:
?clusterRole: shardsvr
[if !supportLists]3.2.2???????[endif]Config節(jié)點(diǎn)
三個(gè)config配置一樣;
#config.conf
systemLog:
?quiet: true
?logAppend: true
?path:/home/mongodb/mongoLog/config.log
?destination: file
?traceAllExceptions: true
storage:
?engine: wiredTiger
?dbPath: /home/mongodb/mongoData/config
?directoryPerDB: true
?journal:
??enabled: true
?wiredTiger:
?engineConfig:
??directoryForIndexes: true
?collectionConfig:
??blockCompressor: snappy
?indexConfig:
??prefixCompression: true
processManagement:
?fork: true
net:
?port: 4000
?http:
?enabled: false
operationProfiling:
?slowOpThresholdMs: 500
?mode: slowOp
security:
?keyFile: /home/mongodb/etc/mongodbkeyfile
?javascriptEnabled: false
replication:
?replSetName:config
?oplogSizeMB: 1000
sharding:
?clusterRole: configsvr
[if !supportLists]3.2.3???????[endif]Route節(jié)點(diǎn)
三個(gè)route配置相同
#route.conf
systemLog:
?quiet: true
?logAppend: true
?path: /home/mongodb/mongoLog/route.log
?destination: file
?traceAllExceptions: true
processManagement:
?fork: true
net:
?port: 4010
?http:
?enabled: false
security:
?keyFile: /home/mongodb/etc/mongodbkeyfile
sharding:
?configDB: config/10.95.216.87:4000, 10.95.216.89:4000,10.95.216.90:4000
?chunkSize: 64
[if !supportLists]3.3??[endif]啟動(dòng)mongod
登陸87、88、89、90
cd /home/monogdb/mongodb-3.2/bin
#禁用numa模式啟動(dòng)numactl --interleave=all
numactl --interleave=all mongod -f /home/mongodb/etc/shard1.conf
numactl --interleave=all mongod -f /home/mongodb/etc/shard2.conf
numactl --interleave=all mongod -f /home/mongodb/etc/shard3.conf
numactl --interleave=all mongod -f /home/mongodb/etc/config.conf
numactl --interleave=all mongos -f /home/mongodb/etc/route.conf
[if !supportLists]3.4??[endif]Config Replica-set配置
#登陸10.95.216.87
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 4000
config = {_id: 'config', configsvr:true,
members: [
{_id: 0, host: '10.95.216.87:4000',priority:1},
{_id: 1, host: '10.95.216.89:4000'},
{_id: 2, host: '10.95.216.90:4000'}]
};
rs.initiate(config);
rs.status();
[if !supportLists]3.5??[endif]Shard Replica-set配置
[if !supportLists]3.5.1???????[endif]Shard1
#登陸10.95.216.87
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 27021
config = {_id: 'shard1', members: [
{_id: 0, host: '10.95.216.87:27021',priority:1},
{_id: 1, host: '10.95.216.88:27021'},
{_id: 2, host: '10.95.216.90:27021', arbiterOnly: true}]
};
rs.initiate(config);
rs.status();
[if !supportLists]3.5.2???????[endif]Shard2
#登陸10.95.216.88
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 27022
config = {_id: 'shard2', members: [
{_id: 0, host: '10.95.216.88:27022',priority:1},
{_id: 1, host: '10.95.216.89:27022'},
{_id: 2, host: '10.95.216.90:27022', arbiterOnly: true}]
};
rs.initiate(config);
rs.status();
#登陸10.95.216.89
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 27023
config = {_id: 'shard3', members: [
{_id: 0, host: '10.95.216.89:27023',priority:1},
{_id: 1, host: '10.95.216.87:27023'},
{_id: 2, host: '10.95.216.90:27023', arbiterOnly: true}]
};
rs.initiate(config);
rs.status();
#登陸87
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 4010
#添加超級(jí)用戶
use admin
db.createUser( { user: "super",pwd: "Vip1@RfvUjm", roles: [ "root"] } );
db.auth("super","Vip1@RfvUjm");
#添加admin用戶
db.createUser({user:"admin",pwd:"Lvs1@RfvUjm",
?????????roles:["clusterAdmin","dbAdmin","dbAdminAnyDatabase",
????????????????????"userAdminAnyDatabase","readWriteAnyDatabase",
???????????? ??????{role:"readWrite",db:"config"}]
?????????});
#添加數(shù)據(jù)庫用戶
use db_uus
db.createUser( { user:"acctMongoUser", pwd: "7B6Yzxn8eh", roles: ["readWrite"] } );
#登陸87、88、89
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 27021
#添加超級(jí)用戶
use admin
db.createUser( { user: "super01",pwd: "Vip1@RfvUjm", roles: [ "root"] } );
db.auth("super01","Vip1@RfvUjm");
rs.status();
./mongo --port 27022
#添加超級(jí)用戶
use admin
db.createUser( { user: "super02",pwd: "Vip1@RfvUjm", roles: [ "root"] } );
db.auth("super02","Vip1@RfvUjm");
rs.status();
./mongo --port 27023
#添加超級(jí)用戶
use admin
db.createUser( { user: "super03",pwd: "Vip1@RfvUjm", roles: [ "root"] } );
db.auth("super03","Vip1@RfvUjm");
rs.status();
Sharding 配置
#登陸10.95.216.87
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 4010
use admin
db.auth("super","Vip1@RfvUjm");
db.runCommand({addshard:"shard1/10.95.216.87:27021,10.95.216.88:27021"});
db.runCommand({addshard:"shard2/10.95.216.88:27022,10.95.216.89:27022"});
db.runCommand({addshard:"shard3/10.95.216.89:27023,10.95.216.87:27023"});
sh.status();
use admin;
#登陸10.95.216.87
cd /home/monogdb/mongodb-3.2/bin
mongo --port 4010
use admin
db.auth("super","Vip1@RfvUjm");
sh.startBalancer();
sh.getBalancerState();
sh.isBalancerRunning();
#登陸10.95.196.191:
mongo --port 4010
use admin;
db.auth("admin","Lvs1@RfvUjm");
#開啟balancer
sh.startBalancer();
#登陸10.95.216.87
cd /home/monogdb/mongodb-3.2/bin
./mongo --port 4010
use admin
db.auth("super","Vip1@RfvUjm");
sh.status();