应用容灾中,MySQL数据表是否需要跨云同步?

简介: 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力,在同城或异地建立对应的IT系统,其中最核心的工作是数据同步。本文选取应用层容灾的场景中,对于哪些数据表需要跨云同步,哪些数据表不需要跨云同步的问题进行探讨。通过一个具体的案例,帮助读者更好地梳理同步表和过滤表的方法,以满足应用层的业务容灾需求。

 

一 背景

容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力,在同城或异地建立对应的IT系统,其中最核心的工作是数据同步。

本文选取应用层容灾的场景中,对于哪些数据表需要跨云同步,哪些数据表不需要跨云同步的问题进行探讨。通过一个具体的案例,帮助读者更好地梳理同步表和过滤表的方法,以满足应用层的业务容灾需求。

二 相关术语

本文探讨的场景是基于阿里云构建的应用层容灾,涉及到以下关键术语:
RDS MySQL:MySQL 版是全球最受欢迎的开源数据库之一,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python) 中的重要一环,广泛应用于各类应用场景。阿里云RDS MySQL版,通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。

DTS:数据传输服务(Data Transmission Service) 支持关系型数据库(MySQL等)、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。 使用数据传输轻松构建安全、可扩展、高可用(容灾)的数据架构。

ASR:ASR-DR(Apsara Stack Resilience Disaster Recovery)是一款提供容灾功能的云产品,支持RDS MySQL的容灾管理。ASR是为了在灾难发生时,快速地实现容灾切换,尽可能地降低RTO,而开发的基于图形交互的切换工具。

同步表:本文特指RDS MySQL的数据库和数据表中,哪些表必须从一朵云备份到另外一朵云,即跨云同步。

过滤表:本文特指RDS MySQL的数据库和数据表中,哪些表不能或不需要,从一朵云备份到另外一朵云。

应用配置表:本文特指应用层在RDS MySQL中的数据表,这个表记录应用层的相关配置信息,比如IP、域名、定时任务的开关状态等等。

Sequence:全局唯一序列号ID,在分布式系统里面应用广泛,可用于交易流水号,用户ID等。 在搜索, 存储数据, 加快检索速度等等很多方面都有着重要的意义。这个ID常常是数据库的主键,要求全局唯一、支持高并发、容错单点故障。为了提高性能,应用层通常每次从数据库中获取一批序列号(比如1万个),存放到应用内存中使用,避免频繁访问数据库。内存中的序列号使用完成后,再次从数据库中进行获取新的一批序列号。

三 应用容灾中关于过滤表的关键技术问题

为什么需要梳理不做跨云同步的过滤表?

非容灾应用

  • 备中心资源限制:实际项目中,受限于备中心的资源限制,无法在备中心内部署应用系统,因此非容灾的应用对应的数据库和数据表无需同步。
  • 运维临时备份库和备份表无需同步:在日常运维中,DBA在对数据库进行变更时,通常会做临时性备份。临时备份的数据库或数据表,由于阿里云 RDS MySQL集群本身已经在后台进行了备份,无需用户再做一次跨云同步。这样可以减少同步链路的带宽和容灾切换的管理工作量。
  • 不支持容灾的应用:云产品的容灾能力建设是一个持续过程,某些云产品在项目交付阶段暂时还不具备容灾能力,但是用户的应用依赖了这些指定的云产品。因此这部分的应用暂时无法做容灾演练,对应的数据库和数据表也可以暂时不做同步。待应用的全流程依赖的云产品都支持容灾后,再进行数据同步即可。

