当前位置: 首页 > news >正文

山西省网站建设制作农夫山泉软文300字

山西省网站建设制作,农夫山泉软文300字,分析一个网页设计,江苏网站建设哪家好MongoDB副本集搭建-docker 注:在进行副本集搭建前,请先将服务部署docker环境并正常运行。 #通过--platform指定下载镜像的系统架构 在这我用的是mongo:4.0.28版本 arm64系统架构的mongo镜像 docker pull --platformlinux/arm64 mongo:4.0.2#查看镜像是…

MongoDB副本集搭建-docker

注:在进行副本集搭建前,请先将服务部署docker环境并正常运行。

#通过--platform指定下载镜像的系统架构 在这我用的是mongo:4.0.28版本 arm64系统架构的mongo镜像
docker pull --platform=linux/arm64 mongo:4.0.2#查看镜像是否存在
docker image ls -a#docker镜像保存至本地  注:如果就是在当前服务器进行部署可不进行此操作,如果多台,可存储本地之后进行分发或独立下载
docker save -0 mongo:4.0.28.tar mongo:4.0.28

设计三个节点分别如下

名称数据存储位置优先级docker映射端口mongo启动端口
mongo1/data/mongo/data32701727017
mongo2/data/mongo/data12701727017
mongo3/data/mongo/data12701727017

容器启动

#mongo1
docker run --restart=always --name mongo -v /data/mongo/data:/data/db --network host -d mongo:4.0.28 mongod --replSet "rs0" --port 27017 --bind_ip 0.0.0.0 --dbpath /data/db --directoryperdb
#mongo2
docker run --restart=always --name mongo -v /data/mongo/data:/data/db --network host -d mongo:4.0.28 mongod --replSet "rs0" --port 27017 --bind_ip 0.0.0.0 --dbpath /data/db --directoryperdb
#mongo3
docker run --restart=always --name mongo -v /data/mongo/data:/data/db --network host -d mongo:4.0.28 mongod --replSet "rs0" --port 27017 --bind_ip 0.0.0.0 --dbpath /data/db --directoryperdb#注:--directoryperdb 选项是用于指定mongo每个数据库的数据文件都存储在单独的目录下

3个均启动完成,随便进入到一个容器里,如mongo,并连接到数据库

#进入容器
docker exec -it mongoDB /bin/bash#进入mongo终端
mongo

传入配置并初始化:

config={_id:"rs0",members:[{_id:0,host:"ip1:27017", priority:3},{_id:1,host:"ip2:27017", priority:1},{_id:2,host:"ip3:27017", priority:1}]}
rs.initiate(config);
或
rs.initiate({_id:"rs0",members:[{_id:0,host:'192.168.1.2:27017',priority:3},{_id:1,host:'192.168.1.3:27017',priority:1},{_id:2,host:'192.168.1.4:27017',priority:1}]
})

节点在经过短暂的同步后,登陆mongo的控制台会显示成rso:PRIMARY,备份节点会显示成rso:SECONDARY,此时副本集就安装好了。

验证

进入primary服务器,随便创建一个测试数据库和测试表数据:

rso:PRIMARY> use test
switched to db test
rso:PRIMARY> db.testCollection.insert({"key":"value"})
WriteResult({ "nInserted" : 1 })
rso:PRIMARY> db.testCollection.find()
{ "_id" : ObjectId("5c20a3d7c5d174307dc3d516"), "key" : "value" }

然后进入secondary服务器查一下数据,会出现如下结果:

rso:SECONDARY> use test
switched to db test
rso:SECONDARY> db.testCollection.find()
Error: error: {
"ok" : 0,
"errmsg" : "not master and slaveOk=false",
"code" : 13435,
"codeName" : "NotMasterNoSlaveOk"
}

这是因为secondary服务器在写多读少的应用使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由secondary来分担读的压力,primary只承担写操作,此时为了检测设置为slaveOk,并重新查询一下,会出现如下结果:

rso:SECONDARY> rs.slaveOk()
rso:SECONDARY> db.testCollection.find()
{ "_id" : ObjectId("5c20a3d7c5d174307dc3d516"), "key" : "value" }

可以检测到副本集生效了。这时候主动把primary宕机或者删除,就可以看到主节点转移到mongo2/3了。

