PolarDB MySQL全球数据库(GDN)异地多活
1. 跨地域部署全球数据库
本案例中在原有已经创建的PolarDB MySQL 8.0.1版本的主集群(杭州地域)基础上,需要创建全球数据库网络(GDN),并添加2个PolarDB MySQL 8.0.1版本的从集群,一个从集群地域在深圳,另一个从集群地域在北京,来实现跨地域部署全球数据库网络。
创建全球数据库网络(GDN)。
登录PolarDB控制台,单击左侧导航栏中的全球数据库网络(GDN)。然后在全球数据库网络(GDN)页面,单击创建全球数据库网络。
在创建全球数据库网络(GDN)对话框中,输入全球数据库名称,选择您已创建的PolarDB MySQL 8.0.1版本的主集群和该主集群所在的地域,单击确定。
重复下述操作,连续添加2个PolarDB MySQL 8.0.1版本的从集群。
全球数据库网络创建成功后,单击添加从集群。
在弹出的售卖页中,根据实际需要进行配置并购买。
说明:您购买的从集群的地域不能和主集群在同一个地域,否则无法实现异地多活的场景。例如,您已经购买了深圳地域的主集群,就不能购买深圳地域的从集群。
全球数据库网络中的从集群创建成功后,在全球数据库页面单击全球数据库网络ID链接,在集群列表中您可以看到创建成功的从集群。
全球数据库网络部署完成后,从集群会同步主集群中的数据库和数据库账号信息。本案例中可以看到在杭州地域主集群中创建的数据库polardb-gdn和数据库账号polardb_gdn被同步到了深圳地域的从集群中。
深圳地域的从集群中的数据库账号polardb_gdn,如下:
深圳地域的从集群中的数据库polardb-gdn,如下:
2. 创建VPC和交换机
说明:本实验不提供实操资源,仅供阅读与学习。如需购买,请使用个人阿里云账号购买操作。
创建VPC专用网络。
进入专用网络VPC控制台。
选择列表中的专有网络,点击创建专有网络。
地域为华东1(杭州),名称test_polardb,IPv4网段为172.16.0.0/12。
创建交换机。
在下方填写交换机名称jiaohuanji_polardb,单击确定。
3. 在ECS实例上安装压测软件
本案例以8 vCPU 16 GiB规格的ECS实例为例。
登录ECS。
登录ECS控制台,选择实例,点击开通的实例ID名称。
单击远程连接。
可选择Workbench远程连接方式,单击立即登录。
在ECS上执行如下命令,安装压测工具SysBench。
执行如下命令下载SysBench。
yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql git clone https://github.com/akopytov/sysbench.git
进入SysBench目录。
cd sysbench
切换到SysBench 1.0.18版本。
git checkout 1.0.18
运行autogen.sh。
./autogen.sh
编译。
./configure --prefix=/usr --mandir=/usr/share/man make make install
执行如下命令配置SysBench Client,使内核可以使用所有的CPU处理数据包(默认设置为使用2个CPU),同时减少CPU之间的上下文切换。
sudo sh -c 'for x in /sys/class/net/eth0/queues/rx-*; do echo ff>$x/rps_cpus; done' sudo sh -c 'echo 32768 > /proc/sys/net/core/rps_sock_flow_entries' sudo sh -c 'echo 4096 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt'
说明:ff表示使用8个CPU(1个f表示4个CPU)。请根据实际配置修改,例如本案例中ECS为8核CPU,因此输入ff。
4. 创建PolarDB主集群
进入产品与服务模块,选择云数据库PolarDB。
点击左侧列表中的集群列表,选择创建新集群。
商品类型为按量付费,创建方式为创建主集群,地域为华东1(杭州),主可用区为可用区J,网路类型为专有网络,VPC网络为test_polardb,VPC交换机为jiaohuanji_polardb。
兼容性为MySQL8.0,子系列为通用规格,节点规格4核8G,点击立即购买。
购买成功。
新增IP白名单分组。
单击集群IP进入基本信息页面,选择左侧列表中的集群白名单,点击新增IP白名单分组。
IP白名单分组名称为ecs,白名单内IP地址为0.0.0.0/0,点击确定。
创建完成,如下图所示。
5. 创建模拟数据,写入全球数据库的主集群PolarDB MySQL
本操作在ECS准备压测数据,写入数据到PolarDB MySQL 8.0.1版本的主集群中的数据库中。
登录PolarDB控制台,单击集群名称,进入集群基本信息页面后,单击数据库管理-创建数据库,完成数据库的创建。本案例中数据库的名称定为polardb-gdn。
然后在基本信息页面再单击账号管理,创建数据库账号。本案例中数据库账号的名称为polardb_gdn。
在ECS中,执行如下命令,准备压测数据。
sysbench --db-driver=mysql --threads=8 --table-size=25000 --tables=250 --events=0 --time=60 --mysql-db=xxx --mysql-user=xxx --mysql-password=xxx --mysql-host=xxx --mysql-port=xxx oltp_read_write prepare
涉及到的参数说明如下:
参数 |
说明 |
threads |
测试线程数,可设置为8、16、32、64、128、256、512等,可根据实际的实例规格和环境时延进行尝试。 您可按照示例代码中的8进行设置。 |
table_size |
要准备的表的大小,可按照示例代码中的25000进行设置。 |
tables |
要准备的表的数量,可按照示例代码中的250进行设置。 |
events |
测试请求数量,按照示例代码中的0进行设置。 |
time |
测试时间,可按照示例代码中的60进行设置。 |
mysql-db |
压测数据要注入的数据库名称,本示例中即为Polardb MySQL中预先创建的polardb-gdn数据库。 |
mysql-user |
Polardb MySQL集群的数据库账号。 |
mysql-password |
Polardb MySQL集群的数据库账号对应的密码。 |
mysql-host |
Polardb MySQL集群的集群地址。 可进入集群的基本信息页面获取。 |
mysql-port |
Polardb MySQL集群的连接端口。 可进入集群的基本信息页面获取。和集群地址在一起展示,默认为3306。 |
该命令会自动在Polardb MySQL预先创建的polardb-gdn数据库中创建N个名为sbtest1、sbtest2……sbtestN的表(N为tables参数指定的表数量),其表结构如下,供您了解:
CREATE TABLE `sbtestN` ( `id` int(11) NOT NULL AUTO_INCREMENT, `k` int(11) NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_100` (`k`) ) ENGINE=InnoDB AUTO_INCREMENT=25001 DEFAULT CHARSET=utf8
6. 在主集群中创建账号和数据库
点击进群ID进入集群。
创建账号。
选择左侧列表中的账号管理,点击创建账号。
账号名为polardb_gdn,账号类型为高权限账号,密码为1234@abc。
创建成功。
创建数据库。
选择左侧列表中的数据库管理,点击创建数据库。
数据库名称为polardb_gdn,支持字符集为utf8mb4。
创建成功。
7. 连接全球数据库网络查看集群间的数据同步
本操作通过从集群连接到全球数据库网络来查看全球数据库网络中集群间的数据同步情况。本案例通过深圳地域的从集群连接到全球数据库网络,来查看从杭州地域的主集群同步过来的数据和复制延迟。
单击全球数据库网络ID。
在集群列表中,单击集群ID列华南1(深圳)地域的集群ID链接。
在基本信息页面右上角,单击登录数据库。
在弹出的对话框中,输入数据库polardb-gdn
的数据库账号和密码,单击登录。
登录到DMS后,在已登录实例列表中,单击目标集群名称,找到并双击polardb-gdn
数据库名称,即可切换到polardb-gdn
数据库进行管理。我们可以看到从主集群(杭州地域)同步过来的表信息sbtest1、sbtest2……sbtestN。
在polardb-gdn
数据库中,执行SELECT * FROM `sbtest1`;
可以看到从主集群中同步过来的sbtest1
表信息。
在polardb-gdn
数据库中,执行show polar status
查看主集群(杭州)到从集群(深圳)的复制延迟。
执行show polar status
。
单击Status栏位的查询结果。
查看查询结果中Seconds behind master
字段的取值。在本案例中可以发现Seconds behind master
字段取值为1,说明主集群(杭州)到从集群(深圳)的复制延迟为1秒。
8. 后续操作
全球数据库跨地域部署完成后,您可以在集群列表中,查看本地集群的集群地址。通过使用本地集群的集群连接地址把您的应用连接到全球数据库网络(GDN)中,从而把您的业务平滑的扩展到更多地域。
9. 创建ECS实例
进入云服务器ECS控制台。
创建ECS实例。
点击左侧列表中的实例,选择地域为华东1(杭州),单击创建实例。
付费模式为按量付费,地域为华东1(杭州),可用区为可用区J,实例规格为4C8G、ecs.c7.xlarge,镜像CentOS 7.9 64位,点击下一步。
专有网络为test_polardb,交换机为jiaohuanji_polardb,勾选分配公网IPv4地址,点击下一步。
选择自定义密码,设置密码为1234@abc,点击确认订单。
创建成功。
实验链接:https://developer.aliyun.com/adc/scenario/da31dd4a02224093ba2c61a9e61a0a01