有差异的配置表

  • 应用配置的方式:应用系统为了将代码和配置分开管理,通常将配置参数单独存放和管理。常见的配置形式有配置文件、RDS MySQL数据库、专用的配置中心,其中专用配置中心后台也用了RDS MySQL来存储数据。比较忌讳的方式是在代码中硬编码配置参数,如IP、域名等。
  • 环境参数:应用软件在使用云产品如RDS MySQL、OSS、SLB等产品时,需要通过IP、域名、账号密码、AK/SK进行连接。
  • 应用参数:某些功能只能在一个中心内的应用执行,这些功能开关在数据表里面的某些字段值进行控制。比如某些定时任务,会定期和外部机构发生批处理的调用。如果双中心的定时任务同时运行,可能会导致外部机构的批处理重复执行,这依赖于外部机构能否支持重复执行相同的批处理任务。这些定时任务的配置表需要在双中心分别配置。
  • 同城容灾的配置方式:第2点的环境参数默认是相同的。同城一朵云的双中心距离较近(小于100公里),应用部署在一朵云的两个可用区,云产品连接信息是相同的。因此应用软件在部署时,访问的是相同的环境参数。此场景中,需要梳理有差异的环境参数是比较少的。
  • 异地容灾的配置方式:第2点的环境参数存在差异。同城两朵云的双中心距离较远(大于100公里),应用部署在两朵云的两个可用区,云产品连接信息是不同的。因此应用软件在部署时,访问的是不同的环境参数。此场景中,需要每个应用分别梳理差异的环境参数。差异的环境参数所在的数据表不能跨云同步,否则会导致应用系统部署失败。

需要双写的业务表

  • 双写的场景:a)业务流量在双中心同时处理,称为应用层双活,需要同时向双中心写入数据表。b)应用运行期记录微服务的调用日志等。理想情况下,应该是有业务流量在处理时,应用才会向数据库中记录数据。实际项目中,业务也会出现特殊情况,在备中心的应用,即使没有流量请求,也会定期写入一些日志,比如微服务调用日志、定时任务日志、应用启动时更新全局唯一序列号Sequence等等。双写的场景,要求主中心和备中心的RDS MySQL都具备读和写权限。
  • 同城双活场景:同城一朵云的双活架构中,主中心和备中心对应用层提供统一的云产品连接信息,应用都具备向RDS MySQL的写入权限。
  • 异地主备场景:异地两朵云的主备架构中,主中心RDS MySQL对应用层提供读写权限,而备中心RDS MySQL向应用层提供只读权限。这种权限策略无法满足第1点中的双写要求。因此对于双写的表,需要按照应用维度梳理过滤表。

如何梳理不做跨云同步的数据表?

在项目中会发现,应用软件开发商更关注业务逻辑的实现,对于云产品使用的最佳实践以及容灾能力的了解程度,可能和我们的预期存在一定的差异。而梳理过滤表,主要由应用开发商来执行,在梳理过程中有几个常见的问题。

  • 设计和开发时期,开发人员应该如何做来减少容灾时候不同步的过滤表?
  • 部署和运维时期,运维人员应该从哪些角度来确保过滤表的完整性和正确性?

如果梳理错误,对应用层容灾演练有什么影响?

在项目中,往往受限于工期和生产系统稳定性运行的约束,应用开发商和云平台厂商即便清楚设计和开发的最佳实践,也比较难限时完成改造。因此部署和运维期的时候,梳理过滤表和准备应急预案,是容灾演练的重点工作项。

我们来分析一下,如果梳理过滤表错误,可能对应用层容灾有什么影响?
对非容灾应用的影响:

  • 几乎没影响。前面分析过,建议非容灾的应用可以不做数据备份,或者备中心应用在备份数据上不做为生产用途。

对容灾应用的影响:

  • 备中心部署应用后,启动应用失败,此时能够识别出错误的环境参数。应对措施是停止对应数据表的同步,修正读写权限后继续部署。
  • 备中心应用在测试功能时,重点关注后台定时任务和非业务请求写RDS MySQL的场景,在测试阶段修正过滤表的清单。
  • 对生产系统运行期做容灾切换演练,在异地容灾架构中,错误的过滤表清单可能会导致数据库主键写冲突的错误,进而出现写业务失败问题。此时可通过应急预案,紧急停止或增加同步功能或修正数据表字段值,重启应用方式的手段来恢复。在下次演练前修正过滤表清单。本文后面将对此场景用一个案例简单说明。

四 在应用容灾中设计不同步的数据表

