企业运维训练营之数据库原理与实践— AliSQL和读写分离基本原理—AliSQL(上)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 企业运维训练营之数据库原理与实践— AliSQL和读写分离基本原理—AliSQL(上)

第二章 AliSQL和读写分离基本原理

 

一、 AliSQL

 

image.png

 

AliSQL是阿里云深度定制的MYSQL独立分支,在社区版功能上又额外提供了MySQL企业版的功能,提供了更加强大的性能,比如备份恢复、线程池、并行查询等,且能够兼容 Oracle 。

 

AliSQL基于X-Engine存储架构引擎。X-Engine是阿里云数据库产品事业部研发联机事务处理数据库引擎,目前已经应用到阿里集团诸多业务系统中,大幅缩减了业务成本。

 

全新的X-Engine存储引擎不仅能够无缝对接MySQL,同时它使用了分层存储架构的思想,面向大规模海量数据存储提供了高并发的事务处理能力,降低了存储成本。

 

在大部分大数据场景下,数据被访问的机会是不均等的,访问频繁的热数据占比很少。X-Engine能够根据数据的访问频度不同,将数据划分为多个层次。

 

image.png

 

AliSQL的常用功能如下:

 

1) Native Flashback

 

在数据库运维过程中可能会出现误操作,比如误删了某些表或表中数据。常见恢复手段是通过Binlog恢复。但Binlog操作比较复杂,容易出错且耗时较长。而通过备份集恢复则需要额外系统资源,因此在数据量较大时,恢复时间不可控。

 

针对以上痛点,AliSQL提供了Native Flashback能力。无需在客户侧进行复杂的恢复操作,经过简单的SQL语句,即可查询与恢复误操作前的历史数据,节省了大量时间,保证了业务平稳运行。

 

2) Thread Pool

 

数据库团队为了发挥RDS的最佳性能,提供了Thread Pool功能,将线程与会话分离。在拥有大量会话的同时,只需少量线程即可完成会话任务。MySQL默认线程使用会话独占模式,因此每个会话都会创建独立线程。大量会话存在会导致大量资源争抢,导致大量系统线程调度与缓存失效,进而导致数据库性能急剧下降。

 

阿里云RDS线程池实现了不同SQL的操作优先级与并发控制机制,将连接池始终控制在最佳连接数附近,保持在高性能状态。线程池具有几个优势:

 

在大量线程并发工作时,线程池会自动调节线程数量在合理范围之内,不会过高

 

大量事务并发执行时,线程池会将语句与事务分为不同优先级

 

线程池可以给予管理类SQL更高优先级,保证此类语句优先执行。

 

3) Statement Outline

 

在生产环境中,SQL语句执行计划可能经常发生改变,而利用optimizer hint与index hint可以使MySQL稳定执行,计划保持不变,以最优方法持续执行。

 

4) Sequence Engine

 

在RDS数据库系统中,不论是单节点业务组件还是分布式系统的全局唯一值,或更多系统的幂等控制,单调递增唯一值是用户的常见需求。不同数据库系统有不同的实现方法,MySQL中提供了AUTO_INCREMENT。

 

在MySQL数据库中,如果业务希望封装唯一值,使用AUTO_INCREMENT方法会有很多不便。在实际应用中也存在不同的折中方法,比如序列值由应用端或proxy生成,弊端在于会将状态带到应用端,增加扩容与缩容复杂度。因此AliSQL提供了sequence engine功能,实现了MySQL存储引擎的设计接口,但底层数据仍然使用现在的存储引擎,以达到效果。

 

5) Returning

 

MySQL语句执行结果的报文通常分为三类,分别为Resultset、OK和ERR。针对DML语句,返回OK或ERR报文会影响记录或扫描记录等属性。因此,在很多业务场景下,执行insert、update、delete等DML语句,都会跟随select查询当前内容,以方便后续的业务处理,减少客户端与服务器的交互。

 

6) Lizard事务系统

 

Lizard事务系统能够更好地提升MySQL数据库的吞吐能力,支持分布式事务与全局一致性。

 

image.png

 

使用Native Flashback功能时,可以通过select...from<表名> as of timestamp<表达式>。具体示例如上图,第一个示例表示将数据恢复到2020-11-11 0点,也支持表达式的方式。

接下篇:https://developer.aliyun.com/article/1225618?spm=a2c6h.13148508.setting.19.187d4f0etAV6Hb

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
存储 负载均衡 安全
高效管理大型数据库:分片与复制的策略与实践
在当今数据驱动的世界中,管理和优化大型数据库系统是每个企业的关键任务。特别是在面对数据量迅速增长的情况下,如何确保系统的高可用性和性能成为重要挑战。本文探讨了两种核心技术——分片(Sharding)和复制(Replication),以及它们在实际应用中的策略与实践。通过对比这两种技术的优缺点,并结合具体案例分析,本文旨在为数据库管理员和开发者提供一套高效管理大型数据库的综合方案。
|
2天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
7天前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
17 7
|
27天前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
43 6
|
7天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
1月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
|
10天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
4天前
|
存储 运维 监控
构建高效运维体系:从监控到自动化的全方位实践指南
在当今数字化时代,企业对运维(Operations)的需求日益增长。运维不仅仅是保持系统运行那么简单,它涉及到监控、日志管理、故障排除、性能优化和自动化等多个层面。本文将从实际操作的角度出发,详细探讨如何构建一个高效的运维体系。通过具体案例,我们将了解不同运维工具和方法的应用,以及它们是如何帮助企业提高生产效率和降低运营风险的。无论你是刚接触运维的新手,还是经验丰富的专家,这篇文章都将为你提供宝贵的参考和启示。
|
2天前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全方位实践
本文深入探讨了构建高效运维体系的关键要素,从监控、日志管理、自动化工具、容器化与微服务架构、持续集成与持续部署(CI/CD)、虚拟化与云计算以及安全与合规等方面进行了全面阐述。通过引入先进的技术和方法,结合实际案例和项目经验,为读者提供了一套完整的运维解决方案,旨在帮助企业提升运维效率,降低运营成本,确保业务稳定运行。
|
4天前
|
机器学习/深度学习 运维 安全
构建高效运维体系:从自动化到智能化的演进之路
在数字化转型的浪潮中,运维管理作为信息技术基础设施的重要支柱,正经历着从传统手工操作向自动化、智能化的深刻变革。本文将探讨如何通过引入自动化工具和平台,实现运维流程的标准化与效率提升;进而利用大数据分析和人工智能技术,迈向预测性维护和智能决策支持的高级阶段。通过案例分析,揭示成功转型的关键因素,为运维专业人士提供一套可借鉴的升级路径。