Amazon RDS MySql入门指南

原文: http://ramonblog.cloudfoundry.com/blog/4fd831002de195990a000001


AWS提供的RDS(Relational Database Service)是AWS的数据库解决方案之一,它是基于关系数据库的,支持MySql,Oracle和MS SqlServer。这里只简单介绍以下Mysql的应用,更多信息请查看RDS官方文档。

创建实例

首先可以访问AWS Console登陆,如果没有注册的话,可以免费注册一个帐号。AWS的好处是提供了有限的免费使用,而且收费也是根据你的使用情况进行的。如果你的操作在免费限额之下,当然你就可以快乐地享用“免费的午餐”,但是这个需要你不断去关注你的使用情况,从Console中访问Account Activity可以看到个人的收费情况。在使用每个服务之前,最好要大概了解一下计费规则,否则不小心就会给你一个惊喜。我在公司的帐号使用的情况下,想当然地改了一下RDS实例的设置,从small数据库变成large数据库,前者有个免费额度,后者是直接收费,每小时40几美分,结果一两个星期下来就花了将近100美金。幸好发现地及时,立即改回来,否则还不知道要花多少钱。

  1. 进入RDS Console,可以在左边的导航栏选择DB Instances选项,然后选择Launch DB Instance来创建实例,建议都采用默认选项,这样才能免费。在DB Security Group选项中把default和remote tool access group都选中。同时记得设置master user name和password。
  2. 左侧导航栏选择DB Security Group,选择default,然后在页面下端的表格中,分别增加CIDR/IP和EC2 Security Group,前者指定哪些ip(使用提示的ip即可,它指向你现在的机器)可以访问,后者指定可以被EC2的实例访问,如Beanstalk;选择 remote tool access group,做同样的操作,这样后面的Mysql Workbench才能连接上。

通过MySql Workbench连接RDS

  1. 下载并安装MySql Workbench
  2. 从RDS Console中选中新建的数据库实例,在页面下端显示了该实例具体的信息,记下endpoint和dbname。
  3. 打开mysql workbench,选择New Connection,然后进行如下设置: 
    hostname: 填写步骤2中的endpoint 
    port: 3306 (如果你没有修改过的话就是这个,修改了之后可以通过步骤2看到) 
    username: 你的用户名 
    password: 你的秘密 
    default schema: 步骤2中的db name。
  4. 点击Test Connection就可以连接上了,接下来就可以像操作本地数据库一样的操作RDS实例了。

备份/还原

默认地RDS会自动定期备份,这个备份的设置是可以选择Modify按钮来修改的。RDS也提供了手动备份,点击Take Snapshot按钮即可。

而还原只要在DB Instance中选择你的实例,然后选择Restore To Point in Time。这个会让你设置想还原到的时间点,这个还原是基于自动备份的。所以你不能轻易禁止自动备份。RDS提供的手动还原,则是在DB Snapshots中,选择备份,然后点击Restore From DB Snapshot,这个时候要求填写DB Instance的名字,这个名字必须是唯一的,这也就意味着,新的数据库是完全复制这个备份的。举个例,如果你想把production的数据库导入dev数据库,那么首先要删掉已经存在dev数据库实例,然后在还原的时候填写之前的dev db instance id。幸运的是,dev的endpoint会被重用,也就是说你的Beanstalk中的数据库连接不需要修改。

导入数据

参考官方的数据导入文档,我没有用过也不知道会不会很复杂。

一些MySql设置

MySql的参数设置可以在DB Parameter Group中看到,这些都是MySql所能支持的,如slow_query_log, event_scheduler. 
注意在RDS中这些参数的设置必须要通过RDS的CLI(Common Line Tool),安装参考使用RDS CLI,而具体如何使用CLI修改参数则参考文章修改参数组

  1. slow_query_log 
    这个设置默认是Off,表示不记录性能差的query语句。你也可以通过下面的Sql语句来查看它的值,更详细的语法参考官方文档: 
    show variables like 'slow_query_log'; 
    而修改设置则是: 
    set global event_scheduler =1; 
    但是这样的设置在workbench当中似乎不能起作用,报错为“Access Denied, you need SUPER privilege”.

正象前面说的,需要安装RDS CLI(我发现AWS各个服务都有不同的CLI,实现也不多,RDS CLI用java,Beanstalk用Ruby,估计以后会统一起来吧)。参考上面提到的安装RDS CLI之后,你就可以用CLI来修改了。具体的命令如下:

#查看已有的设置,dev-para-group为目标参数组 
#你可以重定向到less然后分页显示或进行查找, 
#也可以增加--source选项,具体参数可以运行 rds-describe-db-parameters --help 
rds-describe-db-parameters dev-para-group --headers

#修改参数 
rds-modify-db-parameter-group dev-para-group \ 
--parameters="name=event_scheduler, value=on, method=immediate" \ 
--parameters="name=slow_query_log, value=on, method=immediate"
 
修改参数之后需要将数据库实例的参数组选项改成你刚才设置的,并且要求立即重启以使修改生效。

  1. event_scheduler 
    这个参数的设置是为了使用mysql的event scheduler,定时完成某些任务。具体的使用方式则是参考Mysql的文档了。

Monitor图表相关问题

  1. Connection数量 
    在我的应用当中,Connection数量基本上在6-8,肯定不会超过8.究其原因是我使用了commons-dbcp,并且使用了默认设置,max_active是8,也就是说最大的活动的连接数为8,所以可以看到连接数没有超过8。那为什么总是6-8的连接数,并没有释放呢?因为默认的max_idle也是8,意味着最多可以保留8个连接数。
  2. Ava Memory 
    可用的内存似乎总是在减少,这是因为MySql的cache机制,会缓存很多内容以提高性能,如果内存不够了,就会释放很多,这个时候你就能看到可用内存增加了。所以说当你看到这个的时候不用太担心。

你可能感兴趣的:(Web,Design,J2EE)