mongodb 副本集安装样例
节点信息
10.10.167.188
10.10.167.190
10.10.167.191
安装文件
| 1
2
3
4
5
6
7
8
 | # 在三个节点运行以安装文件
wget "http://url_to_get_software/mongodb-linux-x86_64-rhel70-4.4.4.tgz" 
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz
mkdir /data/mongodata
mv mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/
 | 
配置文件
根据实际情况修改三个节点的配置文件 /etc/mongod.conf
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 | processManagement:                                        #
   fork: true                                             #
net:                                                      #
   bindIp:                                          # 必须修改  127+内网 “,”分隔
   port: 27017                                            # 根据实际情况改
   maxIncomingConnections: 65536                          #
storage:                                                  #
   dbPath: /data/mongodata                                #  
   engine: wiredTiger                                     #
   wiredTiger:                                            #
      engineConfig:                                       #
         cacheSizeGB: 2                                   # 根据实际情况改 #默认1/2物理内存
systemLog:                                                #
   destination: file                                      #
   path: "/data/mongodata/mongodb.log"                    # 
   logAppend: true                                        #
storage:                                                  #
   journal:                                               #
      enabled: true                                       #
replication:                                              #
   replSetName: 7road_mongodb_replset                     # 根据实际情况改
   oplogSizeMB: 51200                                     # 根据实际情况改 #默认5%磁盘
security:                                                 #
   authorization: disabled                                #  只用于第一次启动,创建账号后注释
#   authorization: enabled                                 # 第一次启动不使用
#   clusterAuthMode: keyFile                               # 第一次启动不使用
#   keyFile: /data/mongodata/mongodb.key                   # 第一次启动不使用
 | 
启动三个节点
| 1
2
 | cd /usr/local/mongodb-linux-x86_64-rhel70-4.4.4
bin/mongod -f /etc/mongod.conf
 | 
设置副本集
| 1
2
 | # 进入主节点交互模式
bin/mongo 10.10.167.188:27017/admin
 | 
| 1
2
3
4
 | // 在主节点的交互命令行设置副本集
rs.initiate()
rs.add("10.10.167.190:27017")  	
rs.add("10.10.167.191:27017")  
 | 
创建管理员账号
| 1
2
3
4
5
6
7
8
9
 | // 在主节点的交互命令行创建管理员账号以便之后用认证模式
use admin;   
db.createUser(
 {
	user: "dba",
	pwd: "my_mongodb_passwd",
	roles: [ { role: "root", db: "admin" } ]
 }
)
 | 
重启集群
关闭集群
| 1
2
 | # 先关闭副本,再关闭主,防止架构发生变化
bin/mongod  --shutdown -f /etc/mongod.conf
 | 
修改配置文件
| 1
2
3
4
5
6
7
8
 | # 创建key文件
openssl rand -base64 756 > /data/mongodata/mongodb.key
# 复制key文件到每一个节点,启用认证时副本集必须
chmod 400  /data/mongodata/mongodb.key      # 必须更改文件权限,否则文件权限过高启动会报错
vim /etc/mongod.conf                        # 修改配置文件以启用认证模式
 | 
重新启动
| 1
2
3
 | # 先启动主,再启动副本
cd /usr/local/mongodb-linux-x86_64-rhel70-4.4.4
bin/mongod -f /etc/mongod.conf
 | 
其他操作
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 | // 在哪个库下创建账号,则必须在那个库下认证
use admin;
db.auth('dba','my_mongodb_passwd')
// 创建业务账号 基本只给指定库的读写权限即可
use my_db;   
db.createUser(
 {
	user: "my_account",
	pwd: "my_account_passwd",
	roles: [ { role: "readWrite", db: "my_db" } ]
 }
)
// 在SECONDARY节点时必须先运行以下才能进行其他操作,每次连接都需要操作。只能在PRIMARY节点进行更改操作。
rs.secondaryOk()  
// 查看集群的节点信息
rs.isMaster()
 |