阿里云RDS&DRDS初探
简介
RDS
阿里云关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,RDS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS(Postgre Plus Advanced Server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。
RDS for MySQL 可以认为是云上的MySQL。目前可选的版本有5.5/5.6,部分区域可选择5.7。
DRDS
分布式关系型数据库服务(Distributed Relational Database Service,简称 DRDS)是阿里巴巴致力于解决单机数据库服务瓶颈问题而自主研发推出的分布式数据库产品。DRDS 高度兼容 MySQL 协议和语法,支持自动化水平拆分、在线平滑扩缩容、弹性扩展、透明读写分离,具备数据库全生命周期运维管控能力。DRDS 前身为淘宝 TDDL,是近千核心应用首选组件。
DRDS 可以认为是云上的TDDL中间件。DRDS必须依赖RDS。
相关文档
RDS首页
https://www.aliyun.com/product/rds/mysql
RDS控制台
https://rdsnew.console.aliyun.com
RDS文档
https://help.aliyun.com/product/26090.html
DRDS首页
https://www.aliyun.com/product/drds
DRDS控制台
https://drds.console.aliyun.com/prectrl/home/index
DRDS控制台不在左侧快捷菜单中,可以直接通过链接进入
DRDS文档
https://help.aliyun.com/product/29657.html
RDS初探
- 进入控制台,点击右侧的"创建实例"
创建RDS实例需要几分钟的时间
- 按量付费,最低配置的RDS实例,目前为0.324元/小时
这里选择5.6版本,猜测在工具的支持上BUG会少一些
-
在实例列表中可以看到已创建的实例
点击进入详情页可以进行实例状态查看以及管理
-
创建数据库、创建帐号的操作比较简单,不再赘述。
-
添加IP白名单
首先,在数据安全性中,将default分组中的127.0.0.1临时改为0.0.0.0/0,允许所有地址访问
登录数据库:
mysql -hrm-xxxxxxxxxxx.mysql.rds.aliyuncs.com -P3306 -utestuser -p
查询当前IP:
show processlist;
在数据安全性中,尽快将default分组中的IP由0.0.0.0/0改回当前的真实的IP。 -
登录数据库
接下来可以用命令行或第三方工具进行登录。RDS不提供root用户。 -
其它功能
另外可以添加只读实例、灾备实例,按需购买即可,猜测原理应该是基于主从复制的。
另外可以在WEB界面中进行数据迁移、导入等操作。
WEB控制台中提供了比较完善的日志查询、慢SQL分析、监控与告警功能点,有时间可以慢慢探索。
DRDS初探
-
进入控制台,点击右侧的"创建实例"。
-
按量付费,共享实例的DRDS,目前价格为0.2元/小时。
按量后付费的需要提前向帐户中充值
-
购买后创建过程非常快,马上就可以在概览中看到。
-
进入"详情"页面后,目前DRDS下还没有数据库,可以点击下方链接进行创建。
请注意: 此步骤依赖于RDS,需要先进行RDS的购买。
RDS购买时,请注意需要在同一个区域中,尽量不要跨区。
-
如果已经购买过RDS,并创建了一个实例,就在左侧的实例清单中就可以选择到了。
-
填写基本信息,创建类型这里选择"拆分"。设置好数据库名及密码。
拆分:即分库分表,将数据按照拆分规则分拆到多个库表中,由 DRDS 代理 SQL 执行。拆分涉及到数据导入导出、SQL 功能/性能测试和改造,对应用功能和性能会有一定的影响。
非拆分:将已有的 RDS 数据库交由 DRDS 进行代理访问,实现读写分离的功能。无需进行数据导入,无需修改程序代码,修改数据库连接串和用户名密码即可。
- 系统会自动在RDS实例上创建8个分库,直接点"下一步"创建成功。
创建数据库需要几分钟的时间
-
创建完成后,可以在DRDS数库列表中看到
在RDS控制台中也可以看到自动创建的8+1个库,绑定帐号名随机生成,密码与DRDS密码是不同的,估计也是随机生成,所以无法直接登录查看RDS库,只能在DRDS中统一管理。
-
点击"管理",可以查看详情页面
-
WEB界面登录
详情页面,点击上方的"登录数据库"按钮,有一个WEB图形化控制台
但点击登录后,会报错:Access denied for user ' xx'@'xx.xx.xx.xx'
原因未知,有可能是IP限制。官方文档中也未给出示例。 -
命令行登录
可以使用命令行登录
mysql -hdrdsxxxxxxxxpublic.drds.aliyuncs.com -P3306 -uyourname -p
版本显示为 5.6.29-TDDL-5.1.27-1217986 -
第三方客户端登录
可以使用第三方客户端登录,如Sequel Pro,也可以正常登录。
(之前用过的的Cobar/MyCat都是比较挑客户端的)
-
在DRDS执行一个简单的建表语句测试
建一个普通表:
CREATE TABLE normal_table(
id int,
name varchar(30),
primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
建一个分库表:
CREATE TABLE shard_table(
id int,
name varchar(30),
primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by hash(id) tbpartition by hash(id) tbpartitions 3;
在WEB控制台中可以查看表的基本信息: