1 复制(副本集)
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
至少需要两个节点。主节点,负责处理客户端请求;从节点,负责复制主节点上的数据。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
- rs.initiate():启动一个新的副本集
- rs.conf():查看副本集的配置
- rs.status() :查看副本集状态
- rs.add():添加副本集的成员
2 分片
分片集群,在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。
- Shard:用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止主机单点故障
- Config Server:mongod实例,存储了整个 Cluster Metadata,其中包括 chunk信息。
- Query Routers:前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
步骤一:启动Shard Server
步骤二: 启动Config Server
步骤三: 启动Route Process
步骤四: 配置Sharding
步骤五: 将数据库接入Route Process接口
3 备份与恢复
- mongodump:备份MongoDB数据
mongodump -h dbhost -d dbname -o dbdirectory- -h:MongDB所在服务器地址
- -d:需要备份的数据库实例
- -o:备份的数据存放位置,该目录需要提前建立
- mongorestore:恢复备份的数据
mongorestore -h<:port> -d dbname - -h <:port>:MongoDB所在服务器地址,默认为: localhost:27017
- -d :需要恢复的数据库实例
- –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。
:设置备份数据所在位置 你不能同时指定 和 --dir 选项 - –dir:指定备份的目录
不能同时指定
和 --dir 选项。