美文网首页
mongodb集群搭建,数据备份恢复,及从库重做

mongodb集群搭建,数据备份恢复,及从库重做

作者: W朱珠W | 来源:发表于2019-09-27 15:10 被阅读0次

1集群搭建

# 添加用户

groupadd mongo

useradd -g mongo mongo

# 创建目录

mkdir -p /app/mongodb/{db,bin,logs}/

chown -R mongo:mongo /app/mongodb

# 上传安装包并解压

tar zxvf mongodb-linux-x86_64-rhel70-3.6.9.tgz

mv mongodb-linux-x86_64-rhel70-3.6.9/bin/* /app/mongodb/bin/

# 生成key文件

openssl rand -base64 755 > /app/mongodb/keyfile

scp /app/mongodb/keyfile appuser@192.168.72.135:/tmp

scp /app/mongodb/keyfile appuser@192.168.72.136:/tmp

mv /tmp/keyfile /app/mongodb/keyfile

chmod 400 /app/mongodb/keyfile

chown mongo.mongo /app/mongodb/keyfile

# 配置文件

vi /app/mongodb/mongod.conf

[root@mongo-2 app]$ cat mongod.conf


systemLog:

  destination: file

  logAppend: true

  logRotate: rename

  path: /app/mongodb/logs/mongod.log

  timeStampFormat: iso8601-local

  traceAllExceptions: false

  verbosity: 0

processManagement:

  fork: true

  pidFilePath: /app/mongodb/mongod.pid

net:   

  bindIp: 0.0.0.0

  port: 27017

  maxIncomingConnections: 500

  unixDomainSocket:

    enabled: false

operationProfiling:

  mode: slowOp

  slowOpThresholdMs: 100   

security:

  authorization: enabled

  keyFile: /app/mongodb/keyfile

  javascriptEnabled: false

replication:

  oplogSizeMB: 102400      #oplog大小根据自己的磁盘大小而定

  replSetName: rs0

storage:

  dbPath: /app/mongodb/db

  directoryPerDB: true

  syncPeriodSecs: 60

  engine: wiredTiger

  journal:

    enabled: true

    commitIntervalMs: 100

  wiredTiger:

    engineConfig:

      cacheSizeGB: 24  #内存大小依据host内存而定


# 添加环境变量

echo -e '\n\nexport PATH=/app/mongodb/bin:$PATH\n' >> /etc/profile && source /etc/profile

# 启动数据库

方法一:su - mongo

mongod --config /app/mongodb/mongod.conf &

方法二:# cat start_mongo.sh

#!/bin/bash

sudo -u mongo /app/mongodb/bin/mongod --config /app/mongodb/mongod.conf &

# 配置复制集

use admin

config = { "_id":"rs0", "members":[  

  {"_id":0,"host":"192.168.72.134:27017"},  

  {"_id":1,"host":"192.168.72.135:27017"},  

  {"_id":2,"host":"192.168.72.136:27017"} ]}

rs.initiate(config);  #初始化集群

# 添加管理帐号

use admin

db.createUser({user:"admin",pwd:"********",roles:["root"]})

mongo --authenticationDatabase admin -uadmin -p******** --host 192.168.72.134 --port 27017

// Todo

db.createUser({user:'testing',pwd:'********', roles: [{ role: "dbOwner", db: "test" }]})

2数据备份

导出开发库

mongodump --host 10.10.10.1 --port 62710 -u root -p********  --authenticationDatabase admin

scp dump.zip testdb@10.10.10.2:/home/testdb/

导入到虚机Mongo

mongorestore --port 27017 --username admin --password ******** --authenticationDatabase=admin ./dump

3初始化从库,重新开始复制

#移除集群

rs.remove("192.168.72.135:27017")

rs.remove("192.168.72.136:27017")

#停从库

kill -9

#删除数据目录

cd /app/mongodb/db

rm -rf *

#开启从库

su - mongo

mongod --config /app/mongodb/mongod.conf &

#在主库上把从库加入集群

rs.add("192.168.72.135:27017")

rs.add("192.168.72.136:27017")

#在从库输入show dbs 命令时报错,是因为从库默认不可读,从库执行

rs.slaveOk()

相关文章

网友评论

      本文标题:mongodb集群搭建,数据备份恢复,及从库重做

      本文链接:https://www.haomeiwen.com/subject/svqauctx.html