头歌大数据作业五:NoSQL和云数据库

课外作业五:NoSQL和云数据库

  • 作业详情

内容

一、SQL云数据库实验 1.《10分钟快速入门RDS》 KooLabs云实验_在线实验_上云实践_云计算实验_AI实验_华为云官方实验平台-华为云 创建数据库名为RDS接自己姓名全拼,创建数据表名为table接自己姓名全拼 公网连通性测试 2.《如何快速连接云数据库RDS MySQL》 如何快速连接云数据库RDS MySQL - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云 创建数据库名为RDS接自己姓名全拼,创建数据表名为table接自己姓名全拼,创建普通用户名为user接自己姓名全拼 3.《MySQL数据库快速部署实践》 MySQL数据库快速部署实践 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云 创建数据库名为RDS接自己姓名全拼,创建数据表名为table接自己姓名全拼

实验要求:

创建数据库名为RDS接自己姓名全拼,创建数据表名为table接自己姓名全拼,创建普通用户名为user接自己姓名全拼,截图带有上述信息的内容。

二、NoSQL云数据库实验 1.《 MongoDB数据库入门》 MongoDB数据库入门 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云 创建数据库名为mongodb接自己姓名全拼, 创建集合名为collection接自己姓名全拼, 创建普通用户名为user接自己姓名全拼, 插入三条文档内容带有自己姓名信息,截图查询显示所有文档内容。

2.《基于Redis实现在线游戏积分排行榜》 基于Redis实现在线游戏积分排行榜 - 云起实验室-在线实验-上云实践-阿里云开发者社区-阿里云官方实验平台-阿里云

实验要求:

创建数据库名为mongodb接自己姓名全拼,创建集合名为collection接自己姓名全拼,创建普通用户名为user接自己姓名全拼,插入三条文档内容带有自己姓名信息,截图查询显示所有文档内容。