前面我们已经介绍了应用容灾中哪些表不同步的必要性,本节我们来探讨如何梳理和设置过滤表。以下分析是比较理想的情况,实际项目中会有一些差别。
云平台角度

  • 了解云平台的能力:目前主流的云平台厂商都有RDS MySQL产品,但是每家厂商的RDS MySQL在同城多可用区和异地多Region中的容灾能力是有区别的。用户需要了解,每家云厂商的数据同步能力,在同城和异地两种情况下,是后台自动完成?还是利用工具(如阿里云的DTS)?还是人工写脚本完成?
  • 配置过滤表的方式:阿里云DTS产品支持在创建RDS MySQL实例同步链路时,配置哪些数据库和数据表不同步。
  • 自动配置过滤表功能:在容灾演练过程中,会涉及主切备、备切主,因此对应数据同步方向发生反转,我们称成为正向同步和反向同步。当发生同步方向反转时,需要容灾切换平台支持自动配置过滤表。阿里云ASR-DR支持第一次创建同步链路时,保存过滤表的清单,后续每次同步方向切换时,由ASR-DR自动给新的链路配置过滤表。

如下是阿里云数据数据传输服务DTS产品公开的资料文档。

应用层角度
接下来我们从应用开发商比较关注点几个阶段,分析如何有效性地基于云容灾来交付应用软件。
1.设计阶段:

  • 基于云容灾的设计思路。考虑应用未来会部署在两朵云或多朵云,有可能是不同厂商的云平台上。因此早期基于IOE架构的容灾架构,由专业存储硬件完成的数据层同步在多云场景下将不适用,而Oracle昂贵的license也是很多企业难以接受的。
  • 考虑为每朵云和每个中心预留标识参数,用于表示当前配置适用于哪朵云上。由配置中心统一管理当前运行环境上是哪朵云的参数生效,应用代码无需关注自己运行在哪朵云上。
  • 识别哪些场景的功能只能在其中一朵云上运行的,并为这些功能安排开关。通过配置中心并将开关设置为可动态配置和生效。重点关注定时任务。
  • 建议将这些功能开关的操作放在白屏界面,便于在容灾切换有限而紧迫的时间内,允许运维人员快速操作,而不是打电话到处问人,关闭某个定时任务是在哪个库、哪个表的哪个字段来控制开关。
  • 记录过滤表清单,并及时更新。

2.开发阶段:

  • 优先使用配置中心来保存参数。实际项目中,保存配置的方式有多种方式,包括配置中心、配置文件、RDS MySQL、甚至还有在代码中直接编码某个地址、账号密码。阿里云EDAS产品提供配置中心功能,支持动态配置、静态配置,以及配置变更后动态推送,而不需要应用重启才能生效。
  • 配置中心本身的地址,可以记录在应用的配置文件中,将配置文件和应用程序一起打包发布。因为配置中心服务在部署后,很少会发生变化。
  • 如果暂时无法使用配置中心,必须要用RDS MySQL来管理配置。建议将记录不同云环境参数的配置放在独立的数据表中,单独提供功能开关的配置也放在独立的数据表中,不要和业务表耦合在一起。好处是降低了管理过滤表的难度。重点关注云产品的域名、IP、账号密码、AK/SK。

3. 部署阶段:

  • 运维人员和开发人员,确认清楚每个过滤表的被选中的原因,背后的业务依据是什么?重点关注是否多配了过滤表。
  • 登陆每个数据库,检查容灾切换平台ASR-DR是否按照预期来设置过滤表。当过滤表有上百个的时候,容易出现遗漏或错误。
  • 创造条件在备中心上提前验证业务功能,重点关注过滤表场景是否符合预期,关注定时任务是否只在一个中心上运行。

4. 运维阶段:

  • 配置变更在两朵云上的过滤表同时执行。当在主中心上对过滤步表进行了变更后,如增加字段或调整字段类型,备中心无法感知到,需要手工在备中心上做同样的修改。否则容灾切换到备中心后会因为表未更新导致应用错误。
  • 过滤表恢复为同步表。早期梳理过滤表清单有误,多配置了过滤表,后来验证需要同步。需要重新对数据表做全量数据同步,并在容灾管理平台ASR-DR上修改这个表是否同步的标志。
  • 同步表改为过滤表。早期同步的表,由于业务做了调整,后续无需再同步,需要在容灾管理平台ASR-DR并在容灾管理平台ASR-DR上修改这个表是否同步的标志。

