亚马逊云 RDB数据故障转移(多可用区)

2022-12-01,,,,

RDB关系数据库(Relational Database,RDB)

创建名为VPC for RDS的vpc

两个可用区,两组公内网

创建安全组

创建RDS数据库实例用的数据库子网组

创建RDS数据库实例

创建数据库

连接RDS数据库实例并给数据库test添加数据

1.创建安全组

2.创建用来连接数据库实例的EC2

选择vpc for rds那个vpc的public subnet2,因为mysql的安全组只允许这一个网段,然后自动分配公有IP

3.连接并修改数据库

复制endpoint,去到ec2的终端连接数据库

[ec2-user@ip-10-1-3-139 ~]$ sudo -i

[root@ip-10-1-3-139 ~]# yum -y install mysql

配置数据库

[root@ip-10-1-3-139 ~]# mysql -h hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn -u cstor -p12345678
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 8.0.28 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
MySQL [(none)]>
MySQL [(none)]> use test
Database changed
MySQL [test]> create table user (name varchar(20), address varchar(20), primary key (name));
Query OK, 0 rows affected (0.10 sec) MySQL [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| user |
+----------------+
1 row in set (0.00 sec) MySQL [test]> insert into user (name, address) values ("mqy12", "wuhan" );
Query OK, 1 row affected (0.01 sec) MySQL [test]> select * from user;
+-------+---------+
| name | address |
+-------+---------+
| mqy12 | wuhan |
+-------+---------+
1 row in set (0.00 sec) MySQL [test]>

部署web应用

上传文件

部署

[root@ip-10-1-3-139 ~]# cd /home/ec2-user/
[root@ip-10-1-3-139 ec2-user]# ls
server.conf webServer
[root@ip-10-1-3-139 ec2-user]# chmod a+x webServer
[root@ip-10-1-3-139 ec2-user]# vim server.conf
[root@ip-10-1-3-139 ec2-user]# cat server.conf
[mysql_server]
mysql_host = "hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn"
mysql_port = "3306"
mysql_user = "cstor"
mysql_password = "12345678"
mysql_db = "test"
[root@ip-10-1-3-139 ec2-user]# nohup ./webServer &
[1] 2787
[root@ip-10-1-3-139 ec2-user]# nohup: ignoring input and appending output to ‘nohup.out’ [root@ip-10-1-3-139 ec2-user]#
[root@ip-10-1-3-139 ec2-user]# curl localhost
hello mqy12, from wuhan[root@ip-10-1-3-139 ec2-user]# curl localhost
hello mqy12, from wuhan[root@ip-10-1-3-139 ec2-user]# curl localhost
hello mqy12, from wuhan[root@ip-10-1-3-139 ec2-user]#

实施故障转移

reboot mysql实施故障转移

可以发现ip地址发生了变化,变化到另一个可用区的私有地址

[root@ip-10-1-3-139 ec2-user]# while true; do host hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn; sleep 1; done
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.2.160
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.2.160
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.2.160
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.4.87
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.4.87
hello-db.c9d168zhminz.rds.cn-northwest-1.amazonaws.com.cn has address 10.1.4.87

等待一会儿后,可用区也会发生改变

使用多可用区部署时,AmazonRDS会在与子网关联的一个可用区创建主数据库实例。然后,AmazonRDS在与不同子网关联的不同可用区中创建备用数据库实例

转移的过程时延很小。

亚马逊云 RDB数据故障转移(多可用区)的相关教程结束。

《亚马逊云 RDB数据故障转移(多可用区).doc》

下载本文的Word格式文档,以方便收藏与打印。