Linux服务器构建与运维管理 第06章:使用 MongoDB实现数据库服务 阮晓龙 http://linux.xg.hactcm.edu.cn 问南中医药大学信息管理与信息系统教研室 信息技术学院网络与信息系统科研工作室
Linux服务器构建与运维管理 第06章:使用MongoDB实现数据库服务 1 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn 河南中医药大学信息管理与信息系统教研室 信息技术学院网络与信息系统科研工作室 2021.3
2 提纲 口非关系型数据库 mongoDB简介 mongoDB、特性、副本集 口 mongoDB数据库服务 实现 mongoDB数据库服务 mongoDB服务进程 ■使用 mongoDB Compass管理 MongoDB数据库服务 高可用 实现 mongoDB高可用 ■监控 mongoDB 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 提纲 非关系型数据库 mongoDB简介 ◼ mongoDB、特性、副本集 mongoDB数据库服务 ◼ 实现mongoDB数据库服务 ◼ mongoDB服务进程 ◼ 使用mongoDB Compass管理MongoDB数据库服务 高可用 ◼ 实现mongoDB高可用 ◼ 监控mongoDB 2
3 1非关系型数据库 1.1 NOSQL 口非关系型数据库简称 NOSQL,最初是为了满足互联网的业务需求而诞生的。 互联网数据规模庞大,数据结构动态化,关系型数据库在处理此类问题时不仅 十分麻烦,而且性能也达不到要求。 口NoSQ数据库是非关系型数据存储的广义定义,它不同于符合AC|D理论的关 系型数据库,数据存储不需要固定的表结构,通常也不存在连接操作。 ¤NoSαL数据库不使用传统的关系数据库模型,而是使用如键值存储数据库 列存储数据库、文档型数据库、图形数据库等方式存储数据模型。 ¤NoSαL在抛弃了关系型数据库的强制一致性和事务等特性后,可满足业务需 求 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 非关系型数据库简称NoSQL,最初是为了满足互联网的业务需求而诞生的。 互联网数据规模庞大,数据结构动态化,关系型数据库在处理此类问题时不仅 十分麻烦,而且性能也达不到要求。 NoSQL数据库是非关系型数据存储的广义定义,它不同于符合ACID理论的关 系型数据库,数据存储不需要固定的表结构,通常也不存在连接操作。 NoSQL数据库不使用传统的关系数据库模型,而是使用如键值存储数据库、 列存储数据库、文档型数据库、图形数据库等方式存储数据模型。 NoSQL在抛弃了关系型数据库的强制一致性和事务等特性后,可满足业务需 求。 3 1.1 NoSQL
1非关系型数据库 1.1 NOSQL ¤非关系型数据库是相对于关系型数据库来讲的,不遵循二维数据模型。不同厂 商针对应用不同,其非关系型数据库的数据模型也不同 ¤非关系型数据库具备的通用特点如下。 高性能 分布式 易扩展 ■不支持事务 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 非关系型数据库是相对于关系型数据库来讲的,不遵循二维数据模型。不同厂 商针对应用不同,其非关系型数据库的数据模型也不同。 非关系型数据库具备的通用特点如下。 ◼ 高性能 ◼ 分布式 ◼ 易扩展 ◼ 不支持事务 4 1.1 NoSQL
5 1非关系型数据库 1.1 NOSQL ¤非关系型数据库是相对于关系型数据库来讲的,不遵循二维数据模型。不同厂 商针对应用不同,其非关系型数据库的数据模型也不同 ¤非关系型数据库具备的适用场景如下。 ■数据模型比较简单 需要灵活性更强的系统 对数据库性能要求较高 不需要高度的数据一致性 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 非关系型数据库是相对于关系型数据库来讲的,不遵循二维数据模型。不同厂 商针对应用不同,其非关系型数据库的数据模型也不同。 非关系型数据库具备的适用场景如下。 ◼ 数据模型比较简单 ◼ 需要灵活性更强的IT系统 ◼ 对数据库性能要求较高 ◼ 不需要高度的数据一致性 5 1.1 NoSQL
6 1非关系型数据库 12 NOSQL的分类与特性 ¤与关系型数据库不同,非关系型数据库并没有一个统一的架构,两种非关系型 数据库之间的差异程度远远超过两种关系型数据库之间的差异。 非关系型数据库通常具有较强应用场景适应性,不同应用场景下应选用不同产品。 ■常见的非关系型数据库包括键值数据库、列族数据库、文档数据库和图形数据库。 键值 列组 文档 图性 数据库 数据库 数据库 数据库 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 与关系型数据库不同,非关系型数据库并没有一个统一的架构,两种非关系型 数据库之间的差异程度远远超过两种关系型数据库之间的差异。 ◼ 非关系型数据库通常具有较强应用场景适应性,不同应用场景下应选用不同产品。 ◼ 常见的非关系型数据库包括键值数据库、列族数据库、文档数据库和图形数据库。 6 1.2 NoSQL的分类与特性 键值 数据库 列组 数据库 文档 数据库 图性 数据库
7 非关系型数据库分类和特性 分类 相关产品 应用场景 数据模型 优点 缺点 键值数据库 Redis、 Memcached 键值对,通 内容缓存、频繁读写过散列表实现 大量操作时性能高数据无结构化 列族数据库 HBase、 Cassandra 分布式数据存储与管理以列族式存储,将同一查找速度快,复杂功能局限,不支持 列数据存储在一起 性低 事务的强一致性 文档数据库 MongoDB、 Elasticsearch WebE用、面向文档或| ,vae是s|数据结构灵活 半结构化的数据 ON结构的文档 缺乏统一查询语法 图形数掘库N640a推荐系练、构建关系图|图结构 支持复杂的图形算复杂性高,只能支 持一定的数据规模
7 分类 相关产品 应用场景 数据模型 优点 缺点 键值数据库 Redis、Memcached 内容缓存、频繁读写 键值对,通 过散列表实现 大量操作时性能高 数据无结构化 列族数据库 HBase、Cassandra 分布式数据存储与管理 以列族式存储,将同一 列数据存储在一起 查找速度快,复杂 性低 功能局限,不支持 事务的强一致性 文档数据库 MongoDB、Elasticsearch Web应用、面向文档或 半结构化的数据 ,value是JS ON结构的文档 数据结构灵活 缺乏统一查询语法 图形数据库 Neo4j、AllegroGraph 推荐系统、构建关系图 谱 图结构 支持复杂的图形算 法 复杂性高,只能支 持一定的数据规模 非关系型数据库分类和特性
8 1非关系型数据库 1.3 CAP 口CAP理论是由 Eric Brewer在2001年提出的,他指出对于一个分布式计算系统来 说,不可能同时满足以下三点。 一致性( Consistency) 口一致性是指更新操作成功后,所有节点在同一时间的数据完全一致。 可用性( Availability) 口可用性是指用户访问数据时,系统是否能在正常响应时间返回结果。 分区容错性( Partition tolerance) ¤分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足 致性和可用性的服务。 河南中医药大学/阮晓龙713938213680/http://inux.xg.hactcm.edu.cn/http://www.5lxueweb.cn
河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.非关系型数据库 CAP理论是由Eric Brewer在2001年提出的,他指出对于一个分布式计算系统来 说,不可能同时满足以下三点。 ◼ 一致性(Consistency) 一致性是指更新操作成功后,所有节点在同一时间的数据完全一致。 ◼ 可用性(Availability) 可用性是指用户访问数据时,系统是否能在正常响应时间返回结果。 ◼ 分区容错性(Partition Tolerance) 分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足 一致性和可用性的服务。 8 1.3 CAP
Redis 选择 特征 实例 一致性+可用性 2PC缓存验证 单机数据库、集群数据库、LDAP、xFS Avail ability Partition Tolerance 一致性+分区容忍性 乐观锁 分布式系统、分布式锁、大部分的协议 可用性+分区容忍性 冲突解决,乐观化coda(分布式档案系统)、网络缓存、DNS Cassandra Riak
9 选择 特征 实例 一致性+可用性 2PC缓存验证 单机数据库、集群数据库、LDAP、xFS 一致性+分区容忍性 乐观锁 分布式系统、分布式锁、大部分的协议 可用性+分区容忍性 冲突解决,乐观化 Coda(分布式档案系统)、网络缓存、DNS
10 择 例子 对应功能分类 关系型数据库 Redis 一致性+可用性 Vertica 列存储数据库 Big Table 列存储数据库 Avail ability Partition Tolerance 一致性+分区容忍性 HBase 列存储数据库 MongoDB 文档型数据库 键值存储数据库 Cassandra 可用性+分区容忍性 Cassandra 列存储数据库 Riak
10 选择 例子 对应功能分类 一致性+可用性 MySQL 关系型数据库 Vertica 列存储数据库 一致性+分区容忍性 BigTable 列存储数据库 HBase 列存储数据库 MongoDB 文档型数据库 可用性+分区容忍性 Dynamo 键值存储数据库 Cassandra 列存储数据库