在2016杭州云栖大会第二日,袋鼠云联合创始人丁原在飞天服务专场分享了《EasyDB for Oracle——基于阿里云的Oracle最佳实践》。他主要从云上Oracle可行性分析、云上Oracle数据库架构、EasyDB for Oracle三个方面进行了分享,详细介绍了Oracle传统架构、云下(传统)经典数据库架构、Oracle云上4种架构的实现和优缺点。
以下内容根据演讲PPT及现场分享整理。
可行性分析
数据库关注点
不管是线上还是线下,数据库应该关注什么?第一,性能好坏。第二,数据不能丢失,将数据放到阿里云上是否能够丢失?第三,高可用,故障快速恢复。阿里云上能否搭建Oracle,怎么做高可用,性能能否满足需求?这个话题在阿里云至少讨论了三年。
Oracle传统架构(淘宝架构)
淘宝是2005年到2010年Oracle数据库做的比较好的公司,其架构如上图所示。服务器在数据库上方,中间部分是响应机和存储。淘宝可以做到确保在同个地区任何一个机房断电,数据都不会丢失。但是,异地容灾数据仍然会发生丢失。淘宝的架构分析概括为:
- 前期使用小型机+存储,后期使用X86服务器+SSD磁盘;
- 同城跨机房容灾,数据复制通过redo强同步,确保数据不丢失;
- 考虑到RAC(大概是单机1.2-1.5倍以内)性能损耗和维护难度,淘宝OLTP也一直都没用RAC,采用主备库架构,主备库故障切换时间分钟级,可满足大部分业务场景。
ECS虚拟机性能评估
由于阿里RDS没有提供Oracle,所以只能在ECS上搭建Oracle。数据库最重要的是看IOPS,ECS磁盘的SSD云盘能做到最多2ms的延迟,单盘吞吐量可以达到200M以上,单盘IOPS能达到20000,而阿里云支持4块盘,IOPS能达到80000。云盘有另外的一个好处是其写入三份数据副本,保证了数据零丢失。综上所述,SSD磁盘能力概括为:SSD云盘单块最大32T(4块盘128T)容量,单盘最大20000IOPS(4块盘80000IOPS),可满足大部分空间和性能需求;云盘飞天分布式存储技术,三份数据副本,做到了数据零丢失。
云上Oracle可行性分析
结论如下:
- 云上ECS能满足大部分Oracle性能需求;
- 云上ECS支持同城容灾部署,支持异地灾备部署;
- 云上ECS可做单机版本,可做HA,可做主备库DG模式。
应用场景:
- 在云上直接部署Oracle;
- 可考虑混合云架构,云下做生产环境,云上做Oracle灾备环境;
- 可考虑在云上做只读Oracle,业务逐步切换到云上。
云上Oracle数据库架构
云下(传统)经典数据库架构
这是最经典的架构,左边是一个RAC,右边是一个备库,大部分只搭左边这一部分。
Oracle云上的几种架构
- Oracle Single Instanceon ECS
单机版就是买一台ECS、服务器、高性能云盘将其进行备份,easyDB是性能监控平台。这种架构的特点是:Oracle单实例部署;Oracle软件和数据都存放到云盘Redo和数据文件分开存放到不同的云盘;全量,增量备份先存放到云盘,转存到对象存储OSS;依赖ECS云盘特性,确保数据库零丢失;数据库监控接入到easyDB,数据库运维无忧。其优点是单实例、易部署、易维护、SSD。其缺点是,如果ECS出现了问题,那么数据库就会出现问题,这显然不满足期望。
- Oracle HA on ECS
该架构使用SLB做VIP,主库切换是对外的IP是不变的。下方是HA架构,左边部分是主节点,右边是HA节点。一般情况都是主节点在跑,发生故障时自动切换到HA节点。优点是Ha架构、高可用、稳定、SSD,与之前架构的对比是,当ECS出故障时,HA架构的数据库仍然可用。
- Oracle ADG on ECS
如上图所示,左边是Oracle主节点,右边是Oracle只读节点,这是一个云上比较经典的架构。其特点是:Oracle云上HA方案;通过两台ECS来实现Oracle数据库的HA;通过SLB来做数据库的VIP服务;依赖ECS云盘特性,确保数据库零丢失;数据库故障切换采用easyDBHa模块,故障自动切换;监控接入到easyDB,数据库运维无忧。
- Oracle 云上云下混合云架构
数据库是企业最核心的资产,所以一般放在最核心的机房,数据库可以放在云上,也可以放在云上,云上云下可以做相互的备份。这样就解决了灾备的问题,因为做灾备必须要选择一个机房。该混合云架构的特点是:云上云下互为容灾,免除在异地建设灾备中心的成本,保护已有IT投资价值,实现低成本高可靠性灾备;考虑先把数据库备库,只读库可以先放到云端,备份先放到云端,关注专线的网络带宽。
EasyDB for Oracle
EasyDB 是数据库管理平台。阿里云的RDS没有Oracle的解决方案。所以,EasyDB是RDS的补充,是Oracle上云和云上Oracle整体解决方案,沉淀了淘宝数据库团队十年的数据库经验,为企业提供一站式Oracle数据库管控服务。
EasyDB for Oracle可以实现一键备份、一键切换、资源管理、Top SQL、监控、审计等功能,并且具有高可用、高性能、易运维的特点。