在亚马逊云法师的MySQL

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

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

对于许多MySQL数据库管理员来说,Amazon Web服务代表了云计算的美好新世界——充满了正在消失的服务器、磁盘I/O可变性和其他共享资源挑战,更不用说关于数据安全性的问题。

但是对于那些寻求强大的灵活性,云计算提供MySQL数据库部署,AWS只应被视为下一个数据中心进化中自然的一步——一个虚拟化和硬件是给定的,和可伸缩性,性能和高可用性很容易达到。雷竞技电脑网站

[想要在2012年全面了解企业云的状态,请查看InfoWorld。云计算深潜PDF专题报告.|也检查我们的"云安全深潜,“ 我们的 ”云存储深潜“和我们的”云服务深度潜水” |保持与InfoWorld的云云计算的报告简讯.]

为了帮助dba利用Amazon所提供的功能,我们编写了以下关于管理Amazon云中的MySQL数据库的入门教程。在此过程中,您将发现一些必要的工具和技术,用于将数据库迁移到AWS,对其进行调优以获得高性能和高可用性,并避免云计算的缺陷。

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

首先,下载Amazon 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的免费版本:

$ yum安装-y percona- server- share -compat$ yum安装-y Percona-Server-server-55$ yum安装-y Percona-Server-client-55$ yum安装-y libdbi-dbd-mysql

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

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

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

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

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

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

也就是说,磁盘I/O——读写底层存储系统的速度——是至关重要的。例如,在Oracle的早期,在使用RAID之前,数据库引擎提供了跨许多磁盘对数据进行条带化的方法,并且它强调使用redologs来完全保护自己磁盘上的数据不丢失。当RAID变得广泛可用时,dba可以简单地将所有数据文件放在一个卷中,而RAID阵列将处理其余的数据文件。

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

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

保留异地备份复制对于高可用性解决方案非常有用,如果主数据库出现故障,它可以覆盖您。但是,如果Amazon出现了影响网络或EBS的站点范围故障怎么办?这些情况确实会发生。

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

此外,考虑一个法庭诉讼或传票影响到Amazon的场景。在发现阶段,一个膨胀的网络意外地将您的服务器拉入混乱,中断了您的业务。

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

对于更复杂的环境,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薪资调查:结果是