【摘要】 降级后的华为云 GaussDB,如何用技术服人?数据存储、迁徙和容灾备份,这些技术诀窍你必须晓得!
置信很多人都有整顿 C 盘的经验,C 盘作为电脑的系统盘,零碎运行所需的要害数据都存储在其中。但如果使用不当,C 盘就特地容易变红,而后电脑变卡,恶性循环,最差的终局就是零碎解体,所有数据失落。
对于企业来说,数据存储和治理更是关乎生存的小事。
现在的企业数据量大、数据起源多样、数据状态简单,原有的存储模式曾经无奈满足需要,反而会减轻存储累赘。
所以,磨刀不误砍柴工,你们企业的数据存储做好了吗?巧妇难为无米之炊,你们业务的瓶颈是不是能够从数据存储管理的维度突破?
打好数据存储的地基
从最早的穿孔卡片、关系数据库、非关系数据库到现在的云数据库,Gartner 钻研报告称到 2023 年,寰球 75% 的数据都会呈现在云平台上。
数据上云四个字打进去容易,但真正落实下来却存在各种艰难。
第一重要的环节便是数据存储,就像建高楼一样,打好地基是要害,只有把数据存储这个环节做到极致,业务能力快马加鞭跑起来。
目前,不少云服务厂商都推出了数据库产品,在去 IOE 的路上一路狂奔。
而一个优良的数据存储产品,既要给足安全感,还要够便宜,让数据存储不再是累赘,而是业务的催化剂。
目前,从结构化 / 非结构化数据的存储、到数据的复制迁徙、灾备以及预处理,华为云给数据上云的每个环节,都填满了相应的产品。
无论什么业务场景,都能够在短时内实现数据库的部署,实现云端齐全托管。
而之所以能做到又快又全又便宜,华为云的这些技术绝招功不可没,且听咱们缓缓道来。
数据库“意外失联”,DRS 速来支招
1、不停机收费迁徙
如果将数据库比喻成“城市”,咱们能够了解 DRS(数据复制服务)便是城市之间的“地底光纤”,确保将“始发地”源库的数据安全、疾速、高效地运输到“目的地”指标库。
为了保障数据库迁徙过程中数据的一致性,一种形式是须要停掉业务,进行一次性迁徙(也称离线迁徙),这就造成了数据量越大,迁徙工夫越长,也就意味着停机工夫越久。
那么是否有一种形式既能保障数据库迁徙过程中数据的一致性,又能做到业务继续运行?
DRS 通过全量迁徙 + 增量同步的形式(也称在线迁徙),在全量迁徙实现后,启动增量同步过程。
增量同步是将源库先进行日志解析,日志能够很形象的看成是“录像带”,记录了源库的所有操作,咱们将日志“回放”进去,源库做了什么数据操作,指标库就做什么样的操作,最终这部分增量数据被并行复制到指标库,来保证数据的一致性。整个过程能够了解为在业务运行的过程中,耳濡目染地实现了源库与指标库之间的数据迁徙,业务无感知。
本来只能是数据库迁徙专家能力实现的简单数据库迁徙现在在云上变得轻松简略,一般的从业者也能实现云上数据库高效迁徙,极大便当了客户、一线运维人员和开发者。
2、多活灾备
但也有人会极度不足平安,一旦数据没有放在本人的眼皮底下,担心总是无尽的。
在迁徙上云后,数据备份和复原的问题始终困扰中型企业。老板总是会放心,我的数据都放在你们服务器里,哪天你们机房产生地震,我的数据怎么办?
首先,华为云数据库很早便推出了双 AZ 高可用灾备计划,即“同城两核心”,也就是在同城建设两个数据库,当其中一个数据库突发异样或被毁坏时,能够从另一个数据库获取数据,以保证系统的继续稳固。
华为云数据库在“同城两核心”的根底上提出了异地爱护的计划,DRS 推出了异地多活灾备,即“两地四核心”。
该灾备计划反对搭建主备高可用架构,当主实例所在区域突发自然灾害等情况,主备节点均无奈连贯时,可将异地灾备实例切换为主实例,即可疾速复原利用的业务拜访,而且能够实现主实例和跨区域的灾备实例之间的实时同步。
弹性扩容之外,从“快递驿站”取得高写入性能
华为云数据库产品不得不提的一个特点就是弹性扩容,业务无感知。
以 GaussDB(for MySQL) 为例,其基于华为最新一代 DFV 分布式存储,采纳计算存储拆散架构。
当计算和存储解耦,再利用云架构弹性的劣势,存储和计算均可独自按需扩缩容,且在分钟内实现,资源利用率达到最大化。
GaussDB(for MySQL) 还反对 1 写 15 读的只读节点的极速扩大,最高反对 128TB 的海量存储,可实现超百万级 QPS 吞吐,单节点相比原生 MySQL 性能晋升 7 倍,而且兼容 MySQL,无需分库分表,利用无需革新即可轻松迁徙上云。
另外,GaussDB(for MySQL) 数据库在写入性能上,在业界同类产品中是最好的,这次要得益于它在 MySQL 内核方面的诸多优化,其中有一项便是从“送快递”得来灵感的优化——事务异步提交。
快递的配送过程中,最耗时的,不是装货、卸货,而是电话和期待。快递驿站能够很大水平解决这个问题。
同样,事务处理过程中,存储的 IO 就是一个较长的期待。
数据库应用经验丰富的开发人员来都晓得,期待 redo 日志写入存储的磁盘 IO 性能,很大水平上决定了数据库的写入性能。
对于 GaussDB(for MySQL) 这样存算拆散的数据库,存储的 IO 耗时在事务处理的总耗时中占据不小比例,尽管有 log buffer 的合并写入,晋升并发状况下的整体吞吐,但如果在期待 IO 工夫内,这些线程可能去做别的事件(例如解决期待中的其余事务),那么将会有进一步的性能晋升。
既然找到了期待的点,那么咱们就能够像快递配送的优化办法,为数据库发明一个“快递驿站”。
图:GaussDB(for MySQL) 的“快递驿站”
如图所示,当 redo 日志的 flush to disk 动作实现后,即可进行事务提交,然而此时并不应答客户端,而是间接解决下一个事务。同时应用大量 post comit worker 线程,来批量期待日志写入实现(期待的过程其实并不占用 CPU),并应答客户端,这就能够让“期待”和“下一个事务的解决”并行化,让 CPU“闲不下来”。
在规范的 sysbench 写入模型下,没有应用 Post Commit 时极限性能是 35 万 QPS 左右,而应用 Post commit 后能够到大 42 万以上的 QPS,晋升了 20% 的写入性能。
放心事务失落?华为云数据库 MySQL 示意不可能
数据上云后,企业对云上数据库的要求也越来越高,尤其是数据的残缺牢靠。
有的云厂商为了保障事务不失落,抉择减少一个数据库结点的形式,但老本也相应进步。
有没有一种两败俱伤的办法,既能保证数据零失落,还能降低成本?
华为云数据库 MySQL 高牢靠的利用机制能够做到:主备模式下,在最大水平保障主库效率的同时,保障主库解体时疾速复原服务,并且做到事务零失落,进而保障企业业务的稳固继续。
华为云数据库 MySQL 半同步复制基于状态通道和工夫戳的高牢靠个性,总体上是管控节点(HA)保留主库最初的复制状态和工夫戳,备实例保留主库最初的复制状态和工夫戳,而后通过比拟它们来精准判断主库解体时的复制状态。
在自行复原方面,它能够依据主库解体时的复制状态依照以下四种状况精确复原服务,保障不失落事务,并且秒级复原服务:
- 在同步复制状态下主库解体,拉起主库;
- 在同步复制状态下主库解体,如果不能拉起主库,服务平滑切换到备库;
- 在异步复制状态下主库解体,不能切换到备库,拉起主库;
- 在异步复制状态下主库解体后,不能切换到备库,如果不能拉起主库,会在原来的数据上复原主库。
华为云数据库 MySQL 半同步复制高牢靠个性能最大水平保障主库效率,是因为主库的事务提交只依赖于备库,而备库把这个事务写入中继日志后立刻返回一个 ACK(即确认字符),没有强同步复制备库回放事务带来的提早。
举个例子,如果用户买了华为云数据库 MySQL,当半同步复制主库正在执行大事务,并且复制状态从同步复制转换到异步复制时,主库忽然挂掉,用户服务被迫中断,华为云数据库 MySQL 主库会在秒级内被拉起对外提供服务,用户能够从新连贯上华为云数据库,并且与中断前的数据视图完全一致,没有事务失落。
最初:
水是万物之源,数据就是互联网之源。作为计算机的三驾马车之一,数据库是承载互联网之源的要害。
828 企业上云节期间 ,华为云的数据存储产品也推出了优惠活动,正是企业动手云数据库的最佳时机。
如果要存储解决结构化数据,有云数据库 MySQL、云数据库 PostgreSQL 和 GaussDB(for MySQL);
如果是非结构化数据,有 OBS 对象存储服务、文档数据库 DDS 以及 MapReduce 服务,还有 Redis、Kafka 等中间件,从数据存储、数据入湖、灾备到剖析,无论什么业务场景,总有一款产品最适宜你。
点击关注,第一工夫理解华为云陈腐技术~