在亚马逊云法师的MySQL

亚马逊Web服务提供了新的挑战和数据库管理员的灵活性 - 在这里是如何避免性能的缺陷和调整

亚马逊Web服务提供了新的挑战和数据库管理员的灵活性 - 在这里是如何避免性能的缺陷和调整

对于许多MySQL数据库管理员,亚马逊Web服务代表了云计算的新世界 - 一个充满着消失的服务器,磁盘I / O的变化,以及其它共享资源的挑战,更何况对于数据的安全性问题。

但是,对于那些试图利用强大的灵活性,云计算得到的MySQL数据库部署,AWS应该被简单地看作是数据中心发展的下一个自然的一步 - 一个在虚拟化和商用硬件是一个给定的,和可扩展性,性能和2020欧洲杯预赛高可用性易于实现。

[有关的企业在2012年云计算的状态下充分瓢,退房InfoWorld的云计算深潜PDF专题报告。|还检查了我们的“云安全深潜,“ 我们的 ”云存储深潜“和我们的”云服务深潜” |保持与InfoWorld的云云计算的报告简讯。]

为了帮助数据库管理员利用什么Amazon.com提供的,我们已经编制在亚马逊的云管理MySQL数据库以下的引物。一路上,你会发现重要的工具和技术将数据库迁移到AWS,调整他们的高性能和高可用性,以及避免在云计算的陷阱。

揭秘部署和消失服务器所有的步骤,以确保成功的AWS部署,纺一个基本的例子是最简单的。更具挑战性的是处理消失服务器的新的现实。

上手,下载亚马逊的API工具和安装。接下来设置环境变量(EC2_HOME,EC2_PRIVATE_KEY,EC2_CERT;您也可根据需要设置JAVA_HOME和PATH),旋转起来的情况下,获取新的实例的名称,以及连接:

$ EC2-运行情况AMI-31814f58 -k我-密钥对-t t1.micro $ EC2-描述,实例$的ssh -i我-密钥对ec2-user@ec2-108-22-252-188.compute-1。amazonaws.com

接下来你要设置MySQL和一些基本软件包。这里向大家推荐的MySQL的Percona的免费版本:

$转-Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm$百胜安装-y的Percona-服务器共享COMPAT $百胜安装-y Percona-服务器 - 服务器 - 55 $百胜安装-y的Percona-Server的客户端 - 55 $百胜安装-y libdbi-DBD-mysql的

坐落于新的MySQL实例的root密码,然后你就可以开始。

或许最困难的转变,你会做适应你的思维,以云计算是围绕虚拟机本身。AWS实例是建立在虚拟化技术,虽然他们坐在物理硬件之上,其行为你已经习惯了服务器很像,虚拟机不可靠的物理的。这些机器可以从下你和你的应用程序中消失了,恕不另行通知。因此,冗余,高可用性和脚本自动化是关键。这种压力也放灾难恢复前面和中心。现在不用再降级到任务的最佳做法的列表,你会得到在其他紧迫问题得到解决,灾难恢复成为当务之急。

举个例子来说,什么样的运营团队在Netflix的决定做。他们想满足这个服务器的可靠性问题的头,所以他们建立了一个的软件,将发挥俄罗斯轮盘赌他们的服务器。所结果的混沌猴随机击倒台服务器的生产环境在一天中。什么是更不可思议的是如何说明了双方在AWS云硬币。一方面,服务器是不可靠的;另一方面,亚马逊提供与建立在你需要的所有冗余的工具。

例如,亚马逊使得使用多个数据中心无缝的。2020欧洲杯预赛他们组织周围环境中的可用性区域和地区中的对象(AMIS,快照,实例等)。目前有七个地区从AWS政府云计算市场之外,包括弗吉尼亚州,俄勒冈州,加利福尼亚州,爱尔兰,新加坡,日本和巴西进行选择。每个区域包括多个数据中心。2020欧洲杯预赛这些区域,构建之间复制您的数据库中的数据,并保持新鲜你的服务器的图像,并自动按钮重建与最稳健运行和容错基础设施成为可能。

当心磁盘I / O的变化关系数据库经常出现过于复杂的野兽。但他们已经演变他们必须提供的强大功能的阵列的方式。我们可以将它们全部数据,那么混合和匹配数据要求复杂的问题,并根据无尽的一系列条件选择切片。

SQL语言的背后,我们用它来获取数据并进行更改,关系数据库的底层引擎 - 无论是MySQL和甲骨文,或SQL服务器- 具有读取和写入数据到磁盘,保持最热(最要求)位在内存中,并最终保护针对服务器故障的唯一工作。

这就是说,磁盘I / O - 与您读写到底层存储系统的速度 - 是至关重要的。在Oracle的早期,例如,你有RAID之前,数据库引擎提供的方法来磁条数据在多个磁盘,并强调将重做日志,以防止数据丢失自身的磁盘完全。当RAID成为广泛使用,数据库管理员可以简单地放置在一个卷上所有的数据文件和RAID阵列将采取其他的事情。

进入本日在那里亚马逊EBS(弹性块存储)的虚拟化,让你砍了一个RAID阵列,坐在某处网络上的一片并将其连接到任何实例。这大大提高了操作的灵活性,允许硬件容易编程的变化,但与任何新的解决方案也有挑战。

EBS抓斗与共享网络资源的限制。许多服务器和许多客户都将使用该网络存储,所以他们的资源使用率有可能影响你的服务器。亚马逊的服务水平协议承诺的平均磁盘I / O吞吐量;然而,吞吐量可以提升在给定的时间内大幅下降。这门波动两种方式。当磁盘子系统是由多个租户过度使用,您会收到更少的资源;当它变得没有得到充分利用,你将获得更多的。

