当前位置: 首页 > 科技观察

AWS云迁移实践:从Oracle到AWSAurora的旅程

时间:2023-03-13 00:52:16 科技观察

首先,本项目的目标是将本地的Oracle数据库迁移到云端的AmazonAurora数据库。原则:零数据丢失,零数据损坏1.AmazonAurora数据库的优势高性能和可扩展性在相同的硬件环境下,AmazonAurora的吞吐量是标准MySQL的5倍,是标准PostgreSQL的3倍。此性能与商业数据库相当,成本仅为商业数据库的十分之一。最多可以跨3个可用区(AZ:AvailabilityZone)创建15个低延迟只读副本,以扩展读应用的能力和性能。高可用性和持久性AmazonAurora提供超过49个可用性标准(注:每年52.6分钟的计划外停机时间)。每个数据在3个可用区中有6个副本,因此Aurora具有容错和自我修复能力。Aurora持续将数据备份到AmazonS3,当物理存储损坏或实例故障时可以进行透明恢复,恢复通常在30秒内完成。高安全性AmazonAurora为数据库提供多个级别的安全性。包括与AmazonVPC进行网络隔离,通过AMS密钥管理服务进行数据加密,通过SSL进行数据加密传输。一个加密的AmazonAurora数据库实例,底层存储数据加密,集群中的自动备份、快照、副本也加密。完全托管的AmazonAurora由AmazonRDS(Amazon关系数据库服务)完全托管。您再也不用担心数据库的日常管理,例如硬件配置、软件补丁、安装、配置和备份。Aurora持续监控数据并自动将数据库备份到AmazonS3,因此可以实施细粒度的时间点恢复策略。您可以使用AmazonCloudWatch、增强监控和PerformanceInsights监控数据库性能,以帮助快速检测性能问题。2.AmazonAurora架构当我们创建一个AmazonAurora实例时,我们首先创建一个数据库集群。一个数据库集群由一个或多个数据库实例组成,集群中的集群卷管理着所有实例的数据。Aurora集群卷是一个跨越多个可用区的虚拟数据库存储卷,每个可用区都有一份数据库集群数据。一个Aurora数据库集群由主实例(Primaryinstance)和副本实例(AuroraRepilca)两种数据库实例组成:主实例:支持读写操作,完成对集群卷(clustervolume)的所有数据修改.每个Aurora数据库集群有一个主实例。副本实例:只支持读操作。每个Aurora数据库集群最多可以向主实例添加15个副本实例。多个副本实例分担读取压力,将副本实例分散在不同的可用区,增强数据库的可用性。下图展示了Aurora数据库集群中集群卷、主实例、副本实例之间的关系:3、分支选择:MySQL和Postgres的区别选择合适的数据库技术非常重要,这是由应用需求决定的、可用性和安全性要求哪种技术更适合需求。下表列出了MySQL和Postgres的主要区别(对于从Oracle迁移过来的,哪个更合适):4.最终的选择和策略Postgres成为了最终的赢家,因为应用程序无法遵循MySQL的规则。MySQL要求如果表有主键或唯一键,那么分区表的分区列必须包含在唯一键或主键中。此外,间隔分区功能也是一个考虑因素,可以降低运营成本。迁移策略查看AmazonSCT工具输出的迁移评估报告,对报告中提到的问题项进行更正。在AWS上创建OracleRDS并将数据从本地Oracle数据库迁移到OracleRDS。如果应用不能接受宕机割接,在本地Oracle和云上OracleRDS之间部署Goldengate复制。使用模式转换工具(SCT,SchemaConversionTool)将模式从Oracle转换为Aurora。在初始数据同步之前禁用AmazonAurora上的所有外键。对于持续运行的应用程序,使用DMS(AWS数据迁移服务)将数据从OracleRDS迁移到Postgres。在AmazonAurora上启用所有外键。在postgres上配置自动功能以自动清除旧分区。DDL/DML复制是DMS的开箱即用功能。我问是否支持DDL/DML复制?当然!并且不需要配置任何其他东西。数据库性能深度分析(PerformanceInsights)也是一个开箱即用的功能。目前仅支持AmazonAurora。删除迁移过程中的临时资源(如复制实例、任务、端点、OracleRDS等),迁移工作完成。整个迁移过程基本如下图所示(从RDSOracle到AuroraPostgres在云端完成):回滚策略使用DMS回滚,或者使用Goldengate。Postgres用作源,OracleRDS用作目标。将现有或增量数据从源迁移到目标(取决于回退方法以及应用程序可以容忍回退停机的时间长度)。整个迁移应该说作者写的有点简单,AWS有更详细的文档,三步迁移playbook中:对Oracle和Postgres的一些重要特性做了比较详细的比较(异构数据库间的迁移)可以参考以下):SQL&PL/SQL方面:表和索引方面:数据库对象方面:数据库管理方面:我们可以看到,除了swap分区和UTL_file,其他大部分Oracle功能都被AuroraPostgres满足了。其实这很正常,PostgreSQL是开源的RDBMS,与Oracle的兼容性最好。Amazon在2018年将其最大的数据仓库从Oracle迁移到了AmazonAurora(虽然在PrimeDay宕机了,但此后一直稳定运行,说明迁移还是很成功的)。在PrimeDay期间,Aurora数据库托管业务每天处理超过100万个包裹。并且计划在2019年底将所有在用的Oracle数据库迁移到AWS自有数据库,这说明Aurora在架构和工程上已经可以承载大规模的应用。对于一般规模的电子商务应用来说,应该是小菜一碟,intuit的实践也说明了这一点。文末有2条回复称赞Aurora。我们正在使用Aurora,它很棒!我认为现在没有必要使用Oracle。在SantaClara的AWS峰会上,一位客户分享了类似的案例。他们从Oracle迁移到AWS并节省了大量资金。更重要的是,响应时间从36小时缩短到30秒,而且易用、易管理、易操作。凉爽的!AWS可能会结束苦苦挣扎的甲骨文。要不是实名评论,我怀疑是厂家在吹牛。去官网看目前极光数据库的用户主要在国外:联合国联合国信息系统主任MohamadReza评价:联合国运营多个具有全球影响力的网站,需要关键任务的可靠性和一致的表现。即使使用AmazonAurora最小的数据库引擎,我们也能够实现出色的性能。AmazonAurora新的用户友好型监控界面可以轻松诊断和解决问题。其性能、可靠性和监控能力真正表明AmazonAurora是企业级AWS数据库。Wappa出租车费用管理公司Wappa的首席技术官CesarMatias评论道:为了帮助我们的客户减少公司差旅费用,我们的平台需要快速找到交通工具,并加快预算编制和付款以及报告流程。自从我们将Oracle数据库迁移到AmazonAurora后,我们的用户验证流程增加了60%,每个用户的报告时间减少了75%,我们的支付流程也加快了70%。我们清楚地看到应用程序的用户增长数字和用户满意度得分结果。BMCIT管理软件供应商BMCDigitalServiceManagement总裁NayakiNayyar评论道:我们很高兴地宣布在AWS云上推出RemedyITSM。在我们支持迁移到AuroraPostgreSQL之后,我们的客户现在可以受益于最好的云服务,安装时间缩短3倍,拥有成本降低。尼尔森消费者行为研究公司NielsonWatchDivision架构负责人ToddLightbody评论道:通过使用AmazonAuroraPostgreSQL的预览版,我们发现AmazonAuroraPostgreSQL的性能非常好,无论是写入工作负载还是读取/write工作负载,性能都是RDSPostgreSQL的7到11倍以上。我们对预期的可扩展性和可靠性感到兴奋,因此我们可以确信,当我们将一些核心数据库工作负载迁移到AWS时,AmazonAuroraPostgreSQL将满足我们的要求。ASU亚利桑那州立大学副首席信息官JohnRome评论道:ASU不断努力提高其IT解决方案的灵活性和敏捷性,以满足客户的需求。我们利用AmazonAurora将报告、提取、转换和加载(ETL)时间减少了10倍以上,同时用高性能云数据库替换Oracle工作负载以快速响应用户请求。我们的ASUAlexaSkills和ASUMobileApp将受益于AmazonAurora的可扩展性,因为今年秋季入学的学生人数众多且系统负载达到峰值。此外,新的AmazonAuroraServerless功能帮助我们降低了非生产环境的成本,使我们能够灵活地支持具有不规则使用模式的数据仓库和ETL流程。您打算今年或明年将Oracle迁移到其他数据库吗?参考原文链接:https://www.linkedin.com/pulse/oracle-amazon-aurora-journey-rajesh-saluja参考链接:https://www.linkedin.com/pulse/oracle-amazon-aurora-journey-rajesh-salujadbbest.com/services/migrate-oracle-to-amazon-aurora-postgresql/https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdfhttps://www.cnbc.com/2018/10/23/amazon-move-off-oracle-caused-prime-day-outage-in-warehouse.htmlhttps://aws.amazon.com/cn/rds/aurora/customers/