三、简要回答“课堂考核”内容

  1. 云数据库实例是什么?使用它要安装数据库系统吗? 答:数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件,是访问数据库的通道;用户对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。 需要安装数据库系统。
  2. 云数据库存储容量是固定的,还是可大可小? 答:云数据库存储容量不是固定的。根据个人需求定大小。
  3. ECS上自建数据库与云数据库实例有什么不同? (1) ECS上自建数据库: 1)可靠性 在好的架构下才能实现高可靠性。 实现RPO=0的成本极高,需要单独购买研发服务。 2)安全性 事前防护:白名单、安全组、专有网络隔离。 事中保护:需要单独实现连接链路加密和数据落盘加密,BYOK密钥轮转难度大,咨询成本较高。 事后审计:审计困难,需要单独保存SQL日志。 3)ECS自建数据库价格 硬件费用和备品配件费用:至少需要2台ECS实例作为主备实例。2台2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的ECS实例费用是6800元/年。 (2) 云数据库实例: 1)可靠性 数据可靠性高,自动主备复制、数据备份、日志备份等。 MySQL 5.6三节点企业版,实现RPO(Recovery Point Object)=0。 MySQL 5.7三节点企业版(MGR),实现RPO=0、RTO(Recovery Time Objective) < 1分钟。 2)安全性 事前防护:白名单、安全组、专有网络隔离。 事中保护:连接链路加密、数据落盘加密(BYOK覆盖多种存储介质)。 事后审计:SQL洞察、历史事件。 3)云数据库RDS价格 硬件费用和备品配件费用:RDS实例的费用。例如,2 CPU、4 GB内存、存储空间 100 GB(IOPS能力可达到6800)的实例费用是8000元/年。
  4. MongoDB是SQL还是NoSQL?为什么? 答:MongoDB是NoSQL,MongoDB 是非关系型的数据库(NoSQL),属于文档型数据库,文档数据库就是为了解决关系数据库带来的问题。存储的数据格式就是 JSON(或者 BSON)。JSON 格式我们都比较熟悉,比如 Rest API 请求返回的 Response 就是 JSON 格式的。JSON 格式的数据和 XML 格式的区别是 JSON 更简单,没有那么多的标签来定义字段名。也就是说 JSON 是自描述的。另外 JSON 格式存进 MongoDB 中后,即使读取一个 JSON 中不存在的字段也不会导致 SQL 那样的语法错误。
  5. 实验中MongoDB是自己安装的吗?创建的数据库名和用户名分别是什么?用户是什么?为什么要用户密码?普通用户角色包含什么? 答:是自己安装的; 创建的数据库名是:rds_yanrong,用户名是:user_yanrong; 是普通用户; 为了数据库的安全性; 角色有read和readwrite两种。
  6. 集合是什么?文档是什么?实验中对文档做了哪些操作? 答:集合相当于rdb中的表,这里的表没有模式定义;mongodb的每个实例可以包含多个数据库,每个数据库有自己的集合和权限;文档是mongodb中的基本单元,相当于rdb中的一条记录,通常以json格式显示,以bson格式进行存储;实验对文档进行创建,插入,删除操作。
  7. Redis是SQL还是NoSQL?为什么? 答:redis是nosql数据库。用作恢复备份,缓存数据,辅助持久化
  8. 实验中Redis数据结构是哪一种? 答:Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set)。实验中Redis数据结构是集合。 四、习题 • 5.8 习题
  9. 如何准确理解 NoSQL 的含义? 答:NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的一类统称,它采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。
  10. 试述关系数据库在哪些方面无法满足Web 2.0应用的需求。 答:主要表现在以下几个方面: (1)无法满足海量数据的管理需求 (2)无法满足数据高并发的需求 (3)无法满足高可扩展性和高可用性的需求
  11. 为什么说关系数据库的一些关键特性在 Web2.0时代成为“鸡肋”? 答:(1)Web2.0网站系统通常不要求严格的数据库事务 (2)Web2.0不要求严格的读写实时性 (3)Web2.0通常不包含大量复杂的SQL查询
  12. 请比较NoSQL数据库和关系数据库的优缺点。 (1) 关系数据库 优点:以完善得关系理论代数作为基础,有严格得标准,支持事务ACID四性,高校查询,技术成熟,专业公司得技术支持; 缺点:可扩展性较差、无法较好支持海量数据存储、数据模型过于死板、无法较好支持Web2.0应用、事务机制影响系统整体性能 (2) NoSQL数据库 优点:支持超大规模数据存储数据模型灵活支持Web2.0,具有强大得横向扩展能力 缺点:缺乏数学理论基础,复杂查询性能不高。不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业的技术支持,维护较困难。
  13. 试述NoSQL数据库的四大类型。 答:键值数据库、列族数据库、文档数据库和图数据库。
  14. 试述键值数据库、列族数据库、文档数据库和图数据库的适用场合和优缺点。 数据库 适用场合 优点 缺点 键值数据库 过键而是通过值来查的业务 扩展性好,灵活性好,大量写操作时性能高 无法存储结构化信息,条件查询效率较低 列族数据库 不被需要ACID事务支持的情形 查找速度快,可扩展性强,容易进行分布式扩展,复杂性低 功能觉少,大都不支持强事务一致性 文档数据库 只在相同的文档上添加事务 性能好(高并发),灵活性高,复杂性低,数据结构灵活;提供嵌入式文档功能,将经常查询的数据存储在同一个文档中;既可以根据键来构建索引,也可以根据内容构建索引 缺乏统一的查询语法 图形数据库 具有高度相互关联关系的数据 灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱 复杂性高,只能支持一定的数据规模
  15. 试述CAP理论的具体含义。 答:C(Consistency):一致性,是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布式环境中,多点的数据是一致的,或者说,所有节点在同一时间具有相同的数据

A:(Availability):可用性,是指快速获取数据,可以在确定的时间内返回操作结果,保证每个请求不管成功或者失败都有响应;

P(Tolerance of Network Partition):分区容忍性,是指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通信),分离的系统也能够正常运行,也就是说,系统中任意信息的丢失或失败不会影响系统的继续运作。 8. 请举例说明不同产品在设计时是如何运用CAP理论的。 答:CA。强调一致性和可用性(A),放弃分区容忍性§,最简单的做法是把所有与事务相关的内容都放到同一台机器上。这种做法会严重影响系统的可扩展性。例如传统的关系数据库(MySQL、SQL Server和PostgreSQL ) 。

CP。强调一致性和分区容忍性§,放弃可用性(A),当出现网络分区的情况时,受影响的服务需要等待数据一致,因此在等待期间就无法对外提供服务。例如Neo4J、BigTable和HBase等NoSQL数据库。

