更新 '数据库/mongodb/mongo单机扩展为集群.md'
This commit is contained in:
parent
fe5147b410
commit
001f78c5f5
1 changed files with 256 additions and 0 deletions
|
@ -0,0 +1,256 @@
|
||||||
|
* 注意:生产中一定要备份好数据,防止扩容过程中操作失误,导致数据丢失 *
|
||||||
|
## 单节点配置信息
|
||||||
|
```txt
|
||||||
|
# mongod.conf
|
||||||
|
|
||||||
|
# for documentation of all options, see:
|
||||||
|
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||||
|
|
||||||
|
# where to write logging data.
|
||||||
|
systemLog:
|
||||||
|
destination: file
|
||||||
|
logAppend: true
|
||||||
|
path: /var/log/mongodb/mongod.log
|
||||||
|
|
||||||
|
# Where and how to store data.
|
||||||
|
storage:
|
||||||
|
# dbPath: /var/lib/mongo
|
||||||
|
dbPath: /DATAQIKU/mongodata
|
||||||
|
journal:
|
||||||
|
enabled: true
|
||||||
|
# engine:
|
||||||
|
# mmapv1:
|
||||||
|
# wiredTiger:
|
||||||
|
|
||||||
|
# how the process runs
|
||||||
|
processManagement:
|
||||||
|
fork: true # fork and run in background
|
||||||
|
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
|
||||||
|
timeZoneInfo: /usr/share/zoneinfo
|
||||||
|
|
||||||
|
# network interfaces
|
||||||
|
net:
|
||||||
|
port: 27017
|
||||||
|
# bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
|
||||||
|
bindIp: 10.100.21.89
|
||||||
|
|
||||||
|
security:
|
||||||
|
authorization: enabled
|
||||||
|
|
||||||
|
#operationProfiling:
|
||||||
|
|
||||||
|
# replication:
|
||||||
|
|
||||||
|
#sharding:
|
||||||
|
|
||||||
|
## Enterprise-Only Options
|
||||||
|
|
||||||
|
#auditLog:
|
||||||
|
|
||||||
|
#snmp:
|
||||||
|
```
|
||||||
|
## 修改配置文件
|
||||||
|
```txt
|
||||||
|
# mongod.conf
|
||||||
|
|
||||||
|
# for documentation of all options, see:
|
||||||
|
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||||
|
|
||||||
|
# where to write logging data.
|
||||||
|
systemLog:
|
||||||
|
destination: file
|
||||||
|
logAppend: true
|
||||||
|
path: /var/log/mongodb/mongod.log
|
||||||
|
|
||||||
|
# Where and how to store data.
|
||||||
|
storage:
|
||||||
|
# dbPath: /var/lib/mongo
|
||||||
|
dbPath: /DATAQIKU/mongodata
|
||||||
|
journal:
|
||||||
|
enabled: true
|
||||||
|
# engine:
|
||||||
|
# mmapv1:
|
||||||
|
# wiredTiger:
|
||||||
|
|
||||||
|
# how the process runs
|
||||||
|
processManagement:
|
||||||
|
fork: true # fork and run in background
|
||||||
|
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
|
||||||
|
timeZoneInfo: /usr/share/zoneinfo
|
||||||
|
|
||||||
|
# network interfaces
|
||||||
|
net:
|
||||||
|
port: 27017
|
||||||
|
# bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
|
||||||
|
bindIp: 10.100.21.89
|
||||||
|
|
||||||
|
# 暂时注释安全配置
|
||||||
|
#security:
|
||||||
|
# authorization: enabled
|
||||||
|
|
||||||
|
#operationProfiling:
|
||||||
|
|
||||||
|
# 副本配置,增加如下配置项
|
||||||
|
replication:
|
||||||
|
oplogSizeMB: 4096
|
||||||
|
replSetName: rs0
|
||||||
|
|
||||||
|
#sharding:
|
||||||
|
|
||||||
|
## Enterprise-Only Options
|
||||||
|
|
||||||
|
#auditLog:
|
||||||
|
|
||||||
|
#snmp:
|
||||||
|
```
|
||||||
|
## 备机配置
|
||||||
|
安装与主机版本一致的mongo。
|
||||||
|
### 备机1
|
||||||
|
配置文件如下:
|
||||||
|
```txt
|
||||||
|
# mongod.conf
|
||||||
|
|
||||||
|
# for documentation of all options, see:
|
||||||
|
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||||
|
|
||||||
|
# where to write logging data.
|
||||||
|
systemLog:
|
||||||
|
destination: file
|
||||||
|
logAppend: true
|
||||||
|
path: /data/mongo-1/mongod.log
|
||||||
|
|
||||||
|
# Where and how to store data.
|
||||||
|
storage:
|
||||||
|
dbPath: /data/mongo-1/data
|
||||||
|
journal:
|
||||||
|
enabled: true
|
||||||
|
# engine:
|
||||||
|
# wiredTiger:
|
||||||
|
|
||||||
|
# how the process runs
|
||||||
|
processManagement:
|
||||||
|
fork: true # fork and run in background
|
||||||
|
pidFilePath: /data/mongo-1/mongod.pid # location of pidfile
|
||||||
|
timeZoneInfo: /usr/share/zoneinfo
|
||||||
|
|
||||||
|
# network interfaces
|
||||||
|
net:
|
||||||
|
port: 27018
|
||||||
|
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
|
||||||
|
|
||||||
|
|
||||||
|
security:
|
||||||
|
keyFile: /data/mongo.keyfile
|
||||||
|
authorization: enabled
|
||||||
|
|
||||||
|
#operationProfiling:
|
||||||
|
|
||||||
|
replication:
|
||||||
|
oplogSizeMB: 4096
|
||||||
|
replSetName: rs0
|
||||||
|
|
||||||
|
#sharding:
|
||||||
|
|
||||||
|
## Enterprise-Only Options
|
||||||
|
|
||||||
|
#auditLog:
|
||||||
|
|
||||||
|
#snmp:
|
||||||
|
```
|
||||||
|
### 备机2
|
||||||
|
配置文件如下:
|
||||||
|
```txt
|
||||||
|
# mongod.conf
|
||||||
|
|
||||||
|
# for documentation of all options, see:
|
||||||
|
# http://docs.mongodb.org/manual/reference/configuration-options/
|
||||||
|
|
||||||
|
# where to write logging data.
|
||||||
|
systemLog:
|
||||||
|
destination: file
|
||||||
|
logAppend: true
|
||||||
|
path: /data/mongo-2/mongod.log
|
||||||
|
|
||||||
|
# Where and how to store data.
|
||||||
|
storage:
|
||||||
|
dbPath: /data/mongo-2/data
|
||||||
|
journal:
|
||||||
|
enabled: true
|
||||||
|
# engine:
|
||||||
|
# wiredTiger:
|
||||||
|
|
||||||
|
# how the process runs
|
||||||
|
processManagement:
|
||||||
|
fork: true # fork and run in background
|
||||||
|
pidFilePath: /data/mongo-2/mongod.pid # location of pidfile
|
||||||
|
timeZoneInfo: /usr/share/zoneinfo
|
||||||
|
|
||||||
|
# network interfaces
|
||||||
|
net:
|
||||||
|
port: 27019
|
||||||
|
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
|
||||||
|
|
||||||
|
|
||||||
|
#security:
|
||||||
|
# authorization: enabled
|
||||||
|
|
||||||
|
#operationProfiling:
|
||||||
|
|
||||||
|
replication:
|
||||||
|
oplogSizeMB: 4096
|
||||||
|
replSetName: rs0
|
||||||
|
|
||||||
|
#sharding:
|
||||||
|
|
||||||
|
## Enterprise-Only Options
|
||||||
|
|
||||||
|
#auditLog:
|
||||||
|
|
||||||
|
#snmp:
|
||||||
|
```
|
||||||
|
## 启动mongo
|
||||||
|
```txt
|
||||||
|
mongod -f /etc/mongod.conf
|
||||||
|
```
|
||||||
|
## 初始化副本
|
||||||
|
### 登录mongo
|
||||||
|
三节点之一
|
||||||
|
```shell
|
||||||
|
# 以原节点为例
|
||||||
|
mongo --host 10.100.21.89
|
||||||
|
```
|
||||||
|
### 初始化rs
|
||||||
|
```shell
|
||||||
|
# 切换到admin
|
||||||
|
use admin
|
||||||
|
# 节点配置
|
||||||
|
conf={"_id":"rs0","members":[{"_id":0,"host":"10.100.21.89:27017"},{"_id":1,"host": "10.100.21.43:27018"},{"_id":2,"host": "10.100.21.44:27019"}]}
|
||||||
|
# 初始化
|
||||||
|
rs.initiate(conf)
|
||||||
|
# 查看集群状态
|
||||||
|
rs.status()
|
||||||
|
# 查看延时从库信息
|
||||||
|
rs.printSlaveReplicationInfo()
|
||||||
|
# 查看集群与主节点
|
||||||
|
rs.isMaster()
|
||||||
|
```
|
||||||
|
## 集群开启认证
|
||||||
|
### 创建超级管理用户
|
||||||
|
需要在主节点创建一个超级管理用户,若已创建,可以忽略
|
||||||
|
```shell
|
||||||
|
# 假设已登录主节点
|
||||||
|
use admin
|
||||||
|
db.createUser({user: "admin",pwd: "mDBAmgdb@",roles:[ { role: "root", db:"admin"}]})
|
||||||
|
```
|
||||||
|
### 创建keyfil文件
|
||||||
|
keyfile文件复制到三个节点上
|
||||||
|
```shell
|
||||||
|
$ openssl rand -base64 90 -out /data/mongo.keyfile
|
||||||
|
```
|
||||||
|
## 修改如下配置
|
||||||
|
```txt
|
||||||
|
security:
|
||||||
|
keyFile: /data/mongo.keyfile
|
||||||
|
authorization: enabled
|
||||||
|
```
|
||||||
|
## 重启各节点mongo
|
Loading…
Add table
Add a link
Reference in a new issue