限时免费!手把手教你免费领用阿里云PolarDB MySQL版Serverless集群,体验业界一流数据库的顺滑感受!

本文涉及的产品
简介: 具备多主多写、多活容灾、HTAP特性的一流数据库PolarDB,今日免费体验!

教程简介

通过本教程,您将学习通过热备切换实现阿里云PolarDB MySQL版Serverless集群的高可用。 集群中的只读节点开启热备功能后,主备切换可实现快速切换和事务保持。本教程采用测试工具SysBench持续对PolarDB MySQL版的Serverless集群注入流量,并在流量注入过程中手动触发数据库crash来观察数据库的切换速度和事务保持能力。

我能学到什么

  • 熟悉通过装有mysql client的ECS实例创建PolarDB MySQL版的Serverless集群的数据库命令。
  • 了解利用SysBench测试PolarDB MySQL版的Serverless集群的方法。
  • 体验PolarDB MySQL版Serverless集群的故障容灾能力。image.png

环节一:准备环境和资源

本环节耗时:18分钟

开始教程前,请按以下步骤准备环境和资源:

1. 准备云服务器ECS实例。

由于要进行SysBench性能测试,ECS实例的操作系统需要选择为CentOS 7.7 64位。ECS实例安全组的出方向要放行MySQL默认使用的3306端口,具体操作请参见添加安全组规则
您可以前往阿里云免费试用查看您的阿里云账号是否具有云服务器ECS试用资格。如有试用资格,可通过试用ECS来完成教程。如无试用资格,则需使用自有ECS资源才能完成教程。不建议使用生产环境中的自有ECS资源,也不要将教程中的测试数据和自有ECS资源的数据混用。测试完成后及时清理测试数据,避免影响自有资源正常运行。


2.访问阿里云免费试用

单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。


3.成功登录后,在产品类别下选择数据库 > 关系型数据库,在PolarDB for MySQL Serverless卡片上单击立即试用


4.在配置PolarDB for MySQL Serverless集群信息面板,完成参数配置。完成本教程需要的配置信息如下(实际操作请根据业务需求按需配置):

  • 地域和可用区:如需使用私网IP访问PolarDB MySQL版集群,此处选择的地域必须与ECS实例相同,可用区可以不同。
  • VPC网络和交换机
  • 如果您已创建符合您网络规划的VPC和交换机,直接选择该VPC和交换机。
  • 如果您未创建符合您网络规划的VPC和交换机,可以使用默认的VPC和交换机。
  • 如果以上已创建的和默认的VPC和交换机无法满足您的要求,可以自行创建VPC和交换机,详情请参见创建和管理专有网络
  • 如需使用私网IP访问PolarDB MySQL版集群,此处选择的VPC网络必须与ECS实例相同,否则ECS实例和PolarDB MySQL版集群无法通过VPC网络互通。
  • 其他参数:保持默认值或按需修改。


5.同意协议后,单击免费试用,并根据页面提示完成试用申请。开通成功后,需要10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。


环节二:创建数据库账号

本环节耗时:5分钟

1.登录PolarDB控制台,单击左侧集群列表,然后选择云产品资源提供的地域。例如:华东1(杭州)。


2.创建数据库账号。

  1. 集群列表页面,单击集群ID,进入基本信息页面。
  2. 单击左侧导航栏配置与管理>账号管理
  3. 单击左上方创建账号
  4. 参考说明配置账号信息,然后单击确定。请记录此处创建的数据库账号及密码,后续步骤中会反复使用。
  • 数据库账号:输入数据库账号名称,例如:temp。
  • 账号类型:选择高权限账号。
  • 密码:设置账号密码。
  • 确认密码:再次输入密码。

3.设置数据库白名单。连接数据库需要设置数据库白名单,单击左侧导航栏配置与管理>集群白名单。在配置白名单界面将默认的白名单地址127.0.0.1更改为ECS实例的公网IP或者私网IP,然后点击确定使白名单地址生效。查看ECS实例IP地址的方法请参见查看IP地址


环节三:开启只读节点的热备功能

耗时:10分钟

