一.MySQL InnoDB Cluster delivers an integrated, native, HA solution for your databases. MySQL InnoDB Cluster consists of:
- MySQL Servers with Group Replication to replicate data to all members of the cluster while providing fault tolerance, automated failover, and elasticity.
- MySQL Router to ensure client requests are load balanced and routed to the correct servers in case of any database failures.
- MySQL Shell to create and administer InnoDB Clusters using the built-in AdminAPI.
- Integrated amp; Easy to Use
- MySQL InnoDB Cluster tightly integrates MySQL Server with Group Replication, MySQL Router, and MySQL Shell, so you dont have to rely on external tools, scripts or other components. Plus, it leverages proven MySQL features including InnoDB, GTIDs, binary logs, multi-threaded slave execution, multi-source replication and Performance Schema. A MySQL InnoDB Cluster can be set up in less than five minutes and managed using the scriptable AdminAPI in the MySQL Shell.
HA for MySQL Servers Using Group Replication
Group Replication provides native high availability with built-in group membership management, data consistency guarantees, conflict detection and handling, node failure detection and database failover related operations, all without the need for manual intervention or custom tooling.
Group Replication implements both a single-primary mode with automatic leader election and a multi-master update everywhere mode. By using a powerful new group communication system, which provides an in-house implementation of the popular Paxos algorithm, the group automatically coordinates on data replication, consistency, and membership. This provides all of the built-in mechanisms necessary for making your MySQL databases highly available.
Elasticity
With Group Replication, a set of servers coordinate together to form a group. The group membership is dynamic and servers can leave, either voluntarily or involuntarily, and join at any time. The group will automatically reconfigure itself as needed and ensure that any joining member is synchronized with the group. This makes it easy to quickly scale your total database capacity up and down as needed.
Failure Detection
Group Replication implements a distributed failure detector to find and report servers that have failed or are no longer participating in the group and the remaining members in the group coordinate to reconfigure the membership.
Fault Tolerance
Group Replication builds on an in-house implementation of the popular Paxos distributed algorithm to provide distributed coordination between servers. In order for a group to continue to function, it requires a majority of the members to be online and for them to form an agreement on every change. This allows your MySQL databases to safely continue operating without manual intervention when failures occur, without the risk of data loss or data corruption.
Self-Healing
If a server joins the group, it will automatically bring itself up to date by synchronizing its state from an existing member. In the event that a server leaves the group, for instance it was taken down for maintenance, the remaining servers will see that it has left and will reconfigure the group automatically. When that server later rejoins the group, it will automatically re-synchronize with the group again.
Monitoring
MySQL Enterprise Monitor 3.4 and later has full support for Group Replication; monitoring the configuration, health, and performance of each node and the group/cluster as a whole, providing best practice advice and alerts, along with easy to understand visual tools that allow you to easily monitor and manage all of your Group Replication and InnoDB clusters.
HA for MySQL Client Applications using MySQL Router
MySQL Router allows you to easily migrate your standalone MySQL instances to natively distributed and highly available InnoDB clusters without affecting existing applications. The new metadata_cache plugin provides transparent client connection routing, load balancing, and failover into your InnoDB clusters.
Easy and Accessible using MySQL Shell
MySQL Shell provides a single intuitive, flexible, and powerful interface for all MySQL related tasks. The new Admin API makes it easy to create, monitor, and manage InnoDB clusters - including MySQL Router instances - in a self describing natural language interface, without the need to understand low level concepts, configuration options, or other complex aspects. MySQL Shell makes InnoDB clusters easy and accessible for everyone.
二.A database-management system (DBMS) is a collection of interrelated data and a set of programs to access those data. The collection of data, usually referred to as the database, contains information relevant to an enter prise. The primary goal of a DBMS is to provide a way to store and retrieve database information that is both convenient and efficient. Database systems are designed to manage large bodies of information. Management of data involves both defining structures for storage of information and providing mechanisms for the manipulation of information. In addition, the database system must ensure the safety of the information stored, despite system crashes orattemptsatun authorized access. If data are to be shared among several users, the system must avoid possible anomalous results. Because information is so important in most organizations, computer scientists have develop dalarge body of concept sand techniques for managing data. These concepts and techniques form the focus of this book. This chapter brie
剩余内容已隐藏,支付完成后下载完整资料
一.MySQL InnoDB Cluster为您的数据库提供了一个集成的本地HA解决方案。MySQL InnoDB集群包括:
具有组复制功能的MySQL服务器可以将数据复制到集群的所有成员,同时提供容错、自动故障转移和弹性。
MySQL路由器,以确保客户端请求负载平衡,并在任何数据库故障时路由到正确的服务器。
MySQL Shell使用内置的AdminAPI创建和管理InnoDB集群。
集成且易于使用
MySQL InnoDB Cluster将MySQL Server与组复制、MySQL路由器和MySQL Shell紧密集成,因此不必依赖外部工具、脚本或其他组件。此外,它还利用了成熟的MySQL特性,包括InnoDB、gtid、二进制日志、多线程从机执行、多源复制和性能模式。MySQL InnoDB集群可以在不到5分钟的时间内建立,并使用MySQL Shell中的可编写脚本的AdminAPI进行管理。
使用组复制的MySQL服务器的HA
组复制通过内置的组成员身份管理、数据一致性保证、冲突检测和处理、节点故障检测和与数据库故障转移相关的操作提供本机高可用性,而无需手动干预或自定义工具。
组复制实现了带自动领导者选择的单一主模式和到处更新的多主模式。通过使用一个强大的新组通信系统(该系统提供了流行的Paxos算法的内部实现),组自动协调数据复制、一致性和成员资格。这提供了使MySQL数据库高度可用所需的所有内置机制。
弹性
在组复制中,一组服务器协调在一起形成一个组。组成员是动态的,服务器可以自愿或非自愿离开,并随时加入。该组将根据需要自动重新配置自身,并确保任何加入成员都与该组同步。这使您可以根据需要快速地上下扩展数据库的总容量。
故障检测
组复制实现了一个分布式故障检测器,用于查找和报告已失败或不再参与组的服务器以及组中的其余成员协调以重新配置成员身份。
容错性
组复制建立在流行的Paxos分布式算法的内部实现之上,以提供服务器之间的分布式协调。为了使一个小组继续运作,它要求大多数成员在线,并就每一项变动达成协议。这允许MySQL数据库在发生故障时无需手动干预即可安全地继续运行,而不会造成数据丢失或数据损坏的风险。
自愈
如果服务器加入组,它将通过从现有成员同步其状态来自动更新自身。如果某个服务器离开组(例如,该服务器已被取下进行维护),其余服务器将看到该服务器已离开,并将自动重新配置该组。当服务器稍后重新加入组时,它将自动重新与组同步。
监测
MySQL Enterprise Monitor 3.4及更高版本完全支持组复制;监控每个节点以及整个组/群集的配置、运行状况和性能,提供最佳实践建议和警报,以及易于理解的可视化工具,使您能够轻松监视和管理所有组复制和InnoDB集群。
使用MySQL路由器的HA for MySQL客户端应用程序
MySQL路由器允许您轻松地将独立的MySQL实例迁移到本机分布的高可用InnoDB集群,而不影响现有的应用程序。新的metadata_cache插件提供透明的客户端连接路由、负载平衡和到InnoDB集群的故障转移。
使用MySQL外壳易于访问
MySQL Shell为所有与MySQL相关的任务提供了一个直观、灵活和强大的界面。新的管理API使得在一个自描述的自然语言界面中创建、监视和管理InnoDB集群(包括MySQL路由器实例)变得很容易,而无需了解低级概念、配置选项或其他复杂的方面。MySQL Shell使得InnoDB集群对每个人都很容易访问。
二.数据库管理系统(DBMS)是一组相关数据和一组访问这些数据的程序的集合。数据的收集,通常称为数据库,包含与企业相关的信息。数据库管理系统的主要目标是提供一种既方便又有效的存储和检索数据库信息的方法。数据库系统是用来管理大量信息的。数据管理包括定义信息存储结构和提供信息操作机制。此外,数据库系统必须确保存储的信息的安全,尽管系统崩溃或无法进行授权访问。如果要在多个用户之间共享数据,系统必须避免可能出现的异常结果。由于信息在大多数组织中是如此重要,计算机科学家已经开发出了大量的概念和管理数据的技术。这些概念和技巧构成了本书的重点。本章简要介绍了数据库系统的原理。
1.1数据库系统应用
数据库被广泛使用。以下是一些有代表性的应用:
bull;企业信息·销售:客户、产品和采购信息。·会计:用于支付、收入、账户余额、资产和其他会计信息。·人力资源:提供有关员工、工资、工资税和福利的信息,以及生成工资支票的信息。制造业:用于工厂供应链和生产设备的管理,仓库和订单中的项目。1个
2第一章导言
·在线零售商:用于上述销售数据,以及在线订单跟踪、推荐列表的生成和在线产品评估的维护。bull;银行和金融··银行:用于客户信息、账户、贷款和银行交易。·信用卡交易:用于信用卡购物和生成月度报表。·财务:用于存储有关股票和债券等金融工具的持有、销售和购买的信息;还用于存储实时市场数据,以实现客户在线交易和公司自动交易。bull;大学:学生信息、课程注册和成绩(除人力资源和会计等标准企业信息外)。bull;航空公司:提供金沙预定时间表信息。航空公司是最早以地理分布方式使用数据库的公司之一。远程通信:用于保存通话记录、生成每月账单、维护预付费电话卡余额以及存储有关通信网络的信息。
如清单所示,数据库是当今每一个企业的重要组成部分,它不仅存储大多数企业共有的信息类型,而且还存储特定于企业类别的信息。在20世纪的最后40年里,所有企业都越来越多地使用数据库。在早期,很少有人直接与数据库系统交互,尽管没有意识到这一点,但他们通过打印报告(如信用卡对账单)或通过代理(如银行出纳员和航空公司预订代理)间接与数据库交互。然后自动取款机出现了,让用户直接与数据库交互。与计算机(交互式语音响应系统)的电话接口还允许用户直接处理数据库——打电话的人可以拨打一个号码,按电话键输入信息或选择其他选项,例如确定到达/离开时间,或在大学注册课程。20世纪90年代末的互联网革命大大增加了用户对数据库的直接访问。各组织将其许多电话接口转换为数据库,并将各种服务和信息在线提供。例如,当您访问在线书店并浏览书籍或音乐收藏时,您正在访问存储在数据库中的数据。在线输入订单时,订单将存储在数据库中。当您访问银行网站并检索银行余额和交易信息时,将从银行的数据库系统检索该信息。当您访问网站时,可以从数据库中检索有关您的信息,以选择您应该看到的广告。此外,有关Web访问的数据可能存储在数据库中。因此,尽管用户界面隐藏了访问数据库的详细信息,而且大多数人甚至不知道他们正在处理数据库,但访问数据库几乎是当今每个人生活中必不可少的一部分。数据库系统的重要性可以用另一种方式来判断,今天,像Oracle这样的数据库系统供应商是世界上最大的软件公司之一,而数据库系统对于man来说是微软和IBM产品线的重要组成部分。
1.2数据库系统的用途
数据库系统是对早期商业数据计算机化管理方法的响应。作为这种方法的一个例子,典型的是20世纪60年代,考虑一个大学组织的一部分,除其他数据外,该组织保存有关所有教员、学生、系和课程设置的信息。将信息保存在计算机上的一种方法是将其存储在操作系统文件中。为了允许用户操作信息,系统有许多应用程序来操作文件,包括以下程序:bull;添加新学生、讲师和课程bull;注册课程学生并生成班级名册bull;为学生分配分数计算平均成绩(GPA)并生成成绩单。系统程序员编写这些应用程序是为了满足大学的需要。新的应用程序会根据需要添加到系统中。例如,假设一所大学决定开设一个新的专业(例如,计算机科学)。结果是,该大学创建了一个电子系,并创建了新的永久性办公室(或向现有办公室添加信息),以记录该系所有导师、该专业学生、课程设置、学位要求的信息,等。大学可能不得不编写新的申请程序来处理新专业的具体规则。新的申请程序可能还必须编写,以处理新的规则在大学。因此,随着时间的推移,系统需要更多的文件和应用程序。这种典型的文件处理系统由传统的操作系统支持。系统将永久记录存储在不同的文件中,它需要不同的应用程序将记录从相应的文件中删除并添加到相应的文件中。在引入数据库管理系统(dbms)之前,组织通常将信息存储在这些系统中。在文件处理系统中保留组织信息存在以下主要缺点:
4第一章导言
bull;数据冗余和不一致。由于不同的程序员在很长一段时间内创建文件和应用程序,因此不同的文件可能具有不同的结构,并且程序可以用几种编程语言编写。此外,相同的信息可能在多个地方(文件)重复。例如,如果一个学生有一个双专业(例如,音乐和数学),该学生的地址和电话号码可能出现在一个包含音乐系学生记录的文件中,也可能出现在一个包含数学系学生记录的文件中。这种冗余导致存储和访问成本增加,而且可能导致数据不一致,即同一数据的不同副本可能不再一致。例如,更改的学生地址可能会反映在音乐系的记录中,但不会反映在系统的其他地方。bull;难以访问数据。假设一个大学职员需要找出居住在特定邮政编码区的所有学生的姓名。职员要求数据处理部门生成这样一个列表。因为原始系统的设计者没有预料到这一要求,所以手头没有满足它的应用程序。但是,有一个应用程序可以生成所有学生的列表。大学文员现在有两个选择:要么获取所有学生的名单并手动提取所需信息,要么让程序员编写必要的应用程序。两种选择显然都不令人满意。假设这样一个程序已经编写好了,几天后,同一个职员需要删去这个列表,只包括那些至少修了60个学分的学生。如所料,生成这样一个列表的程序不存在。同样,书记员有前两种选择,但都不令人满意。这里的要点是,传统的文件处理环境不允许以方便、高效的方式检索所需的数据。一般使用需要更灵敏的数据检索系统。bull;数据隔离。由于数据分散在不同的文件中,文件可能有不同的格式,编写新的应用程序来检索适当的数据是困难的。bull;诚信问题。存储在数据库中的数据值必须满足某些类型的一致性约束。假设大学为每个部门都有一个帐户,并在每个帐户中记录余额。假设大学要求一个系的帐户余额永远不能低于零。通过在各种应用程序中添加适当的代码,开发人员可以在系统中重新实施这些约束。然而,当添加新的约束时,很难改变程序来实施它们。当约束涉及来自不同文件的多个数据项时,问题就复杂化了。原子性问题。计算机系统和其他任何设备一样,都会发生故障。在许多应用程序中,如果发生故障,数据
1.2数据库系统的用途5
恢复到故障前的一致状态。考虑一个程序,将500美元从a部门的帐户余额转移到B部门的帐户余额。如果在程序执行期间发生系统故障,则有可能500美元从B部门的帐户余额中移除,而不是记入B部门的帐户余额中,导致数据库状态不一致。显然,对于数据库的一致性来说,要么发生借贷,要么两者都不发生是至关重要的。也就是说,资金转移必须是原子的,必须全部发生,或者根本不发生。传统的文件处理系统很难保证原子性。bull;并发访问异常。为了提高系统的整体性能和更快的响应速度,许多系统允许多个用户同时更新数据。事实上,今天,最大的互联网零售商可能每天有数百万的消费者访问他们的数据。在这样的环境中,并发更新的交互是可能的,并且可能导致不一致的数据。以A部门为例,账户余额为10000美元。如果两个部门职员几乎同时借记A部门的账户余额(分别为500美元和100美元),则并行执行的结果可能会使预算处于不正确(或不一致)的状态。假设代表每个draw执行的程序都读取旧余额,将该值减去draw的值,然后在其中写入sultback。如果这两个程序同时运行,它们可以分别读取值10000美元和写回9500美元和9900美元。部门A的帐户余额可能包含9500美元或9900美元,而不是9400美元的正确值,这取决于最后一个写值的人。为了防范这种可能性,该系统必须保持某种形式的监督。但是,由于数据可能被许多不同的应用程序访问,而这些程序以前没有协调过,因此很难提供监督。另一个例子是,假设一个注册程序维护一个课程的注册学生计数,以便强制限制注册学生的数量。当学生注册时,程序读取课程的当前计数,非常确定该计数尚未达到极限,将其添加到计数中,并将计数存储回数据库。假设两个学生同时注册,计数为(比如)39。两个程序执行可能都读取值39,然后都会写回40,从而导致仅错误地增加1,即使两个学生成功注册了该课程,计数应为41。此外,假设课程注册限制为40;在上述情况下,两个学生都可以注册,从而违反了40个学生的限制。bull;安全问题。不是数据库系统的每个用户都应该能够访问所有数据。例如,在大学里,工资人员只需要查看数据库中有财务信息的那部分。他们不需要获取有关学术记录的信息。但是,由于应用程序是以一种特殊的方式添加到文件处理系统中的,因此执行这样的安全约束是困难的。
6第一章导言
<strong 剩余内容已隐藏,支付完成后下载完整资料</strong
资料编号:[240871],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。