百万用户级电商云上Oracle架构设计与数据库优化

简介: 某电子商务平台国内注册会员用户数达数百万级别,业务高峰期间一小时内可能会达到数万笔交易。在袋鼠云实施完成并优化后,该电商平台双11当天该平台的网站点击量是之前的3倍多,效果远超出预期。
客户介绍:

某电子商务平台自2015年9月份对外提供服务,已在阿里云上稳定运行1年多,近期业务量突增。
据了解,此平台是一个会员制的在线交易平台,业务正在不断上升中,发展形势一片大好的同时,前端应用和后端数据库的压力却越来越大。
目前,该平台国内注册会员用户数已达数百万级别,有上百万的商品数量,在业务高峰期间一小时内可能会达到数万笔交易。

问题分析:

然而,由于应用设计和数据库没有充分优化的问题,导致数据库不堪重赋,CPU一直满负荷运行,整个平台运行缓慢,长此下去,会严重缩减客户数量,故需立即对数据库和应用进行全面优化。
此平台的操作系统是Windows 2008 R2X86_64,主机是16C、32G内存,使用的数据库是单节点Oracle 11.1.0.7 X86_64,并没有开启归档,也没有备份。
经过袋鼠云专家深入分析应用层的设计和数据库的负载情况,目前的CPU持续在95%以上,且有居高不下的态势,CPU负载和数据库等待事件见下图:
2ddb11127b4ad768bae13a57071268f3968dee52
fd5589f389240a66b9f15dcf9741f50f336d4db5

解决方案:

袋鼠云团队从CPU的负载和数据库等待事件出发,分析数据库和应用中存在的问题,并对安全、网络、IO、主机ECS、应用设计、以及SQL等多方面存在的问题与客户经过多次沟通之后,给出的方案如下:

o 数据库迁移到Linux系统;
o 利用云盘可随意挂载到ECS的特性,结合SLB,并使用袋鼠云EasyDB的HA模块,把数据库做成高可用模式;
o 考虑到电子商务平台的读特性,搭建Oracle DG,备库提供只读模式,Oracle HA+ADG见下图:
2d7b3a83fc9fc3f84b5cdc0977b9f1e839554a0d
Oracle HA+ADG架构图

o 使用EasyDB的备份模块,自动备份并上传至OSS;
o 利用EasyDB的TopSQL功能,找出占用资源严重的SQL语句,结合执行计划,优化SQL语句,同时调整表结构;
a4039546085883e2b445c553e7c61df3d83dddb8
EasyDB TopSQL 运维报告

o 考虑到读并发量的日趋增大,需要规划和指导开发人员完成redis缓存。
o 同时结合袋鼠云EasyDB提供一整套应用设计、数据库和未来3-5年的可行性云上高可用解决方案以及规划。

方案效果:

专业的服务态度,有效的技术方案,让该客户对袋鼠云连连称赞。
在袋鼠云实施完成并优化后,该电商平台双11当天该平台的网站点击量是之前的3倍多,效果远超出预期。

文中商品:
袋鼠云-Oracle11g镜像(11.2.0.4 Centos 6 64位 Java运行环境)
EasyDB: 一站式数据库管理平台,Oracle/MySQL DBA运维神器
数据库优化服务(Oracle性能优化/MySQL性能优化/SQLServer性能优化)

目录
相关文章
|
24天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
25天前
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
|
25天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
40 4
|
27天前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
41 7
|
1月前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
34 1
|
1月前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
64 1
|
1月前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
146 3
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
185 1
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
77 0

推荐镜像

更多