简介
近期,Oracle云端的MDS推出了Read Replicas with Load Balancer服务。客户可以基于已有的MDS实例,来创建最多18个只读实例。从而实现MySQL的读写分离,进而支持更高的系统负载。
同时,在创建只读副本时,系统会自动创建相应的Load Balancer。然后,后继创建的只读副本,都将会加入该Load Balancer的后端。前面的业务系统,既可以连接到Load Balancer上,也可以直接连接到只读副本上,从而有了更多的选择。
架构图如下:
部署方式
单AD模式

如果订阅的region只包含一个AD,那么只读副本将被放置在不同的FD中。
假设DB系统在FD1中。则创建的第一个只读副本将会驻留在与DB系统相同的FD中
(在这种情况下,就是FD1)。然后,第二个只读副本位于FD2,第三个只读副本位于FD3。如果你创建了第四个只读副本,它将被创建在FD1中,这个循环一直重复到为一个DB系统创建了最大的只读副本数量为止。
多AD模式

如果订阅的region包含多AD,那么只读副本就会被放置在各AD中。每个可用性域中的FD是自动确定的,无需选择。在不同的AD中创建只读副本,能够提供更高的可用性。
假设DB系统在AD1中。则创建的第一个只读副本位于与DB系统相同的AD上(在这种情况下,AD1)。创建的第二个制度副本位于AD2,第三个在AD3。如果创建了第四个只读副本,它将在AD1。这个循环一直重复到为一个DB系统创建了最大的只读副本数量为止。
限制与说明
只读副本与原系统必须部署在同一个region当中。且已创建的只读副本不可移动到其他region。
具有与原系统相同的shape和配置。
单机、HA、HeatWave三种部署模型均可创建只读副本。
一个MDS最多可以创建18个只读副本。
具有4个OCPU以上的MDS才可以创建只读副本。
创建只读副本,无需停机时间。
只读副本不能升级为单独的DB系统。
数据以异步复制的方式同步到只读副本,因此存在延迟。延迟取决于工作负载和DB的shape。
负载均衡器可以在不同的只读副本之间分配读取流量。在创建第一个只读副本时,会自动创建负载均衡器。随后创建的只读副本都将作为后端加入该负载均衡器。
只读副本和负载均衡器有私有的endpoint。不能从互联网直接访问。但是可以类似于连接到DB系统的方式,来连接到只读副本或者负载均衡器
(使用Cloud Shell、计算实例、bastion会话或VPN)。
只读副本和负载均衡器以及MDS位于同一个私有子网当中。
在自动升级时,单机模式时,只读副本与DB系统并行升级;HA模式,先依次升级只读副本,然后是从库,最后是主库。
带来的收益
可扩展性。只读副本可以使DB系统的规模超过其处理重读工作负载的能力。通过创建一个数据库系统的多个只读副本,就可以增加总的读取吞吐量。
性能。
你以通过将应用中的重读工作负载重定向到读副本来减少相关DB系统的负载。
删除保护。可以通过启用删除保护功能来保护读副本和其相关的DB系统免受删除操作的影响。
具有成本效益。只读副本的收费标准与DB系统中的其他资源相似。只读副本是一个具有成本效益的解决方案。因为你可以创建只读副本,并将读取量大的工作负载卸载到只读副本上,而不是为数据库系统购买配置更高shape。
安全性。只读副本中的数据是经过加密的。数据在复制的过程中也是加密的。
参考文档
https://blogs.oracle.com/mysql/post/read-replicas-mysql-database-service
https://docs.oracle.com/en-us/iaas/mysql-database/doc/managing-read-replica.html#GUID-89A5FC1F-4A51-4604-9AA5-7007784446F6
编辑:
赵靖宇





