testing-04

简单生活

  • 概述:mysqldump是MySQL官方自带的备份工具,被广泛使用着。本文详细介绍了如何使用mysqldump获得一个一致的备份,以及可能遇到的一些问题。

    1. 是什么备份的一致性?

    一致性对于备份来说是非常重要的,如果一个备份不具备一致性,那么再恢复之后,可能会让软件出现各种奇怪的问题。我们来详细看看什么是备份的一致性,例如,一个备份流程中,首先耗时一分钟(12:00:00-12:01:00)完成了用户表U表备份,然后继续其他业务表A、B等的备份,于此同时,业务线程开始向用户表U写入新注册用户X的信息,接着,业务线程又向事件表E写入X用户的事件Y信息。接着,备份线程在完成其他业务表之后,开始并完成备份事件表E。

    如果不考虑一致性,在备份事件表E的时候,会记录X用户的事件信息,但是在用户表U中却没有该用户的注册信息,也就出现了不一致的数据。如果事件U表记录的是,企业核心数据,例如账务、计费等信息,恢复这样数据,则难以达到备份与恢复的目的。

    一致性的备份是指,所有备份中的数据,可以对应到数据库在某一时刻的状态。在上面的案例中,就要求,所有备份的数据与用户表U开始备份时刻的数据处于同一个状态。

    2. mysqldump备份的一致性保障方式

    2.1 使用 –lock-tables, -l

    默认情况下,参数–opt是打开的,所以,不加任何相关参数的话,会默认带上参数–lock-tables,该参数,会在备份某个数据库之前,将该数据库的所有的表都加上锁,阻止所有的写入操作,所以,总是可以让单个数据库保持一致的状态。

    2.2 使用–lock-all-tables, -x

    另一个加锁的参数是–lock-all-tables, -x,与–lock-tables差别在于,该参数是在备份任务开始时,将需要备份的所有数据库的所有表,都加上锁,阻止所有的写入操作,所以,使用该参数,就可以获得整个实例级别的一致性,而–lock-tables参数是可以获得单个数据库级别的一致性。当然,如果你的实例中,数据库数量非常多,而且关联性并不大,则还是应该尽量使用-l参数,避免加锁时间过长。

    2.3 使用最常用 –single-transaction

    –single-transaction参数应该是mysqldump备份中最有用的参数了。对于InnoDB表,使用该参数一方面可以获得一致性的数据,另一方面,也不需要在备份期间持续的对数据库进行加锁操作。

    一般来说,使用了该参数,就可以获得一个一致的备份,并且在备份过程中,无需阻塞读取或者写入操作。

    3. 使用–single-transaction的一些例外情况

    因为MySQL两层架构设计,导致了Server层和引擎层在很多功能上并不能很好的契合。在使用–single-transaction参数备份时,如果数据库层正在执行某些DDL,那么还是可能会出现不一致。

    在mysqldump的文档中也明确提到,如果在mysqldump执行过程中,数据库上执行了ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE等DDL,还是会有不一致出现。因为文档写得比较简单,而一致性又是一个比较大的问题,所以,这里详细探讨一下这种情况。

    3.1 –single-transaction备份时,如果有ALTER TABLE,数据是否还一致?

    在备份的过程中,如果有部分表执行了ALTER TABLE操作,这部分表是否还可以正常备份呢?这样的备份是否有一致性?

    简单的回答,在使用–single-transaction参数备份时,如果执行了ALTER TABLE,并且该操作属于COPY(或INPLACE)类型,那么可能会导致备份数据出现错误,事实上,可能会导致,该表中的数据无法被备份出来。

    这是一个mysqldump的限制。因为与MySQL事务、DDL实现机制、InnoDB事务机制都有较深的关系,所以,并不容易绕过,这个问题的底层原因在很早就已经在Bug系统中汇报了,但是一直都没有好的、彻底的修复策略,参考:MySQL Bug#28432。当然,也可能是修复的代价太高,而收益比较小。

    从原理上,简单的来说,当对InnoDB表做DDL操作时,而且该DDL是一个COPY类型的(ALGORITHM为COPY的时候),MySQL会先对该表加上一个全局的锁,不允许任何的写操作,然后新建好一个临时表(新的结构),然后将原表中的数据拷贝到新的临时表中,完成拷贝之后,然后再将原表删除,并将新的临时表重命名为原表。在这个过程中,所有新拷贝的数据都使用新的事务ID,而原表的数据又被删除了。所以,在这个DDL之前开始的事务,都不再能够读取DDL之后的新表的数据,即便这个新表的数据本身并没有被其他任何事务修改。从事务一致性的角度来看,这应该是不可以被接受的,使用了Repeatable Read隔离级别的事务,在某个时刻开始之后,能够读取的数据,应该总是一致的。所以,也比较明确,这就是MySQL的一个已知的限制。

    3.2 ALTER语句的ALGORITHM到底是COPY、INPLACE,还是INSTANT呢?

    那么一个ALTER TABLE语句的DDL到底是COPY、INPLACE,还是INSTANT呢?这个问题没有一个简单答案,也不再本文的讨论范围之内,详细内容可以参考:

    另外,因为INSTANT是8.0版本才引入的,所以,5.7的版本要么是COPY、要么是INPLACE。

    3.3 延伸说明,ALTER语句对于事务隔离性的破坏

    某些ALTER语句执行时,是会破坏事务的隔离性的。这里也做了一个简单的测试验证:

    在上面的例子中可以看到,如果在实际的备份中,先备份t_b,而另一个线程对t_a进行了ALTER操作的DDL(注:并且是ALGORITHM为COPY)时,备份线程再读取t_a的数据,就会失败,在实际的mysqludmp备份中,就只能备份t_a的表结构(show create table可以执行,且显示的是新的表结构),但无法备份该表的数据。

    3.4 –single-transaction与其他DDL语句

    除了ALTER语句之外,其他还有CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE等语法,都会破坏InnoDB RR隔离级别下的一致性,所以也都会有类似的问题。这些DDL相比ALTER要更简单一些(没有ALGORITHM选项),如果在mysqldump执行过程中执行这些DDL(如果是上面示例中的顺序),也会有类似的不一致问题,这里就不再详述。

    3.5 –single-transaction与FLUSH TABLES WITH READ LOCK

    mysqldump在–single-transaction和–master-data(–source-data)结合使用的时候,会通过FTWRL命令将数据库锁住,并获取全局的、一致的日志位点。但是,因为MySQL的设计原因,FTWRL比较容易导致数据库阻塞,尤其是数据库的负载比较大的时候,参考:

    所以,如果备份发生在主库,且负载比较大,则会有一定概率阻塞数据库,导致服务不可用。

    4. 小结

    虽然,说了这么多问题。但是,总体上mysqldump和–single-transaction组合起来用,通常都能够帮助你获得一份有效的、一致的备份。

    但是,如果你是负责一个大型系统(数据库非常多)的备份,数据库实例的数量非常多,开发人员也非常多,那么虽然概率小,但依旧一定会遇上这些情况。希望本文能够帮助你理解这种现象,以及尽量避免这种情况的发生。例如,可以考虑在备库/副本上备份,或者使用Xtrabackup的物理备份作为补充等。

  • 当我们乘着缆车,看着两边的绝壁上屹立着众多挺拔的“黄山松”;当我们来到玉屏楼后,看到立仞千米的山峰;当风来雾散时,看到神奇而孤独的小“猴子”;当站在迎客松前,想到它挺拔于此千年。人群的喧闹,而数亿年来山峰从不言语,只是静静伫立,一时让人恍惚,到底是谁在看着谁?

    也早就听说过:“五岳归来不看山,黄山归来不看岳”,也在孩子的课本上看到过各式各样“黄山奇石”、黄山奇松”。而当所有的一切呈现在眼前时,给内心的震撼是巨大的,一面感叹,徐霞客诚不欺我,一面再一次理解“纸上得来终觉浅,绝知此事要躬行”。

    当我们爬到迎客松所在处,抬头,左侧是天都峰,右侧是黄山最高峰–莲花峰,背后是玉屏楼。山峰立仞千米,平滑处可竖立百米而鲜有植被,山顶多有造型各异的奇石。恰如徐霞客所言:“左天都,右莲花,背倚玉屏风,两峰秀色,俱可手擥。四顾奇峰错列,众壑纵横,真黄山绝胜处”。

    雾中黄山

    到达黄山的第二天,已经是绵绵的阴雨天,这大概是登黄山最让人担心的了。因为黄山的奇、秀都在远处的山中,在阴雨天会升起大雾,能见度很低,几乎什么景色都看不大。因为是早就安排好的行程,定好的酒店也无法变更,只能按原计划登山,缘分观看各处景色。

    一早约六点,我就和大娃起床,再次来到酒店门口的迎客松,此时已是大雾锁山,好在迎客松就在近处,虽是朦胧,但依旧可以看得清晰。

    离开玉屏楼,按行程,我们就向光明顶方向走去,经过莲花亭,再过鳌鱼峰,抵达白云宾馆处,再取到西边,体验了一下西海大峡谷的“网红”小火车,但因为云雾缭绕的缘故,并没有看到好的效果。再向前,就是光明顶了,据导游介绍这里是观看日出、日落最好的地方,也是能够尽收半个黄山美景之处,只是也因为大雾,几乎什么都看不到。再继续向西,经过黑虎松,很快就到达了第二天入住的酒店狮林大酒店。稍作修整,期待接下来能够天气转好。

    三寻“猴子观海”

    大概是海拔高的原因,黄山的天气有一些变幻莫测。我们第一日去晴天,次日入住狮林大酒店后,天气就开始持续的小雨,整个黄山就笼罩在或薄或厚的雾气之中。“猴子观海”最佳观赏点就在酒店旁边约十五分钟登顶的一个小山峰之上。当天晚上,搬完入住之后,外面一直在淅淅沥沥的下着一些小雨,到傍晚约6点左右,雨虽然停了,但是雾气一直没散,听酒店工作人员说,这样的雾气下是很难看到“猴子观海”的。不过,如果运气好的话,一阵大风过来,雾气吹散开,也能看到。这时候,就有一些担心,这次可能会看不到这个著名的景点了。

    吃晚饭的时候,kiki说想一个人出去探探,半小时后回来,兴奋的跟我们说,大雾散开了一会儿,大概也就30分钟,恰好看到了传说中的猴子观海。我本想也立刻去看看,但此时,天已经黑了,加之大雾再起,所以今天已经看不到了。看着她拍的视频和照片,希望明天能够亲眼看看。后来,听酒店的人说,今天一整天,只有那大概30分钟能够看到“猴子观海”,今天能够看到,实属机缘。

    次日清晨,起床第一件事,就是拉开窗帘看看外面的雨雾是否消散,看起来雾气似乎比昨天要小一些,于是,一早就带着大娃向山上出发,来到一处观景台,一眼望去尽是大雾,虽然风来会隐隐消散一点,但是能见度依旧很低,什么多看不到。于是,只能带着大娃败兴而归。

    到了上午,雾气似乎又散去了一些。kiki大概看出来,我对“猴子观海”似乎有一些执着,于是带着我,说再去碰碰运气。走到半路,kiki看着山中大雾就说,这大概也是什么都看不到的。不过,我俩还是决心上到观景台再说。这时,路上还会时不时遇到行人从上面下来,都说什么都看不到。这时,心里也已经不抱希望了。来到山顶,果然,大雾没有让我们“意外”,依旧是什么都没看到。不过,这次好在把地方了解准确了。原来,早上我和大娃所到之处,还没有到真正的“猴子观海”观景台,是还需要再向上爬五分钟的。虽是大雾,还是在那里拍了一张“猴子观海”。

    等了大概十来分钟,大雾始终没有消散,只能下山。当走到“麒麟松”所在处,kiki抬头发现,能见度高了很多,竟然能够看到远处的酒店了,她说,现在上去可能能看到。于是,我果断掉头,再向上爬,并且担心大雾随时再起,一路加快了步伐,但因为是向上爬,一路气喘得非常厉害,大概离山顶还有五分钟路程的时候,突然听到一阵欢呼声,这时候,心里就猜到了,一定是“猴子观海”处的大雾散去,众人看到了这一景观。这时,虽然因为爬的急,已经很累了,但是依旧是一鼓作气,咬牙爬上山顶,到达了猴子观海观景台。

    雾依旧有一些,但风也起来了,风吹着雾气到处乱逃。远处的胜景–“猴子观海”终于呈现在了眼前。随着大风的持续作用,猴子观海周围的各式山峰也都明朗了起来。

    大概,在这时候,心里就暗下决心,黄山一定还是要来的,因为此番景色,只能用眼睛、用双脚、用心灵去体会。

    猴子观海@2023年4月29日 清晨

    长恨春归无觅处

    因为气候的原因,山上更冷,春意也更晚。很多城市里的花都已经盛开,甚至开始凋落,但是注意黄山之上,杜鹃花(据说是一种比较独特的杜鹃)却刚刚盛开,很多的小树也还是刚刚冒出新芽。想恰如白居易所言:“长恨春归无觅处,不知转入此中来”。

    黄山山顶的酒店

    这次我们一行5人,老爸年过六旬,小娃刚刚六岁,所以整个行程安排得非常“松散”,首日上线,先入住了玉屏楼酒店,次日走过光明顶,再到狮林大酒店,第三日经过始信峰后从云谷索道下山。

    酒店的价格大家可以在携程等站点查询,会因为假期等原因波动很大。但,无论如何,黄山山顶的酒店都不便宜,一方面酒店数量不多,就那么几家,另一方面山顶所有使用的物品都需要从山下经由索道运至山腰,然后再由挑夫人力挑至山顶,走过一趟的都能体会这种不易,所以,价格贵一些,都是正常。

    另外,如果住在山上,吃饭是另一个比较大的费用,一般酒店的自助餐(似乎只有自助餐)大概在每人120~160元之间。另外,山顶有一些休息站,会供应一些盒饭,价格在50~80元。

    总得来说,没有必要带很多的水和食物,基本都能够买到,虽然略微贵一些。

    再说一说玉屏楼酒店吧。这个酒店所在的位置比较险峻,并且正对着著名的“迎客松”,左边是天都峰,右边是莲花峰,背后也有各式各样的奇石奇松,不远处可以到莲花亭,可以观看日出日落。可以说是非常有特色的酒店。

    上面的照片是在去莲花亭的路上所拍,远处的高峰正是“天都峰”,中间靠左隐约可见的房子就是玉屏楼酒店,如果注意看的话,酒店靠右一点则是黄山著名的“迎客松”。

  • 本文重点介绍了MySQL领域最新的书籍:《MySQL实战》,以及2020左右推出的书籍《MySQL是怎样运行的》。

    《MySQL实战》,作者陈臣

    上个月,MySQL领域又发布了一本新书:《MySQL实战》,作者是陈臣,来自Oracle的工程师,一直活跃在MySQL数据库领域。本文概要的介绍一下,这是一本怎样的书,以及合适哪些人阅读。

    《MySQL实战》这本书更加偏重实践、深入原理相结合的方式介绍MySQL,是非常适合希望能够系统的、更加深入的了解MySQL的开发者或DBA的,例如从事的工作与MySQL数据库密切相关,涉及到MySQL的管理、问题排查、调优选型等。如果做一般性的了解,则可以选择性的阅读其中的章节和内容。

    具体的,如果你从事的工作与需要进行复制配置与管理,那么则可以考虑深入阅读第二章”复制“;如果,你的工作中需要处理Binlog,例如需要进行增量数据解析与获取,则可以精读第三章”深入解析Binlog“。

    相比于官方手册,该书籍在实践方面是更接地气的,这一点上,这本书也是MySQL官方手册的很好补充。

    例如,如果想系统的了解MySQL的备份,本书在第五章系统的介绍各种MySQL的备份方法。涵盖了官方提供的mysqldump,也包括在社区使用非常广泛的mydumper和XtraBackup。如果只是阅读官方手册的话,你可能只会看到关于mysqldump的相关介绍,但在实际的生产使用中,尤其是海量数据备份时,XtraBackup和mydumper都被广泛使用。

    再比如,大表DDL一直是MySQL的一个”硬伤“,在系统运行较长时间后,都会遇到这个令人头疼的问题。本书的第七章就叫”DDL“,单独的介绍了这个online DDL的现状以及常用的解决方案。不仅包含了官方MySQL中的online DDL支持,也涵盖了在社区最为广泛使用的两个工具pt-osc和gh-ost。

    《MySQL是怎样运行的》

    另外,也补充介绍一下2020年的书《MySQL是怎样运行的》。这本书封面上写的作者名字是”小孩子4919“,可见作者更加有个性,这也体现在书籍中。书中,一般会用打比方的方式介绍或者引入数据库的一些概念,然后再较为深入的进行介绍。非常适合新手从零开始学习MySQL,了解他的基本概念,以及对应的原理。在覆盖面上,涵盖了诸如安装配置、字符集、InnoDB、查询优化基础、事务等相关内容,并且都尽可能从非常基础的开始讲起。

    例如,在介绍MySQL启动选项和系统变量的时候,作者使用了手机中的“设置”进行类比;再比如,很少有书籍会介绍“字符集和比较规则”,但这也是一个新手难以理解的地方,本书则使用了独立章节进行介绍,并从计算机底层的二进制存储开始引入结束,可以说是深入浅出。

    当然,作者也做了一些取舍,也就只能放弃非常深入全面的解析每个模块的细枝末节。总得来说,这本书作为打开MySQL大门的引导,是非常合适的。

    是《MySQL实战》,不是《MySQL实战45讲》

    另外,“MySQL实战”在领域还有一个非常有名系列是由丁奇和极客时间推出“MySQL实战45讲”。本书和该系列没有什么直接关系。

    最后

    最后,搜索引擎这么强大,为什么还要读书?相比互联网上零散的信息与知识,书籍则提供完整的、系统的介绍某个领域的知识。而,作为专业领域的从业者,通常都需要了解领域的方方面面,书籍或者手册则是非常好开始。

  • 重要更新

    最近两篇争锋相对的文章,又在数据库圈子里面引起了一阵涟漪:正方为:《分布式数据库是伪需求吗?》,反方为《2023年了,还有人在谈分布式数据库是不是伪需求》感兴趣的可以看看。正方观点看起来虽然有一些偏激,但是笔者还是支持正方的,也认为狭义的分布式数据库受众是非常有限的,并确实在受到硬件快速发展的挤压,例如,2009年淘宝业务使用的x86数据库服务器内存是16GB+HDD硬盘,而现在云数据库很容易买到500GB内存的实例(如阿里云RDS最大内存可达768G),比较极限的还可以买到4TB内存的实例(可以看看Amazon的”db.x2iedn.32xlarge”规格3)。另外,分布式数据库场景虽然有限,依旧有部分场景,最典型的就是写入密集型,并且是非常关键的一些场景,例如交易事务,需要使用分布式数据库。你站哪边?可以留下你的评论。

    华为云GaussDB荣获中国电子学会“科技进步一等奖”(参考),这代表该数据库一定程度获得了中国官方非常高的认可与评价。

    据悉,MySQL版本管理将会做出重大改变,原来模式下每3年左右发布一个大版本,例如5.1/5.5/5.6/5.7/8.0等,但是事实上,距离8.0在2018年4月GA到现在已经有5年没有大版本了,据悉,新的模式下,将会使用LTS版本和Innovation Release结合形式,LTS版本两年发布一次,并提供5年(Premier)+3年(Extended)支持的方式;Innovation Release则每个季度一个小版本持续迭代,会不断融入更多新功能与特性:参考1、参考25

    MariaDB再遇艰难时刻,现金可能会难以支撑长期运营:参考14。自去年12月,MariaDB以SPAC模式在美上市后,股价也一直走低。这次,MariaDB发出警告说,虽然已经裁员26人,但现金依旧可能不足以支撑公司,并在寻求新的一轮融资。只能说当初Monty自己构建的MySQL太强大了。

    云数据库技术社区的第一次沙龙将在周六下午于杭州海智中心举行,主题为MySQLx ClickHouse,很久没有线下聚会了,感兴趣的可以来现场交流:参考

    更新详情

    阿里云
    • RDS MySQL支持从本地SSD升级到ESSD:参考6
    • RDS MySQL集群版支持存储自动扩容:参考7
    • PolarDB普通集群上新增开启Serverless功能:参考8
    • DTS支持专属集群:参考9
    AWS
    • RDS的事件通知功能新增了实例Tag信息,帮助用户更好的处理实例事件1
    • DynamoDB支持最多可以同时并发恢复50个表2
    • AWS Backup现在支持在EC2上HANA的备份与恢复4
    腾讯云
    • RDS支持PostgreSQL 15
    火山引擎
    • RDS MySQL新增对Terraform的支持:参考11
    • 托管Redis支持多可用区同城容灾:参考10
    其他
    • 号称MongoDB平替的FerretDB发布 1.0:参考12
    • 开源向量数据库Qdrant获750万美元融资,这是在其去年获得220万美元融资之后的再次融资:参考13
    • MariaDB再遇艰难时刻,现金可能会难以支撑长期运营:参考14

    推荐阅读

    引用链接

    关于引用链接的说明:还是偶尔会收到一些认真的开发者来咨询,某某特性有没有更详细的说明链接,于是还是打算尽量给更新的出处。但因为微信公众号不支持任何外链,所以就通过引用链接的方式给出相关内容的引用。另外,有很多链接都非常长,既不美观也不便于复制,于是使用bitly的短链接服务,让操作更简单一些。但是,也注意到bitly服务在国内有时候并不稳定,请看客自己科学跳转。

  • 对ChatGPT/AIGC的零散思考

    ·

    疫情来到之初,因为对于病毒和传播了解较少,难以感受到疫情在过去的三年如此巨大的改变了大家的生活。而这次ChatGPT变革则是处在自己所在的互联网/基础科技领域,已经感受到了ChatGPT将较为深刻的改变很多内容。

    (more…)
  • 重要更新

    “云数据库技术”第一次线下meetup正式开启,计划于下周六(4月22日)下午在杭州举办,主题为“MySQL x ClickHouse”,邀请了国内云厂商和技术专家,与开发者共同讨论云数据库技术。欢迎现场参加,感谢朋友们的转发与扩散:参考

    注意到,原“阿里云数据库”公众号正式更名为“阿里云瑶池数据库”,“瑶池”应该会是后续阿里云数据库主推的品牌,该品牌可以理解和之前的ApsaraDB类似,是阿里云数据库的整体品牌。另外,上周,阿里云Lindorm通过SQL语句曲线支持AI绘图能力:参考。可以通过简单的SQL语句,加上描述性语言生成对应图片。

    Amazon RDS开始支持Graviton 3(第三代自研ARM芯片)的实例,规格代码为:db.m7g(通用) 和 db.r7g(内存优化型),AWS的Graviton实例(ARM)已经相对比较成熟,在性价比上相比x86架构有明显的优势,如果是降本增效的业务可以考虑使用,能够很轻松的获得30%的成本节约 2

    更新详情

    阿里云
    • RDS PostgreSQL Serverless正式商业化发布:参考
    • RDS MySQL/PostgreSQL部分实例(PL1/2/3类型)支持存储空间缩容:参考
    • RDS PostgreSQL 14/15新增自研插件rds_ccl,支持SQL限流:参考
    字节火山云
    • DTS支持了支持通过专线和 VPN 实现数据上云(邀测):参考
    AWS
    • RDS Custom for SQL Server支持多AZ:参考
    • Aurora支持PostgreSQL 15:参考。另外,AlloyDB、PolarDB当前支持的是均为14:参考。从产品发布节奏,可以看到,Amazon在云基础技术上是一直领先的。
    • RDS控制台新增了创建Elasticache实例功能:参考,详细使用:参考。该功能主要是考虑Elasticache(Redis)系统经常会和关系型数据库在一个环境中,从RDS控制台创建Elasticache,可以继承RDS的安全组、连接访问配置,简化了用户的部分配置操作。
    • RDS MySQL集群版支持15个只读节点: 参考;支持了从RDS MySQL单可用区版本、多可用区版本到RDS MySQL集群版的复制功能:参考。这些功能发布来看,当前Amazon的RDS的团队是在重要发展MySQL集群版。当大家都觉得AWS RDS应该没什么事情可以做的时候,他们还在不断的创新。至于,什么是集群版、单可用区版、多可用区版,可以参考如下文章:
    • RDS PostgreSQL新增提供本地NVMe SSD的实例,可以让需要使用本地存储的场景性能大大提升,包括需要使用临时表的复杂查询、复杂排序、聚合等,具备该能力的实例类型包括db.M5d和db.R5d,这里的规格代码“d”应该就表示使用了本地NVMe SSD的实例:参考
    • RDS开始支持Graviton 3(第三代ARM实例),规格代码:db.m7g 和 db.r7
    • RDS多可用区集群版至此以预留实例方式购买3
    GCP
    • BigQuery 变更数据捕获(CDC)公测上线:参考。相比之前提供的DML语句获取,CDC能够帮助开发者更好的获取变化数据。
    Azure
    • 托管PostgreSQL(FS)的只读副本功能正式GA:参考
    • 托管PostgreSQL(FS)新增指标Database-is-alive可以获得数据库是否正常运行1
    • 托管PostgreSQL(FS)支持新的突发型实例(B4ms, B8ms, B12ms, B16ms, B20ms)4

    参考阅读

    引用

    [1]  https://azure.microsoft.com/en-us/updates/public-preview-databaseisalive-metrics-for-monitoring-azure-postgres-flexible-server-database-availability/

    [2]  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Support

    [3]  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithReservedDBInstances.html#USER_WorkingWithReservedDBInstances.MultiAZDBClusters

    [4]  https://azure.microsoft.com/en-us/updates/generally-available-new-burstable-skus-for-azure-database-for-postgresql-flexible-server/