mangoDB主从安装

MongoDB主从安装

主节点

解压

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.23.tgz

tar xf mongodb-linux-x86_64-3.6.23.tgz   -C /TRS/

改名

mv   mongodb-linux-x86_64-3.6.23  mongodb3.6.23

加环境变量

vi /etc/profile
export MONGODB_HOME=/TRS/mongodb3.6.23
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile

创建mongodb数据文件和日志文件的存放位置,并且对启动项进行配置

mkdir -p /TRS/mongodb3.6.23/data
mkdir -p /TRS/mongodb3.6.23/logs
vim   mongodb.conf

dbpath=/TRS/mongodb3.6.23/data  #数据文件存放目录
logpath=/TRS/mongodb3.6.23/logs/mongodb.log #日志存放目录
port=27017 #端口
fork=1 #以守护程序的方式启用,即在后台运行
logappend=true
maxConns=5000
#auth=true
#keyFile=/TRS/mongodb3.6.23/onlineimagemongo.key
bind_ip=0.0.0.0
wiredTigerCacheSizeGB=2  #限制内存大小
master=true

启动

# 启动数据库
mongod  -f mongodb.conf
#关闭数据库
mongod  -f mongodb.conf --shutdown
# 访问数据库
mongo
#再数据库中关闭方法
> use admin
> db.shutdownServer()

从库配置

与主从同样的操作只有配置文件不同

dbpath=/TRS/mongodb3.6.23/data  #数据文件存放目录
logpath=/TRS/mongodb3.6.23/logs/mongodb.log #日志存放目录
port=27017 #端口
fork=1 #以守护程序的方式启用,即在后台运行
logappend=true
maxConns=5000
#auth=true
#keyFile=/TRS/mongodb3.6.23/onlineimagemongo.key
bind_ip=0.0.0.0
slave=true
source=10.199.98.221:27017
autoresync=true

同步测试

> use testsalve
switched to db testsalve
> db
testsalve
> db.testsalve.insert({"name" : "测试同步"})
WriteResult({ "nInserted" : 1 })
> show collections
testsalve
> db.testsalve.find().pretty()
{ "_id" : ObjectId("5ad44d090dd23b7a5c1a983f"), "name" : "测试同步" }

  • 从库上查看是否同步
> rs.slaveOk();
> show dbs;
admin      0.000GB
config     0.000GB
local      0.000GB
testsalve  0.000GB
> use testsalve
switched to db testsalve
> db.testsalve.find().pretty()
{ "_id" : ObjectId("5ad44d090dd23b7a5c1a983f"), "name" : "测试同步" }
# 数据已同步过来

主库创建管理员用户

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

主库生成key文件并传送到从服务器上

openssl rand -base64 512 > onlineimagemongo.key
chmod 600 /TRS/mongodb3.6.23/onlineimagemongo.key

打开配置文件注释并重启mongodb

备份

1、语法:
        mongodump -h dbhost -d dbname -o dbdirectory
        参数说明:
            -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
            -d: 需要备份的数据库实例,例如:test
            -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
mongodump -u admin -p 123456 -d db1 -o /root/ --authenticationDatabase admin

恢复

1、语法:
       mongorestore -h dbhost -d dbname --dir dbdirectory
       参数或名:
           -h: MongoDB所在服务器地址
           -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
           --dir: 备份数据所在位置,例如:/opt
           --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除。
mongorestore   --authenticationDatabase admin  -uroot -p dR3522k -d igs --dir  igs
#!/bin/sh
DBUSER=root #备份用户
DBPASSWD=dR222  #密码
DB=igs   #数据库名
day=15   #日志保留天数   eg:30
 
 
 
BACKUP_DIR=/TRS/backup/mongo/$DB #备份目录
mkdir -p ${BACKUP_DIR}
 
#日期
DATESTR=`date +%Y%m%d`
 
#dump
/TRS/mongodb3.6.23/bin/mongodump -h127.0.0.1:27017 -u $DBUSER -p $DBPASSWD -d $DB -o  $BACKUP_DIR  --authenticationDatabase admin
 
 
# tar压缩
cd ${BACKUP_DIR}
tar -zcf ${DATESTR}.tar.gz     ${BACKUP_DIR}/${DB}
 
# 删除导出的sql文件
rm -rf ${BACKUP_DIR}/${DB}
 
#删除超过15天的备份
find  $BACKUP_DIR  -type f  -mtime  +${day} -name "*.tar.gz" |xargs rm -f
 
exit 22
posted @   追梦nan  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
MongoDB主从安装主节点从库配置备份恢复
点击右上角即可分享
微信分享提示