保留异地备份复制是非常适合高可用性解决方案,将覆盖您应该在主数据库失败你。但是,如果亚马逊遭受影响网络或EBS一般一个站点范围故障?这些方案能够而且确实发生了。

为了防止这种后卫,利用亚马逊的全球数据中心的扩散。2020欧洲杯预赛请将您的对象和实例在各种AWS地区。您可以选择的MySQL的Multi-AZ选项,这与RDS启动,自动复制数据到另一个数据中心。2020欧洲杯预赛或者你可以在你的主要供应区域和其他区域复制从建立你自己的MySQL主数据库。

此外,考虑这样一个场景,一个法院提起诉讼或传票影响亚马逊。在发现阶段,一个广阔的净意外吸引您的服务器陷入困境,打断你的业务。

在这两种情况下,你需要恢复你的应用程序中的最后一搏保险。脚本可以根据环境的复杂程度而有所不同。对于只是一对夫妇的服务器,你可以建立你的形象,你喜欢它,那么快照并使用它作为您的金标准服务器。当实例旋转起来,用户数据脚本调用,您可以提供履行最后的步骤或额外的配置需求。

对于更复杂的环境,Scalr或RightScale的可以提供自动化需求的模板解决方案。对于更复杂的环境,或在运营团队准备拥抱配置管理发挥到淋漓尽致,厨师和木偶可能是你的选择。构建了自动化脚本之后,可以在Amazon或其他云提供商中部署新服务器,然后部署代码和配置。最后一步,你要恢复你的数据;有了异地备份,您就可以覆盖这个基础。

缓存积极缓存是在云中的关键,可以保证通过四种模式缓存的高性能:缓存在浏览器中缓存的对象,查询缓存和缓存数据。

缓存在浏览器中:在页面中的所有项目,该浏览器获取可以被缓存。这包括图片,HTML对象,代码等等。虽然很多浏览器都配置为执行默认缓存的很多,这往往是不够的。这是因为Web页面返回到与主要指挥,由Web服务器本身配置的高速缓存控制设置的浏览器。这是运营团队的好消息,因为这是另一个开关或拨号可以转向加快速度。

通常情况下,高速缓存控制应以一周的最大年龄来设置。这将成为发送到浏览器对象的默认。它们仍然可以在代码和应用程​​序逻辑手动过期是必要的。

缓存对象:对象缓存是一个伟大的除了在Web服务器层的缓存层。应用程序代码,如PHP或Ruby包括利用内存缓存的图书馆,一个流行的对象缓存句柄名称和值对。每当数据从数据库请求,对象缓存首先检查。如果可用,数据将返回尽可能快100倍 - 没有网络往返于数据库中,没有复杂的数据库查询或缓存。

如果数据不在对象缓存可用时,高速缓存未命中发生,对数据库的请求将随之而来。返回的结果将被放置在目标缓存以备将来使用。

在AWS,一个叫ElastiCache系统级的解决方案是可用的。该技术是建立在内存缓存,但不要求单独配置,监控,或调整。简单地配置您的这个对象缓存的应用程序 - 你是关闭和运行。可扩展性是建立在作为奖金。

缓存查询:哦,这些查询,需要注意堆,让他们正好和尽可能多的关注,让他们正常工作!这就是为什么查询缓存应该在你的设备性能阿森纳的另一种工具。一定有它在MySQL中启用并配置了足够的内存,所以其使用寿命结束之前有用的查询未到期。

在查询缓存缓存将保留查询计划和数据在同一个地方。如果数据库发现它已经在过去的运行查询的精确匹配,它会发送回给Web服务器,而完全不进行任何实际工作。

缓存数据库数据:MySQL数据库包含一个称为缓存非常重要的设置。这缓存所有的索引和表数据。因为这是以前缓存将产生唯一符合逻辑的读取数据,你会避免一吨的I / O连接到数据文件。正如我们已经提到,由于EBS的挑战虚拟化存储,这是在亚马逊AWS环境更加重要。

缩放数据库层Web服务器层可以设置在AWS自动缩放,因为每个服务器的数据没有动态变化。当然,一些文件和图片上传或新的代码部署,但这种间断性地发生。

缩放数据库层,但是,通常涉及一点技巧和认真执行的,因为它提出了特殊的挑战。最广泛使用的方法是保持一个单一的主数据库。这个数据库接收所有的变化,如插入,更新,从应用程序中删除语句。所有的应用程序选择活动被发送到一个或更多的奴隶。这些可定期重新映像,所以你总是有你的MySQL从最新副本准备的图像。当您需要添加读能力,简单地旋转起来的最新图像,该实例将开始,MySQL将启动并连接到单主机就像别人一样。

如果主数据库上的能力正在减弱,您可以垂直扩展该服务器。成立于AWS一个新的,更大的EC2实例,然后将它复制关闭主。所有现有的奴隶点设置为新的主,那么故障转移应用到新的,更大的实例。瞧,你已经与零停机垂直缩放。

对AWS数据库可行的建议现在您已经掌握了AWS环境以及在迁移过程中会遇到的一些障碍,下面列出了数据库迁移到云中的一些注意事项,特别是性能和灾难恢复方面的注意事项。

性能提示你要更加积极地比你已经做管理绩效,以保持响应您的应用程序和用户已经期待的同一水平。这里有四个提示,以帮助保持您的数据库实例哼唱:

12 第1页
页面1的2
IT薪资调查:结果是