下图为异地容灾主备架构下,同步表和过滤表的配置逻辑说明。

五 案例

下面分析一个异地容灾的项目中,由于过滤表清单梳理错误,导致业务异常问题及处理经验,便于读者对数据表是否需要跨云同步更有体感。

(1)问题描述
在阿里云容灾平台ASR-DR对某个应用执行容灾切换(RDS MySQL读写权限从Cloud A切换至Cloud B)后,业务请求在备中心(Cloud B)时,业务报错,数据库提示“主键冲突”。

(2)问题分析
我们根据问题处理的先后顺序,对问题定位过程进行分析。

1. 分析数据库报错“主键冲突”:

  • 确认冲突的字段值为交易流水号ID。检查业务数据表,确认这个ID的交易信息已经存在。

2. 分析业务请求路径:

  • 分析是否接入层流量调度异常导致的双写。在异地容灾的主备架构中,通过接入层的全局负载均衡设备GSLB控制,保证只有主中心有业务请求流量,备中心没有业务请求流量。因此双中心业务双写导致的主键冲突的嫌疑可以排除掉。
  • 分析是否为主中心应用层缓存在主备切换后延迟写入数据。在主备架构中,容灾平台ASR-DR平台会保证主中心的RDS MySQL数据库权限设置为只读后,才会对备中心的应用开放对RDS MySQL的读写权限。即使主中心的应用层有缓存延迟写入,在容灾切换后,主中心应用没有权限写入数据,不会出现双写场景。排除此嫌疑。
  • 分析是否为容灾切换前已使用了该序列号。登陆主中心的数据库,检查序列号字段当前可用范围是[90000000000, 18446744073709551615],说明小于90000000000的序列号已经被使用。而当前提示主键冲突的序列号80000000000已经在业务表中有对应的交易记录。因此确认这个交易记录号是在主中心使用过了。
  • 分析备中心应用获取序列号的记录。从应用日志看到,备中心应用在首次启动时,获取了一次最新的序列号,后面没有再从数据库获取最新的序列号。同时检查应用的内存值,发现备中心当前正在使用序列号范围[80000000000, 80000009999]。显然这是过期的序列号。

问题结论:备中心应用使用了过期的交易流水号ID,导致的写数据库出现“主键冲突”。

3. 分析问题引入过程:

  • 分析应用获取序列号的流程:应用首次启动时,从数据库中获取1万个可用的序列号,并更新数据库和应用的内存值。
  • 分析主备中心上的数据同步机制:作为管理全局唯一性序列号的数据表xx_table,通过数据同步工具DTS能够保证数据实时在双中心之间同步,且应用在更新数据库序列号时,对数据库加锁防止不一致。理论上不会出现主备中心上获取到相同的序列号。
  • 分析主备中心上数据表xx_table内容是否一致:发现主中心上的序列号可用范围是[90000000000, 18446744073709551615],而备中心的序列号可用范围是[80000010000, 18446744073709551615]。两者并不一致,说明数据表并没有同步。
  • 检查数据同步工具DTS:工作正常,未发现任何错误或故障。
  • 检查过滤表清单:管理全局唯一性序列号的数据表xx_table应该跨云同步,但是却被配置为过滤表,导致了数据无法同步。
  • 检查过滤表的梳理过程:在容灾演练前的准备阶段,运维人员在备中心部署应用后,业务人员验证功能交易失败。失败原因是应用启动时获取序列号后写数据库失败,提示无写权限,因此交易功能初始化失败。在主备架构下,默认主中心应用对RDS MySQL有读写权限,备中心对RDS MySQL有只读权限。而备中心启动时需要些权限,因此业务人员将管理全局唯一性序列号的数据表xx_table加入到了不同步的过滤表清单中,导致这张表没有从主中心同步到备中心。

问题结论:管理全局唯一性序列号的数据表xx_table被错误地加入到了不做跨云同步的过滤表清单