1.在PolarDB控制台单击左侧集群列表,然后选择集群所在地域。例如:华东1(杭州)。


2.为只读节点开启热备。

  • 集群列表页面,单击集群ID,进入基本信息页面。
  • 基本信息页面的数据库节点区域,单击右上角的切换图标切换视图。

  • 数据库节点区域,找到需要设置热备功能的只读节点,单击操作列下的开启热备。开启热备功能会进行节点角色切换,大约需要6分钟,请您耐心等待。只读节点的状态变为运行中,表示热备开启完成。


3.单击左侧导航栏的参数配置,在参数配置页面将集群的loose_innodb_trx_resume参数值设置为ON。参数打开表示事务续传功能开启。具体操作请参见设置集群参数和节点参数。该参数修改生效大概需要两分钟时间,请您耐心等待。当loose_innodb_trx_resume参数的值为ON时,表示参数修改完成。


环节四:安装mysql-client和SysBench

耗时:5分钟

1.登录ECS实例。


2.在ECS中依次执行命令安装mysql-client。通过mysql --version命令如果能看到mysql的版本号,说明mysql安装成功。

mkdir package 
cd package
# 下载mysql对应的安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 
# 安装mysql
yum -y install mysql57-community-release-el7-10.noarch.rpm 
yum -y install * --nogpgcheck mysql-community-server


3.在ECS中依次执行命令安装SysBench。通过sysbench --version命令如果能看到SysBench的版本号,说明SysBench安装成功。

yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql unzip
##如果出现GPG keys的校验报错,请在该命令后面加上--nogpgcheck
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/Universities/sysbench.zip
##下载sysbench
unzip sysbench.zip
##解压缩
cd sysbench
##打开sysbench目录
git checkout 1.0.18
##切换到sysbench 1.0.18版本
./autogen.sh
##运行autogen.sh
./configure --prefix=/usr --mandir=/usr/share/man
make
##编译
make install



4.执行命令配置SysBench client,使内核可以利用所有的CPU核数处理数据包,同时减少CPU核数之间的上下文切换。如果您购买的ECS实例的CPU核数低于4核,无需执行该命令。本文档中的f表示使用4个核,请根据您实际购买的ECS实例CPU核数进行配置。如果您购买的是8核的ECS实例,就用ff表示。

sudo sh -c 'for x in /sys/class/net/eth0/queues/rx-*; do echo f>$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"



环节五:模拟故障容灾

耗时:150分钟

1.在ECS上执行命令(会提示输入密码,密码为创建数据库账号时为示例账号temp设置的密码),在PolarDB MySQL版Serverless集群中创建数据库testdb,用于后续的SysBench流量注入。

  • 如果使用ECS实例的公网IP地址访问PolarDB MySQL版Serverless集群,此处的集群地址请使用PolarDB MySQL版集群的公网地址;如果使用ECS实例的私网IP地址访问PolarDB MySQL版Serverless集群,此处的集群地址请使用PolarDB MySQL版集群的私网地址。
  • PolarDB的连接地址包括主地址和集群地址,本教程中请使用集群地址。关于如何查看集群的连接地址,请参见查看连接地址和端口
  • 端口号默认3306。
  • 用户名是之前步骤中创建的PolarDB数据库账号的用户名(temp)。

命令执行成功后,登录PolarDB控制台,在集群详情页面中单击登录数据库,使用已创建的账号temp和密码登录到DMS中,如果发现DMS中目标实例下存在数据库testdb,说明数据库创建成功。

mysql -h 集群地址 -P 端口号 -u 用户名 -p -e 'create database testdb'


2.使用SysBench模拟对数据库进行持续的流量注入。整个压测流量注入的时间较长,如果使用ECS实例的公网IP地址访问PolarDB MySQL版Serverless集群,大约需要1~2个小时;如果使用ECS实例的私网IP地址访问PolarDB MySQL版Serverless集群,大约需要10分钟。具体时间取决您的网络情况,请您耐心等待。

sysbench --db-driver=mysql --mysql-host=<集群地址> --mysql-port=<端口号> --mysql-user=<用户名> --mysql-password=<密码> --mysql-db=testdb --table_size=25000 --tables=250 --events=0 --time=600  oltp_write_only prepare