AP。强调可用性(A)和分区容忍性§,放弃一致性,允许系统返回不一致的数据。这对于许多Web 2.0网站而言是可行的,这些网站的用户首先关注是网站服务是否可用,当用户需要发布一条微博时,必须能够立即发布,否则,用户就会放弃使用,但是,这条微博发布后什么时候能够被其他用户读取到,则不是非常重要的问题,不会影响到用户体验。因此,对于Web 2.0 网站而言,可用性与分区容忍性优先级要高于数据一致性,网站一般会尽量朝着AP的方向设计。当然,在采用AP设计时,也可以不完全放弃一致性,转而采用最终一致性。例如Dynamo、Riak 、CouchDB、Cassandra 等NoSQL数据库。 9. 试述数据库的ACID四性的含义。 答:一致性(consistency)指事务在完成时,必须使所有的数据都保持一致状态。 隔离性(Isolation)指并发事务所做的修改必须与其他并发事务所做的修改隔离。 持久性(Durability) 指事务完成之后,它对于系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持。 10. 试述BASE的具体含义。 答:BASE的基本含义是基本可用(Basically Availble)、软状态(Soft state)和最终一致性(Eventual consistency) 11. 请解释软状态、无状态、硬状态的具体含义。 答:“软状态(soft-state)”是与“硬状态(hard-state)”相对应的一种提法。数据库保存的数据是“硬状态”时,可以保证数据一致性,即保证数据一直是正确的。“软状态”是指状态可以有一段时间不同步,具有一定的滞后性。 12. 什么是最终一致性? 答:最终一致性根据更新数据后各进程访问到数据的时间和方式的不同,又可以区分为: (1) 会话一致性:它把访问存储系统的进程放到会话(session)的上下文中,只要会话还存在,系统就保证“读己之所写”一致性。如果由于某些失败情形令会话终止,就要建立新的会话,而且系统保证不会延续到新的会话;  (2) 单调写一致性:系统保证来自同一个进程的写操作顺序执行。系统必须保证这种程度的一致性,否则就非常难以编程  (3) 单调读一致性:如果进程已经看到过数据对象的某个值,那么任何后续访问都不会返回在那个值之前的值  (4) 因果一致性:如果进程A通知进程B它已更新了一个数据项,那么进程B的后续访问将获得A写入的最新值。而与进程A无因果关系的进程C的访问,仍然遵守一般的最终一致性规则 (5) “读己之所写”一致性:可以视为因果一致性的一个特例。当进程A自己执行一个更新操作之后,它自己总是可以访问到更新过的值,绝不会看到旧值。 13. 试述不一致性窗口的含义。 答:所有后续的访问都可以读取到操作OP写入的最新值。从OP操作完成到后续访问可以最终读取到OP写入的最新值,这之间的时间间隔称为“不一致性窗口”。 14. 最终一致性根据更新数据后各进程访问到数据的时间和方式的不同,又可以分为哪些不同类型的一致性? 答:会话一致性、单调写一致性、单调读一致性、因果一致性和“读己之所写”一致性。 15. 什么是NewSQL数据库? 答:NewSQL是对各种新的可扩展、高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL特性。 16. 试述NewSQL数据库与传统的关系数据库以及 NoSQL 数据库的区别。 答:NewSQL数据库不经具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL特性。 • 6.5 习题

  1. 试述云数据库的概念。 答:云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易,同时也虚拟化了许多后端功能。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
  2. 与传统的软件使用方式相比,云计算方式具有哪些明显的优势? 项目 传统方式 云计算方式 获得软件的方式 自己投资建设机房,搭建硬件平台,购买软件在本地安装 直接购买云计算厂商的软件服务 使用方式 本地安装,本地使用 软件运行在云计算厂商服务器上,用户在任何有网络接入的地方都可以通过网络使用软件服务 付费方式 需要一次性支付较大的初期投入成本,包括建设机房、配置硬件、购买各种软件(操作系统、杀毒、业务软件等) 零成本投入就可以立即获得所需的IT资源,只需要为所使用的资源付费,多用多付,少用少付,极其廉价 维护成本 需要自己花钱聘请专业技术人员维护 零成本,所有维护工作由云计算厂商负责 获得IT资源的速度 需要耗费较长时间建设机房、购买和安装调试设备系统 随时可用,购买服务后可立即可用 共享方式 自己建设,自给自足 云计算厂商建设好云计算服务平台后,同时为众多用户提供服务 维修速度 出现病毒、系统崩溃等问题时,需要自己聘请IT人员维护,很多普通企业的IT人员技术能力有限,碰到一些问题甚至需要寻找外援,通常不能立即解决 出现任何问题时,云计算厂商都会凭借其专业化团队及时给出响应,确保云服务的正常使用 资源利用率 利用率较低,投入大量资金建设的IT系统,往往只供企业自己使用,当企业不需要那么多IT资源时,就会产生资源浪费 利用率较高,每天都可以为大量用户提供服务;当存在闲置资源时,云计算管理系统会自动关闭和退出多余资源;当需要增加资时,优惠自动启动和加入相关资源 用户搬迁时的成本 当企业搬家时,原来的机房设施就要作废,需要在新地方重新投入较大成本建设机房 企业无论搬迁到哪里,都可以用过网络重新零成本立即获得云计算服务,因为资源在云端,不在用户端,用户搬迁不会影响到IT资源的分布 资源可拓展性 企业自己建设的IT基础设施的服务能力通常是有上限的,当企业业务量突然增加时,现有的IT基础设施无法立即满足需求,就需要花费时间和金钱购买和安装新设备;当业务高峰过去时,多余的设备就会闲置,造成资源浪费 云计算厂商可以为企业提供近乎无限的IT资源(存储和云计算等资源),用户想用多少都可以立即获得,当用户不使用时,只需退订多余资源,不存在任何资源闲置等问题
  3. 云数据库有哪些特性? 1)动态可扩展性: 理论上,运输库具有无限可扩展性,可以满足不断增加的数据存储需求。 2)高可用性: 不存在单点失效问题。 3)较低的使用代价: 通常采用多租户(Muti-tenancy)的形式,同时为多个用户提供服务,这种共享资源的形式对于用户而言可以节省开销,而且用户采用“按需付费”的方式使用云计算环境中的各种软、硬件资源,不会产生不必要的资源浪费。 4)易用性: 使用云数据库的用户不用控制运行原始数据库的机器,也不必了解它身在何处。 5)高性能: 采用大型分布式存储服务集群,支撑海量数据访问,多机房自动备份冗余备份,自动读写分离。 6)免维护: 用户不需要关注后端机器及数据库的稳定性、网络问题、机房灾难、单库压力等各种风险,云数据库服务商提供7*24h的专业服务,扩容和迁移对用户透明且不影响服务,并且可以提供全方位、全天候立体式监控,用户无需半夜去处理数据库故障。 7)安全: 提供数据隔离,不同应用的数据会存在于不同的数据库中而不会相互影响;提供安全性检查,可以及时发现并拒绝恶意攻击性访问;数据提供多点备份,确保不会发生数据丢失。
  4. 试述云数据库的影响。 答:在大数据时代,每个企业几乎每天都在不断产生大量的数据。企业类型不同,对于存储的需求也千差万别,而云数据库可以很好地满足不同企业的个性化存储需求。 首先,云数据库可以满足大企业的海量数据存储需求。云数据库在当前数据爆炸的大数据时代具有广阔的应用前景。根据IDC的研究报告,企业对结构化数据的存储需求每年会增加20%左右,而对非结构化数据的存储需求将会每年增加60%左右。传统的关系数据库难以水平扩展,根本无法存储如此海量的数据。因此,具有高可扩展性的云数据库就成为企业海量数据存储管理的很好选择。 其次,云数据库可以满足中小企业的低成本数据存储需求。中小企业在IT基础设施方面的投人比较有限,非常渴望从第三方方便、快捷、廉价地获得数据库服务。云数据库采用多租户方式同时为多个用户提供服务,降低了单个用户的使用成本,而且用户使用云数据库服务通常按需付费,不会浪费资源造成额外支出。因此,云数据库使用成本很低,对于中小企业而言可以大大降低企业的信息化门槛,让企业在付出较低成本的同时,获得优质的专业级数据库服务,从而有效提升企业信息化水平。 另外,云数据库可以满足企业动态变化的数据存储需求。企业在不同时期需要存储的数据量是不断变化的,有时增加,有时减少。在小规模应用的情况下,系统负载的变化可以由系统空闲的多余资源来处理,但是在大规模应用的情况下,传统的关系数据库由于其伸缩性较差,不仅无法满足应用需求,而且会给企业带来高昂的存储成本和管理开销。而云数据库的良好伸缩性,可以让企业在需求增加时立即获得数据库能力的提升,在需求减少时立即释放多余的数据库能力,较好地满足企业的动态数据存储需求。
  5. 举例说明云数据库厂商及其代表性产品。 (1) 传统的数据库厂商,如Teradata、Oracle、 IBM DB2和Microsoft SQL Server等。 (2) 涉足数据库市场的云供应商,如Amazon、Google、 Yahoo!、 阿里、百度、腾讯等。 (3) 新兴厂商,如Vertica、LongJump和EnterpriseDB 等。 云数据库产品: 企业 产品 Amazon Dynamo、SimpleDB、RDS Google Google Cloud SQL Microsoft Microsoft SQL Azure Oracle Oracle Cloud Yahoo! PNUTS Vertica Analytic Database v3.0 for the Cloud EnerpriseDB Postgres Plus in the Cloud 阿里 阿里云RDS 百度 百度云数据库 腾讯 腾讯云数据库
  6. 试述Microsoft SQL Azure的体系架构。 答:SQL Azure的体系架构中包含了一个虚拟机簇,可以根据工作负载的变化,动态增加或减少虚拟机的数量,如图所示。每台虚拟机SQL Server VM ( Virtual Machine )安装了SQL Server2008数据库管理系统,以关系模型存储数据。通常,一个数据库会被分散存储到3~5台SQL Server VM中。每台SQL Server VM同时安装了SQL Azure Fabric和SQL Azure管理服务,后者负责数据库的数据复写工作,以保障SQL Azure的基本高可用性要求。不同SQL Server VM内的SQL Azure Fabric和管理服务之间会彼此交换监控信息,以保证整体服务的可监控性。
  7. 试述UMP系统的功能。 答:UMP系统是低成本和高性能的MySQL云数据库方案,关键模块采用Erlang语言实现。开发者通过网络从平台上申请MySQL实例资源,由平台提供的单一入口来访问数据。UMP系统把各种服务器资源划分为资源池,并以资源池为单位把资源分配给MySQL实例。系统中包含了一系列组件,这些组件协同工作,以对用户透明的形式提供主从热备、数据备份、迁移、容灾、读写分离、分库分表等一系列服务。系统内部划分为3种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户。多个小规模用户可以共享同一个MySQL实例,中等规模用户独占一个MySQL实例,需要分库分表的用户的多个MySQL实例共享同一个物理机,通过这些方式实现了资源的虚拟化,降低了整体成本。UMP通过“用Cgroup限制MySQL进程资源"和“在Proxy服务器端限制PS(QueryPerSecond)” 两种方式,实现了资源隔离、按需分配以及限制CPU、内存和IO资源;同时,还支持在不影响提供数据服务的前提下根据用户业务的发展进行动态扩容和缩容。系统还综合运用了SSL数据库连接、数据访问IP白名单、记录用户操作日志、SQL拦截等技术,来有效保护用户的数据安全。
  8. 试述UMP系统的组件及其具体作用。 (1) Mnesia Mnesia是一个分布式数据库管理系统,适合于电信及其他需要持续运行和具备软实时特性的Erlang应用,是构建电信应用的控制系统平台——开放式电信平台(Open Telecom Platform,OTP)的一部分。