应急措施

  • 手动将备中心的数据表xx_table中的序列号有效范围,修正为正确的[90000000000, 18446744073709551615]。
  • 重启备中心的应用软件,触发应用重新获取序列号。

改进措施

  • 同步数据:管理全局唯一性序列号的数据表xx_table需要同步,从过滤表清单中移除xx_table,确保主备中心的有效序列号范围一致。
  • 应用改造:当备中心对RDS MySQL有只读权限时,允许更新序列号失败,应用初始化成功。当容灾切换后,备中心获得RDS MySQ读写权限后,由业务请求触发重新按需获取最新的序列号。
  • 测试效果:主中心和备中心同步数据完成后,断开同步链路,手动设置备中心数据库为只读。重新部署改造后的应用,在只读模式下,验证应用启动成功,并且业务请求失败(符合预期)。手动设置备中心数据库为读写,业务请求成功,检查应用是否成功重新获取到有效序列号。重新配置主中心和备中心数据同步链路。
  • 容灾演练:再次进行演练来验证全业务场景。

改进前

 

改进后

 

六 小结

  • 容灾演练是发现系统性问题的起点,不是终点,需要定期开展演练来保鲜系统的容灾能力。
  • 云平台容灾不等于应用容灾,应用级容灾是系统性工程。
  • 通过演练来检查工程能力,技术上包括云平台、应用和网络;流程上包括故障判断、容灾决策、切换操作、应急预案等。

作者:开发者小助手_LS

原文链接

本文为阿里云原创内容,未经允许不得转载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java浮点数数转二进制的数吗_深入理解计算机系统(2.7)-二进制小数和IEEE浮点标准 - Java 技术驿站-Java 技术驿站...

整数的表示和运算我们已经讲完了,在实际应用中,整数能够解决我们大部分问题。但是某些需要精确表示的数,比如某件商品的价格,某两地之间的距离等等,我们如果用整数表示将会有很大的出入,这时候浮点数就产生…

Docker 终失 C 位,开源少年缘何黑化

作者 | 马超出品 | CSDN(ID:CSDNnews)开源真是火了,近些年成功的IT项目像TensorFlow、RocketMQ、TDEngine都是开源项目,而且这种火爆还出了圈,连带着RISC-V这种准开源的芯片也成为了各方争抢的香饽饽。但是…

中油即时通信电脑版_市场营销之即时通讯营销

✎IM营销又叫即时通讯营销(instantmessaging),是企业通过即时工具im推广产品和品牌,以实现目标客户挖掘和转化的网络营销方式。封面设计丨Sweety 责编丨花花第60篇丨每日一篇好文:2645字丨5分钟阅读即时通讯营销常用的主要有以下两种情况:第一…

java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...

博为峰小博老师:在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选取有任何的改变。在ListSelectionListener接口中只定义一个方法,那就是valueChanged(ListSelectionEvente),所以必须实现这个方法&#…

使用 Arthas 排查 SpringBoot 诡异耗时的 Bug

简介: 公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近,在优化接口的响应时间,优化了代码之后,但是时间…

关于数据库,你可能最想知道的几件事

【CSDN 编者按】随着技术不断更新,数据库的发展可谓全面开花,也吸引了越来越多人的关注,但大家真的都足够了解数据库吗?作者 | 易璜珵 责编 | 侯淼淼出品 | 《新程序员》互联网飞速发展的时代里,数据库、中间件和…

java反编译工具_JDA Java反编译工具的下载和使用手册

JDA(javadecompile analysis)是一款以dex为核心的java反编译工具,同时支持apk、dex、jar文件的反编译,支持动态重命名。该软件主要是用来反编译分析代码而不是反编译出来完全正确的java代码,运行需安装jdk1.8及以上版本版本(jdk1.7应该也行)。…

OpenKruise v0.8.0 核心能力解读:管理 Sidecar 容器的利器

简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀,是阿里内部生产环境大规模应用的基于 Kubernetes 之…

请把ios文件解压出来是什么意思_【张小亮】最新版本行会3。中文版本。解压即玩。...

