25-RDS只读副本-实操演示及重要知识点

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天这节课的内容为RDS只读副本,继续上节课的内容。我们开始今天的课程内容。


上节课的最后,我们使用东京的主数据库在首尔区域创建了一个只读副本,目前只读副本已经创建完成,可以看到状态为 “可用”。

我们测试使用的主数据库是新创建的,所以没有什么数据,创建只读副本大概用了10分钟左右。如果您的主数据库中包含大量的数据,那么基于此创建只读副本的时间就会更长。


另外,创建只读副本的时间也取决于 是在同主数据库相同AWS区域创建只读副本,还是不同区域创建。


就我们目前这个测试环境而言,主数据库在东京,而创建的只读副本在首尔,所以数据同步的时间会比在相同区域时间所需更长。


接下来的内容,我们要测试下主数据库和只读副本之间数据复制是否可以正常工作。 

连接RDS主数据库


我们先切换到主数据库所在的东京区域,接下来我们要连接主数据库,然后在主数据库实例上创建一个测试的数据库,看下数据是否会自动复制到只读副本。


要在本地终端访问主数据库,在创建数据库时,要将公开可用性打开,以及在数据库对应的VPC安全组中,添加相应的允许访问策略。


为了测试需要,我们的主数据库和只读副本都做了这些操作,否则将无法从本地连接数据库,这一点要注意。


我们复制一下主数据库的终端节点地址,为iloveawscn.cmvgetueoggg.ap-northeast-1.rds.amazonaws.com,然后在本地通过数据库的终端节点地址和端口连接数据库。

切换到本地终端,在连接数据库前,我们先使用nc命令测试下本地到数据库的端口联通性,输入命令:

nc -zv  iloveawscn.cmvgetueoggg.ap-northeast-1.rds.amazonaws.com 3306

可以看到本地到数据库的端口连通性没问题,我们继续连接主数据库,输入命令:

mysql -h iloveawscn.cmvgetueoggg.ap-northeast-1.rds.amazonaws.com -u iloveawscn -p

-u 后面iloveawscn为我们创建数据库设置的用户名,然后输入密码。


我们已经连接到了主数据库,输入show databases; 列出了当前存在的一些数据库。

在RDS主数据库上创建一个新数据库


我们现在在新创建个新的数据库,名为rpdemo,输入命令:

create database rpdemo;

数据库已经创建完成了,在一次show databases;  可以看到我们刚创建的rpdemo数据库。

好,我们从主数据库中退出来,接下来我们要做的,是使用本地终端连接在首尔区域的只读副本。

连接只读副本,确认复制情况


切换到RDS管理控制台,切换到首尔区域。
同样,我们复制只读副本的终端节点地址,然后切换到本地终端,先测试本地到只读副本的连通性:

nc -zv   iloveawscn-rp.c5cqd1aey53g.ap-northeast-2.rds.amazonaws.com 3306

连通性没有问题。

然后我们连接只读副本,输入命令:

mysql -h iloveawscn-rp.c5cqd1aey53g.ap-northeast-2.rds.amazonaws.com -u iloveawscn -p

注意连接只读副本的用户名和密码和主数据库是一致的。


好的,我们现在已经连接到了只读副本,然后输入show databases; 命令,可以看到我们刚刚在主数据库创建的rpdemo数据库已经复制过来了。

只读副本无法写入数据


需要注意的一点是,我们现在连接的是只读副本,只读副本是无法写入数据的,我们可以测试下是不是这样,输入命令:

create database rpwrite;

提示我们这个mysql服务器运行在read-only只读模式无法执行此语句。
所以在只读副本是无法直接写入数据的。数据写入在主数据库,然后主数据库会异步复制数据至只读副本。

只读副本监控指标—副本滞后指标


在使用只读副本的过程中,有一个重要的指标需要关注和监控。


我们切换到只读副本,然后监控选项卡,找到cloudwatch的“副本滞后”指标,这个指标的单位是毫秒,显示只读副本上的当前时间戳与主数据库的原始时间戳之间的差异,差异过大意味着主数据库数据未能及时复制至只读副本,只读副本数据较旧需要及时排查问题,在实际使用环境,需要对这个副本滞后指标做监控。