(2) RabbitMQ RabbitMQ是一个用Erlang开发的工业级的消息队列产品(功能类似于IBM公司的消息队列产品IBM WEBSPHERE MQ),作为消息传输中间件来使用,可以实现可靠的消息传送。

(3) Zookeeper Zookeeper是高效和可靠的协同工作系统,提供分布式锁之类的基本服务(如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等),用于构建分布式应用,减轻分布式应用程序所承担的协调任务。在UMP系统中,Zookeeper主要发挥3个作用。

作为全局的配置服务器。 提供分布式锁。 监控所有MySQL实例。 (4) LVS LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统。UMP系统借助于LVS来实现集群内部的负载均衡。

(5) Controller服务器 Controller服务器向UMP集群提供各种管理服务,实现集群成员管理、元数据存储、MySQL实例管理、故障恢复、备份、迁移、扩容等功能。

(6) Web控制台 Web控制台向用户提供系统管理界面。

(7) Proxy服务器 Proxy服务器向用户提供访问MySQL数据库的服务,它完全实现了MySQL协议,用户可以使用已有的MySQL客户端连接到Proxy服务器,Proxy服务器通过用户名获取到用户的认证信息、资源配额的限制(如QPS、IOPS(I/O Per Second)、最大连接数等),以及后台MySQL实例的地址,然后用户的SQL查询请求会被转发到响应的MySQL实例上。除了数据路由的基本功能外,Proxy服务器还实现了很多重要的功能,主要包括屏蔽MySQL实例故障、读写分离、分库分表、资源隔离、记录访问日志等。