电脑游戏目录【回复:电脑游戏】手机游戏目录【回复:手机游戏】【张小亮】最新版本行会3。中文版本。解压即玩。【名称】行会3【大小】4.12 GB【版本】v0.9.9【系统】电脑游戏【下载】本文中【往下滑】【安装】1。请下载【好压】这款解压软件进行解压。2。…

数据结构是如何装入 CPU 寄存器的?

作者|码农的荒岛求生来源|码农的荒岛求生有同学问了这样一个问题:既然CPU内部的寄存器数量有限,容量有限,那么我们使用的庞大的数据结构是怎样装入寄存器供CPU计算的呢?这篇文章就为你讲解一下这个问题。内存与数据真正有用的程序…

基于WASM的无侵入式全链路A/B Test实践

简介: 我们都知道,服务网格(ServiceMesh)可以为运行其上的微服务提供无侵入式的流量治理能力。通过配置VirtualService和DestinationRule,即可实现流量管理、超时重试、流量复制、限流、熔断等功能,而无需修改微服务代码。 本文所…

网易游戏基于 Flink 的流式 ETL 建设

简介: 网易游戏流式 ETL 建设实践及调优经验分享~ 网易游戏资深开发工程师林小铂为大家带来网易游戏基于 Flink 的流式 ETL 建设的介绍。内容包括: 专用 ETLEntryX 通用 ETL调优实践未来规划 一. 业务背景 网易游戏 ETL 服务概况 网易游戏的…

potplayer 多个进程_创建守护进程的步骤

什么是守护进程?答:守护进程是后台运行的、系统启动是就存在的、不予任何终端关联的,用于处理一些系统级别任务的特殊进程。实现思路:实现一个守护进程,其实就是将普通进程按照上述特性改造为守护进程的过程。需要注意…

mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?

背景2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了。硬件配置:256G 内存,48 core分析过程接手这个问题时现场已经不在了,信息有限,所以我们先从监控系统中查看一下当时的状态。从 PMM 监控来看,这个 MySQL 实…

华为徐直军:以持续创新加快数字化发展

【中国 深圳】2021年9月23日,华为全联接大会以线上形式举行,今年的全联接大会以“深耕数字化”为主题,汇聚了业界思想领袖,商业精英,技术大咖,生态伙伴等,探讨如何深入业务场景,把数…

大型 Web 应用插件化架构探索

简介: 随着 Web 技术的逐渐成熟,越来越多的应用架构趋向于复杂,例如阿里云等巨型控制台项目,每个产品下都有各自的团队来负责维护和迭代。不论是维护还是发布以及管控成本都随着业务体量的增长而逐渐不可控。在这个背景下微前端应…

高精地图技术专栏 | 基于空间连续性的异常3D点云修复技术

简介: 我们需要通过激光的内部机制和数据处理算法,将这些噪声恢复到它本来的位置。本文会从MTA问题产生的原理、激光应对MTA的内部机制、数据处理算法三方面来介绍高精资料处理是如何解决这个问题的。 1.背景 1.1 高精资料采集 高精采集车是集成了测绘…

pytorch 图像分割的交并比_「通知」《深度学习之图像识别》再版工作启动,欢迎指导和提建议...

不知不觉有三第一本书也上市超过1年半了,第一次写作略显稚嫩,许多细节处理不当,比如没有在印刷前核对公式,被删掉了参考文献影响读者阅读体验等。现在本书正式启动再版工作,注意不是重印,是再版。重印只是修…

mysql实例怎么复制_Mysql实例MySQL数据库复制概论

《Mysql实例MySQL数据库复制概论》要点:本文介绍了Mysql实例MySQL数据库复制概论,希望对您有用。如果有疑问,可以联系我们。导读:每当我们讨论一项(新的)领域技术的时候,最好的方式通常是首先抛出一些问题,这些问题大致分为三类&a…

app inventor离线版_百度要哭了!今日头条出了搜索引擎了,还做了APP

今天小编为大家送上几条新闻了:1 微软给Edge浏览器添加离线小游戏谷歌浏览器在不联网的情况下,会有一个小恐龙跳一跳的游戏,而最近换上chromium内核的edge,也添加了自己的离线小游戏。这是一款冲浪游戏,非常类似于微软…