Amazon RDS同步
Amazon RDS
Amazon RDS是关系型数据库服务(Relational Database Service),那RDS为什么是服务呢。可能是因为RDS本身就提供了高可用性及高容错性。很多服务需要数据库的支撑,数据库的停止会导致整个系统的 停止,如何设计及运维高可用性及高容错性的数据库是评价一个系统的重要指标。
高容错性
容错(Fault Tolerance)就是当发生故障(Fault)时,系统能持续地提供服务。不让系统发生故障固然重要,但是发生故障时如何对应(Tolerance)也是非常重要的!
Amazon RDS用多可用区域部署(MultiAZ)及创建只读副本来实现其高可用性。
多可用区域部署(MultiAZ)
创建RDS时可选择多可用区域部署,这是跨区域(Availability Zone)部署主数据库和从数据库的选项,勾选此选项即你的数据库是,写到主数据库的数据会自动复制到从数据库的主从数据库了。※以不需要系统工程师搭建2台服务器,再部署主从数据库了?
万一AZ发生故障时,数据库的可用性受到影响的是完成Fail Over为止。
多可用区域部署的复制模式
为了最小化故障影响,RDS的多可用区域部署采用的是同步复制,即写入主数据库的数据成功复制到从数据库以后,RDS进行应答。跨AZ之间的这种同步复制会带来一定的延迟,但是AWS通过AZ之间的高速宽带将延迟时间降低到数ms。
异步复制是当数据成功写入到主数据库时数据库进行应答的模式,即不承诺主数据库和从数据库的内容是一致的。
物理复制及逻辑复制
RDS的多可用区域部署是采用了物理复制,即同时会把数据写入主数据库及从数据库,这种并行写入非常快速从而减少同步复制的延迟。
创建只读副本(Create Read Replica)
RDS提供的只读副本功能将创建只读数据库,可用来实现数据库的读写分离。当我们用多可用区域部署的时候,我们能访问的数据库只有一个,而创建只读副本后有2个可以访问的数据库,1个是可读写的数据库另1个是只能读的数据库。
纵向扩展(ScaleUP)
RDS和EC2一样可以进行纵向扩展(ScaleUP),还原快照时指定需要的数据库实例类进行纵向扩展,并且当存储空间不足时通过修改RDS的分配存储空间可简单扩张。