(8) Agent服务器 Agent服务器部署在运行MySQL进程的机器上,用来管理每台物理机上的MySQL实例,执行主从切换、创建、删除、备份、迁移等操作,同时还负责收集和分析MySQL进程的统计信息、慢日志查询(Slow Query Log)和bin-log。

(9) 日志分析服务器 日志分析服务器存储和分析Proxy服务器传入的用户访问日志,并支持实时查询一段时间内的慢日志和统计报表。

(10) 信息统计服务器 信息统计服务器定期将采集到的用户的连接数、QPS数值以及MySQL实例的进程状态用RRDtool进行统计,可以在Web界面上可视化展示统计结果,也可以把统计结果作为今后实现弹性的资源分配和自动化的MySQL实例迁移的依据。

(11) 愚公系统 愚公系统是一个全量复制结合bin-log分析进行增量复制的工具,可以实现在不停机的情况下动态扩容、缩容和迁移。 9. 试述UMP系统实现主从备份的方法。 答:UMP系统会为用户创建两个MySQL实例,一个是主库,一个是从库,且这两个MySQL实例之间相互把对方设置为备份机,任何一个MySQL实例上面发生的更新都会复制到对方。一旦主机宕机,Controller服务器会启动主从切换,修改映射关系;宕机后的主库在恢复处理后会再次上线,并从从库中复制更新,直到更新到完全一致状态的时候,Controller服务器会再次发起主从切换操作。 10. 试述UMP系统读写分离的实现方法。 答:由于每个用户都有两个MySQL实例,即主库和从库,因此,可以充分利用主从库实现用户读写操作的分离,实现负载均衡。UMP系统实现了对于用户透明的读写分离功能,当整个功能被开启时,负责向用户提供访问MySQL数据库服务的Proxy服务器,就会对用户发起的SQL语句进行解析,如果属于写操作,就直接发送到主库,如果是读操作,就会被均衡地发送到主库和从库上执行。 11. UMP系统采用哪两种方式实现资源隔离? 当多个用户共享同一个MySQL实例或者多个MySQL实例共存在同一个物理机上时,为了保护用户应用和数据的安全,必须实现资源隔离,否则,某个用户过多消耗系统资源会严重影响到其他用户的操作性能。 资源隔离方式 应用场合 实现方式 用Cgroup限制MySQL进程资源 适用于多个MySQL实例共享同一台物理机的情况 可以对用户的MySQL进程最大可以使用的CPU使用率、内存和IOPS等进行限制 在Proxy服务器端限制QPS 适用于多个用户共享同一个MySQL实例的情况 Controller服务器监测用户的MySQL实例的资源消耗情况,如果明显超出配额,就通知Proxy服务器通过增加延迟的方法去限制用户的QPS,以减少用户对系统资源的消耗

  1. 试述UMP系统中的3种规模用户 答:UMP系统中有3种规格的用户,分别是数据量和流量比较小的用户、中等规模用户以及需要分库分表的用户。多个小规模用户可以共享同一个MySQL实例。对于中等规模的用户,每个用户独占个MySQL实例。用户可以根据自己的需求来调整内存空间和磁盘空间,如果用户需要更多的资源,就可以迁移到资源有空闲或者具更高配置的服务器上对于分库分表的用户,会占有多个独立的MySQL 实例,这些实例既可以共存在同一台物理机上,也可以每个实例独占一台物理机。

UMP通过MySQL实例的迁移来实现资源调度。借助于阿里集团中间件团队开发的愚公系统,UMP可以实现在不停机的情况下动态扩容、缩容和迁移。 13. UMP系统如何保障数据安全? 1)SSL 数据库连接。 SSL (Secure Sockets Layer) 是为网络通信提供安全及数据完整性的一种安全协议,它在传输层对网络连接进行加密。Proxy服务器实现了完整的MySQL客户端服务器协议,可以与客户端之间建立SSL数据库连接。

2)数据访问IP白名单。 可以把允许访问云数据库的IP地址放入“白名单”,只有白名单内的IP地址才能访问,其他IP地址的访问都会被拒绝,从而进一步保证账户安全。

3)记录用户操作日志。 用户的所有操作记录都会被记录到日志分析服务器,通过检查用户操作记录,可以发现隐藏的安全漏洞。

4) SQL拦截。 Proxy服务器可以根据要求拦截多种类型的SQL语句,比如全表扫描语句"select *”。

2023-04-04 00:02朱娅玲提交2023-04-06 11:04朱娅玲更新

猜你喜欢

转载自blog.csdn.net/qq_50530107/article/details/131260960