好的,我们接下来的内容,来讨论下对于使用只读副本以及考试过程中,关于只读副本的一些重要的知识点。

只读副本重要知识点

  • 只读副本更适用于读取密集型数据库工作负载的需求
  • 创建只读副本,必须在源数据库实例上启用自动备份,并将备份保留期设置为一个非零值
  • 可从一个数据库实例创建最多 5 个只读副本,Aurora最多15个
  • 可以将只读副本提升为独立的数据库实例使用。这个我们上节课介绍过了,只读副本也可作为灾难恢复策略的一部分。拿我们做测试这个案例来举例,我们的主数据库在东京区域,只读副本首尔区域,如果之后主数据库所在的东京区域出现故障,导致我们无法连接到主数据库,当出现这种情况时,是可以将首尔区域的只读副本提升为独立的数据库实例使用的,提升只读副本为独立数据库后,与原来的主数据库异步复制将停止,只读副本作为主数据库来使用。大家要了解提升只读副本是可以应对这个场景的。
  • 只读副本适用于 MariaDB、MySQL、Oracle 和 PostgreSQL,Auror

好的,接下来的内容,我们将使用aws管理控制台快速演示一下上面讨论的部分知识点。


创建只读副本,必须在源数据库实例上启用自动备份,并将备份保留期设置为一个非零值。


我们看下在哪里进行配置,切换到东京区域的主数据库的RDS管理控制台,然后找到我们的主数据库,点击修改,在下面的备份部分,可以看到备份保留期,需要将其配置为非0天启动自动备份,才可以基于这个主数据库创建只读副本,当然在创建这个数据库时也可以进行自动备份的配置。必须在源数据库实例上启用自动备份,才能创建只读副本。


好,这是一个知识点。

回到RDS管理控制台切换到东京区域,我们之前已经基于这个主数据库创建了一个只读副本,我们可以再次选择这个主数据库,然后通过操作-创建只读副本,在创建一个只读副本,可从一个数据库实例创建最多 5 个只读副本,Aurora最多可创建15个只读副本。

然后我们演示下如何将只读副本提升为独立的数据库实例使用。


切换到只读副本所在的首尔区域,在RDS管理控制台选择只读副本,通过“操作-提升”来提升只读副本。


首先需要设置关于启用自动备份的一些选项,我们前面已经介绍过了,然后点继续。


会看到提示信息:“是否确定提升该只读副本,在提升该只读副本之前,建议您停止主数据库的所有事务并等待只读副本滞后为零。”


副本滞后这个指标我们前面已经讨论过,提升只读副本,主数据库和只读副本间的复制会停止,如果提升时副本滞后这个指标数值较大,只读副本很可能不具备提交给主数据库实例的所有事务,也就是说提升后的只读副本数据是比主数据库滞后的,这里要注意。


我们继续,点击“提升只读副本”,将只读副本提升为主数据库,整个过程需要等待一些时间,我暂停一下录制,等提升完成后在继续课程。

大概等了几分钟左右操作完成,可以看到状态为可用,之前iloveawscn-rp是只读副本,现在提升后就可以作为独立的数据库实例来使用。


之前iloveawscn-rp是只读副本的时候我们做了个测试,连接只读副本之后创建数据库会提示:mysql服务器运行在read-only只读模式无法执行此语句,因为只读副本是无法直接写入数据的;


那我们接下来就在测试下,来看一下只读副本提升为独立的数据库实例后,能否创建数据库。


同样的方式连接到这个数据库,然后输入:

create database rpwrite;

创建rpwrite数据库,可以看到执行成功,输入命令:show databases; 可以看到当将只读副本提升为独立的数据库来使用后,是可以正常写入数据的。

好的,以上就是我们今天的课程内容,我们介绍了只读副本相关的知识点,希望能给大家带来帮助。


希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

  • AWS爱好者的网址是www.iloveaws.cn。
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
  • 加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2020年6月22日

0 responses on "25-RDS只读副本-实操演示及重要知识点"

Leave a Message

error: Content is protected !!