17.主从备份
2016-12-20 17:46
127 查看
1.主从备份实践
1.创建数据库数据存放文件夹
2.创建启动脚本文件
master
创建mongodb.conf文件dbpath = E:\MyProgram\MongodbDATA\07\8888 #主数据库地址 port = 8888 #主数据库端口号 bind_ip = 127.0.0.1 #主数据库所在服务器 master = true #表明身份--主服务器
创建mongod服务启动脚本文件 mongodbService8888.bat
mongod --config C:\Users\dxf\Desktop\mongo\07_master_slave\master\mongodb.conf
创建客户端启动脚本 mongo8888Shell.bat
mongo 127.0.0.1:8888
slave
创建mongodb.conf文件dbpath = E:\MyProgram\MongodbDATA\07\7777 #从数据库地址 port = 7777 #主数据库端口号 bind_ip = 127.0.0.1 #主数据库所在服务器 source = 127.0.0.1:8888 #源数据的ip和端口 slave = true #表明身份--从服务器
创建mongod服务启动脚本文件 mongodbService7777.bat
mongod --config C:\Users\dxf\Desktop\mongo\07_master_slave\slave\mongodb.conf
**创建客户端启动脚本**mongo7777Shell.bat
mongo 127.0.0.1:7777
3.实验
依次启动mongodbService8888.bat和mongodbService7777.bat 两个服务启动 mongo8888Shell.bat shell客户端,写入一些数据
> show dbs local 0.09375GB > use foobar switched to db foobar > db.foobar.insert({name:"master-slave-test"}) > db.foobar.find() { "_id" : ObjectId("5858ed67e0041ee00b1c185a"), "name" : "master-slave-test" } >
启动 mongo7777Shell.bat shell客户端,查看写入的数据是否被同步到了从服务器上
> show dbs foobar 0.03125GB local 0.03125GB > use foobar switched to db foobar > db.foobar.find() { "_id" : ObjectId("5858ed67e0041ee00b1c185a"), "name" : "master-slave-test" }
2.主从复制的其他设置项
参数 | 含义 |
---|---|
–only | 从节点->指定复制某个数据库,默认是复制全部数据库 |
–slavedelay | 从节点->设置主数据库同步数据的延迟(单位是秒) |
–fastsync | 从节点->以主数据库的节点快照为节点启动从数据库 |
–autoresync | 从节点->如果不同步则从新同步数据库 |
–oplogSize | 主节点->设置oplog的大小(主节点操作记录存储到local的oplog中) |
3.利用shell动态添加和删除从节点
操作前需注意
因为我们模拟动态添加/删除从节点,所以从节点的mongd服务启动脚本中,注释掉”sources”参数的那一行,即不告诉从节点要连接的主服务器是谁。启动完主从两个服务之后,在从节点中进行操作:
> use local switched to db local > db.sources.find() { "_id" : ObjectId("5858ed20a6be28785713ade8"), "host" : "127.0.0.1:8888", "sour ce" : "main", "syncedTo" : { "t" : 1482225705000, "i" : 1 } }
不难看出,从节点中关于主节点的信息全部存到 local 的 sources 的集合中
我们只要对集合进行操作就可以动态操作主从关系
挂接主节点:操作之前只留下从数据库服务
db.sources.insert({“host”:”127.0.0.1:8888”})
删除已经挂接的主节点:操作之前只留下从数据库服务
db.sources.remove({“host”:”127.0.0.1:8888”})
不建议使用主从复制的原因
主从复制是MongoDB最初使用的复制范式。这种复制易于配置。能支持任意数量的从节点,但是出于一些原因,我们不再推荐在生产部署一中使用主从复制了。首先, 故障转移完全是人工操作的。如果主节点发生数障,管理员必须关闭某个从节点,把它重启为主节点,随后应用程序必须重新配配置以指向新的主节点。其次,恢复很困难。因为oplog仅存在于主节点上。这意味着在发生故障时,其他现有节点都需要从新的主节点上重新进行同步。
简而言之, 没有什么有说服力的理由使用主从复制。副本集才是正途,你应该使用这种复制方式。
相关文章推荐
- 判断对象是否为空
- Ubuntu下共享windows文件夹之cifs
- Tomcat Connector的三种运行模式【bio、nio、apr】
- css参考手册内容比较齐全
- python开发之环境搭建(eclipse4.6+python3.3.2+pydev3.9.0)
- bootstrap表格内容过长时用省略号表示
- C#在服务器上调试程序的方法(生成日志文件在服务器中)
- 2、facebook PHP版 SDK 身份验证和授权登录
- [转]VS2015中臃肿的ipch和sdf文件
- JDBC事务操作
- Redhat 6.4 安装 Oracle10g 血泪史
- c++ overloaded重载
- Java注解全解析(一)——注解简介
- [leetcode] 477. Total Hamming Distance
- Delaunay剖分与平面欧几里得距离最小生成树
- wc的用法
- 用intent打开各种文件 打开sd卡路径 打开系统目录...
- Android 高仿最新版微信 6.2 手势滑动返回(带阴影)
- nginx日志切割
- GlusterFS-3.7.18 版本说明