4. 开启密码验证

副本集的验证与mongo单机开启验证不同:

mongo单机版本只需要在admin库中的system.user表里加好用户后就默认开启了验证模式。

mongo副本集在admin库中的system.user表里加好用户后,需要显示开启验证模式(启动参数添加:–auth),那么副本集之间的互相反问就需要用到keyFile了。

注:keyFile几个注意点:

  • 权限不能太大,不然会报“permissions on xxx are too open”
  • 权限不能太小,不然会报“permission denied”

因此我们在创建keyFile的时候首要先把权限赋值好:

#741可以改为任意数
openssl rand -base64 741 > /data/mongo/data/mongo_keyfile
chmod 600 /data/mongo/data/mongo_keyfile
#docker启动需要把赋为999
chown 999/data/mongo/data/mongo_keyfile#注:

添加用户,需要到主节点上进行添加

docker exec -it mongo bash
mongo
use admin
db.createUser({user: "admin",pwd: "password",roles: [ { role: "root", db: "admin" } ]})

添加好用户后重启副本集,启动带上验证和keyFile(每台执行)

1、
docker stop mongo && docker rm mongo2cat /data/mongo/init.sh
#!/bin/bash
cd `dirname $0`
dockerd --iptables=false >/dev/null 2>&1 &
sleep 1
docker start mongo >/dev/nul 2>&1
if [ "$?" != "0" ]
then
docker run --restart=always --name mongo -v /data/mongo/data:/data/db --network host -d mongo:4.0.28 mongod --replSet "rs0" --port 27017 --bind_ip 0.0.0.0 --dbpath /data/db --keyFile /data/db/mongo_keyfile --directoryperdb --auth
fi3bash /data/mongo/init.sh

重启完成后进行验证,与上一步的验证一致。这样带有权限验证的mongo副本集就创建完毕了。

mongo数据备份 docker

docker -run -it --rm --network host -v /data/mongo/backup:/data/mongo/backup mongo:4.0.28 /usr/bin/mongodump -h "ip地址" -u "用户名" -p "密码" -o /data/mongo/backup/$(date +%Y-%m-%d) --authenticationDatabase admin

mongo数据导入 docker

docker -run -it --rm --network host -v /data/mongo/backup:/data/mongo/backup mongo:4.0.28 /usr/bin/mongorestore -h "ip地址" -u "用户名" -p "密码" --authenticationDatabase=admin /data/mongo/backup/$(date +%Y-%m-%d)
http://www.mmbaike.com/news/69452.html

相关文章:

  • 企业网站建设要多少运营推广公司
  • 百度地图手机网站开发企业qq
  • 手机怎样做网站河北百度seo软件
  • python做网站性能友情视频
  • 百度网站优化工具百度搜索关键词排名优化推广
  • 如何建立网站视频教程网络平台推广运营有哪些平台
  • 阿里巴巴国际站运营培训软件推广怎么赚钱
  • 建站程序的作用免费建一级域名网站
  • 网站建没有前景爱站网能不能挖掘关键词
  • 深圳做网站的给说如何做企业网站
  • 陕西网站制作公司ping站长工具
  • 如何向google提交网站2345浏览器
  • 建立网站需要多少钱湖南岚鸿官网seo
  • wordpress导出全站链接seo多久可以学会
  • 怎么用虚拟主机做网站步骤微信视频号小店
  • 集团网站设计专业团队如何用手机制作网站
  • 常州市金坛建设局网站seo案例模板
  • 今日头条网站开发阿里巴巴数据分析官网
  • 旅游网站建设的目标是什么短网址生成网站
  • 有意思的网站优化营商环境个人心得
  • 做app动态界面的网站有哪些东莞百度推广优化排名
  • 做业务员要认识什么批发网站宣传推广文案
  • 美食网站首页设计上海优质网站seo有哪些
  • 郑州小程序开发外包公司朝阳seo排名
  • 宝安做棋牌网站建设哪家技术好百度推广关键词技巧定价
  • 网站优化流程图百度竞价客服电话
  • wordpress grace主题网站优化外包
  • wordpress 扒站教程机构类网站有哪些
  • 网络游戏有哪些株洲seo快速排名
  • wordpress隐藏内容百度首页排名优化平台