3.运行workload。为了您能及时观测到SysBench的TPS跌零现象,请提前登录PolarDB控制台并在运行workload的过程中直接执行第4 - 5步模拟故障容灾。

sysbench --db-driver=mysql --mysql-host=<集群地址> --mysql-port=< 端口号> --mysql-user=<用户名> --mysql-password=<密码> --mysql-db=testdb --table_size=25000 --tables=250 --events=0 --time=600 --threads=8 --percentile=95 --report-interval=1 oltp_write_only run



4.登录PolarDB控制台,在集群详情页面中单击登录数据库,使用已创建的账号temp和密码登录。


5.在PolarDB MySQL版Serverless集群的DMS中执行命令,该命令可激活Serverless集群中的模拟故障容灾功能。

call dbms_fault.crash();



环节六:完成

耗时:3分钟

观察数据库的容灾恢复情况:在ECS终端中,观察压测的执行情况。压测的执行情况可以反应业务的连接情况。 如下图您可以看到,在触发故障容灾后,SysBench的TPS出现了跌零,持续10秒左右后立即恢复,并恢复正常的压测。在触发故障容灾后到恢复正常的压测期间,并没有出现报错,数据库连接也未发生中断。



环节七:清理及后续

耗时:5分钟

清理

完成教程后,请及时清理测试数据和试用资源。


  • SysBench模拟流量数据清理
sysbench --db-driver=mysql --mysql-host=集群地址 --mysql-port=端口号 --mysql-user=用户名 --mysql-password=密码 --mysql-db=testdb --table_size=25000 --tables=250 --events=0 --time=600 --threads=8 --percentile=95  oltp_write_only cleanup
  • PolarDB MySQL版Serverless集群的试用时长为3个月,到期未释放可能产生欠费。如不再使用Serverless集群,请登录PolarDB控制台,找到目标集群,在操作列单击更多>释放,按照界面提升手动释放集群。
  • ECS提供的试用实例有按量付费实例和包年包月实例。如果您试用的ECS实例为试用实例,请在试用中心确认您试用的实例类型,并参考以下规则清理:

  • 按量付费实例
  • 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。
  • 如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
  • 包年包月实例
  • 包年包月实例到期会自动释放,释放实例的同时释放数据。
  • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

后续

在试用有效期期间,您还可根据希望测试的其它业务场景继续使用PolarDB MySQL版Serverless集群。


相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
4天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
14 0
|
2天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
20 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
4天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
16 0
|
5天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
16 0
|
13天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
10月前
|
运维 Cloud Native 关系型数据库
活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
7月29日“阿里云 Serverless 技术实战与创新”成都站圆满落幕。可免费下载成都站|阿里云 Serverless 沙龙演讲 PPT。
|
9月前
|
弹性计算 人工智能 运维
阿里云宣布 Serverless 应用引擎SAE2.0 将公测上线
7月31日,阿里云智能云原生应用平台负责人丁宇宣布,Serverless 应用引擎 SAE2.0 将于8月7日公测上线,开源版将于9月30日发布。本次升级围绕极简体验、标准开放、极致弹性三大优势展开,应用冷启动全面提效,支持缩容到 0,应用成本下降 40% 以上。
阿里云宣布 Serverless 应用引擎SAE2.0 将公测上线
|
9月前
|
人工智能 弹性计算 运维
阿里云宣布 Serverless 应用引擎 SAE2.0 将公测上线,多款产品全新升级
阿里云宣布 Serverless 应用引擎 SAE2.0 将公测上线,多款产品全新升级
66100 53
|
9月前
|
人工智能 弹性计算 运维
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
阿里云容器服务 Serverless 版(ACK Serverless)全新升级
1520 10
|
10月前
|
运维 Cloud Native 关系型数据库
活动回顾|阿里云 Serverless 技术实战与创新成都站回放 & PPT 下载
活动回顾|阿里云 Serverless 技术实战与创新成都站回放 & PPT 下载

热门文章

最新文章

相关产品

  • 函数计算