首先,本项目的目标是将本地的Oracle数据库迁移到云上的Amazon Aurora数据库。
原则:
一、Amazon Aurora数据库的优势
相同硬件环境下,Amazon Aurora的吞吐量是标准MySQL的5倍,标准PostgreSQL的3倍。
这一性能与商业数据库旗鼓相当,而成本只有后者的十分之一。可以跨3个可用区(AZ:Availability Zone)建最多15个低延迟的只读副本,来扩展读应用的能力和性能。
Amazon Aurora提供超过4个9的可用性标准(注:一年可非计划停机52.6分钟)。在跨3个可用区内每份数据有6个副本,因此Aurora有容错及自愈功能。
Aurora持续备份数据到Amazon S3上,当发生物理存储损坏或者实例故障时能够进行透明恢复,恢复通常在30秒内完成。
Amazon Aurora为数据库提供了多个级别的安全。包括用Amazon VPC进行网络隔离,通过AMS秘钥管理服务进行数据加密,通过SSL进行加密数据传输。
一个加密了的Amazon Aurora数据库实例,底层存储的数据是加密了的,自动备份、快照及集群中的副本也是加密的。
Amazon Aurora由 Amazon RDS(Amazon关系数据库服务)全面管理。你不必再担心数据库的日常管理,比如硬件预置、软件补丁、安装、配置及备份。
Aurora会持续地监控数据,并自动将其备份数据库到Amazon S3,因此可以实现精细的时间点恢复策略。可以用Amazon CLoudWatch、增强监控功能监控数据库性能,还可以用Performance Insights帮助快速检测性能问题。
二、Amazon Aurora体系结构
当我们创建一个Amazon Aurora实例时,首先创建了一个数据库集群。一个数据库集群由一个或多个数据库实例组成,集群中的集群卷(cluster volume)管理所有实例的数据。
Aurora集群卷是一个虚拟的数据库存储卷,横跨多个可用区,每个可用区有数据库集群数据的一个副本。
一个Aurora数据库集群由两种类型的数据库实例组成,主实例(Primary instance)和副本实例(Aurora Repilca):
三、分支的选择:MySQL和Postgres的区别
挑选合适的数据库技术是非常重要的,应用需求、可用性、安全需求决定了哪种技术更满足需要。下表罗列了MySQL和Postgres的关键区别(针对从Oracle迁移过来,选谁更合适这一需求):
四、最终选择及采取策略
Postgres成为了最终的赢家,因为应用不能遵循MySQL的规则。MySQL要求,如果表有Primary key或者unique key,那么分区表的分区列必须包含在唯一键或者主键里。另外,interval分区特性也是个考虑点,能降低运营成本。
迁移策略
整个迁移流程基本如下图所示(从RDS Oracle到Aurora Postgres都是在云上完成):
回退策略
整个迁移应该说作者写得还是有点简单了,AWS有更详细的文档,在迁移三步走的playbook里:
它对Oracle一些重要的特性与Postgres做了较详细的对比(异构数据库间的迁移都可以参考下):
SQL&PL/SQL方面:
表和索引方面:
数据库对象方面:
数据库管理方面:
我们可以看到除了交换分区和UTL_file是不支持的,其他大部分Oracle功能Aurora Postgres都满足。其实这是很正常的,PostgreSQL是对Oracle兼容性***的开源RDBMS。
Amazon在2018年将它***的数据仓库从Oracle迁移到了Amazon Aurora(虽然在Prime Day那天宕机了,但此后一直稳定运行,说明这个迁移还是很成功的)。在Prime Day期间,这个Aurora数据库承载的业务每天处理超过100万个包裹。
并且计划要在2019年底把所有在用的Oracle数据库都迁移到AWS自己的数据库上,说明Aurora在架构和工程上都已经可以承载大规模应用了。对于一般规模的电商应用来说,应该是小菜一碟,intuit的实践也说明了这一点。
在这篇文章的***,有2个回复都是在赞扬Aurora。
我们在用Aurora,非常棒!我现在看不到任何用Oracle的必要性了。
在Santa Clara参加AWS峰会上,一个客户分享过类似的案例。他们从Oracle迁移到了AWS,节省了大量资金。更为重要的是,响应时间从36小时缩短到30秒钟,而且易于使用,易于管理,易于操作。超酷!AWS可能会终结正在苦苦挣扎的Oracle。
要不是实名评论,我怎么都怀疑是厂家在自吹自擂。到官网看了下,目前使用Aurora数据库的用户主要在国外:
联合国信息系统主管Mohamad Reza评价:
联合国运营着多个拥有全球影响力的网站,需要关键任务型可靠性和一致的性能。即使使用Amazon Aurora最小的数据库引擎,我们也能够实现卓越的性能。
Amazon Aurora的全新用户友好型监控界面让我们能够轻松诊断和解决问题。它的性能、可靠性和监控能力真正表明了Amazon Aurora是一个企业级AWS数据库。
Wappa***技术官Cesar Matias评价:
为了帮助我们的客户减少公司差旅费用,我们的平台需要快速找到交通工具,并加快制定预算以及支付和报告流程的速度。
自从我们将Oracle数据库迁移到Amazon Aurora以来,我们的用户验证流程速度提高了60%,每位用户的报告时间缩短了75%,支付流程速度也加快了70%。我们清楚看到了应用程序的用户增长数量和用户满意度评分结果。
BMC数字服务管理部总裁Nayaki Nayyar评价:
我们很高兴地宣布在AWS云上推出Remedy ITSM。在我们支持迁移到Aurora PostgreSQL后,我们的客户现在可以从***的云服务中受益,安装时间缩短3倍,并且可以降低拥有成本。
Nielson Watch部门架构负责人Todd Lightbody评价:
通过使用Amazon Aurora PostgreSQL预览版,我们发现Amazon Aurora PostgreSQL的性能非常好,无论是对于写入工作负载,还是读/写工作负载,性能都是RDS PostgreSQL的7到11倍以上。
我们对能够获得预期的可扩展性和可靠性感到兴奋,因此可以确信,我们将部分核心数据库工作负载迁移到AWS后,Amazon Aurora PostgreSQL能够满足我们的要求。
副***信息官John Rome评价:
ASU不断努力提高其IT解决方案的灵活性和敏捷性,以求满足客户需求。我们利用Amazon Aurora将报告、提取、转换和加载 (ETL) 时间缩短10倍以上,同时将Oracle工作负载替换为高性能云数据库,以快速响应用户请求。
考虑到今年秋季会有大量学生入学,到时系统负载会达到峰值,我们的ASU Alexa技能和ASU移动应用程序将受益于Amazon Aurora的可扩展性。
另外,新的Amazon Aurora Serverless功能能够帮助我们减少非生产环境的成本,从而让我们能够灵活支持使用模式不规律的数据仓库和ETL流程。
今年或明年你有计划将Oracle迁移到其他数据库么?
参考
原文链接:
https://www.linkedin.com/pulse/oracle-amazon-aurora-journey-rajesh-saluja
参考链接:
https://www.dbbest.com/services/migrate-oracle-to-amazon-aurora-postgresql/
https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf
https://www.cnbc.com/2018/10/23/amazon-move-off-oracle-caused-prime-day-outage-in-warehouse.html
https://aws.amazon.com/cn/rds/aurora/customers/
今日国内领先的智能数据服务运营商觉非科技完成近亿元A轮融资。本轮融资由和高资...
前言 关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。 如果你遇到这...
一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控...
大家好,今天我们来简单的聊一聊缓存问题。什么是缓存呢?它在系统设计中是在一个...
本文实例讲述了jsp中page指令用法。分享给大家供大家参考。具体如下: 一、JSP ...
一、简介 本设计为硬币图像识别统计装置通过数码相机获取平铺无重叠堆积的硬币的...
从功能测试、性能测试、界面测试、安全性测试、易用性、兼容性测试、震动测试七...
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: u 红桃按照从...
我们知道微软将会在今年给Windows10更换全新设计的UI,让Windows10的界面更加整...
git工作区,暂存区,版本库之间的关系: 我们建立的项目文件夹就是工作区,在初...