一.简单介绍
1.什么是 PolarDB?
PolarDB 是阿里云(Alibaba Cloud)提供的一种关系型数据库服务。它是一种全球性的分布式数据库系统,具有高可用性、弹性扩展和高性能的特点。PolarDB 基于阿里云自主研发的架构,采用了共享存储和分布式共识协议,以实现跨多个节点的数据同步和读写操作。
2.PolarDB 特性有哪些?
PolarDB 的一些特性包括:
- 性能优越: PolarDB 支持自动分库分表和动态水平扩展,可以提供弹性的性能和存储资源,以适应不断增长的业务需求。
- 高可用性: 构建在分布式架构上,PolarDB 具备自动故障切换和数据自动备份恢复的能力,提供高可用性和数据安全性。
- 兼容性: 兼容 MySQL 和 PostgreSQL,用户可以将其现有的 MySQL 或 PostgreSQL 数据库迁移到 PolarDB,而无需修改应用程序代码。
- 全球部署: 支持在多个地域进行部署,以提供更好的全球性能和可用性。
3.免费试用
话不多说,上链接!!!
点击链接后,通过筛选 PolarDB MySQL 我们可以看到两个选项,我们选择 Serverless 类型的产品进行试用,点击立即试用,系统就会进入到 Serverless 资源选择页面,然后就可以进入集群管理控制台愉快的进行 PolarDB 的使用了。
二.准备阶段
1.控制台介绍
登录到云数据库 PolarDB 的控制台,我们可以看到左侧很多功能目录。
- 基本信息: 展示 PolarDB 集群的基本信息,白名单与账号,以及集群配置等。
- 性能监控: 监测 PolarDB 集群的各项指标,如 CPU,CPU 使用率等。
- 配置与管理: PolarDB 建库建表,账号管理等。
- 诊断与优化: 主要是管理日志,以及慢 SQL 查询相关信息。
- 日志与审计: 对数据库上访问记录进行采集、分析和存储。
2.创建账号
在控制台左边的配置与管理栏,我们可以看到账号管理,点击账号管理,可以进入到 PolarDB 账号的管理页面。
点击创建账号,可以设置账号名,设置账号类型,高权限账号只能创建一个,普通账号可以设置多个,大家可以根据自己的需要进行设定,然后设置密码,点击确认后账号就创建成功了。
3.数据库账号
登录 PolarDB 的控制台,在左侧的配置与管理栏,可以看到数据库管理,点击后可以进入到数据库管理页面。
在这个页面,我们可以进行数据库的创建,点击创建数据库,可以进入到创建数据库的页面。
需要设置:
- 数据库名称
- 支持字符集
- 授权账号和备注说明是非必填的,可以不填。
4.进入 SQL 控制台
通过点击配置与管理 ==>> 数据库管理 ==>> SQL 查询
点击 SQL 查询按钮,可以进入到 SQL 操作的控制台,开始进行 SQL 操作。
三.使用数据库
1.连接数据库
通过点击如图所示的 SQL 查询,相当于在连接创建的 kwan 数据库,点击 SQL 查询,就可以看到连接数据库成功,进入到 SQL 操作界面。
2.创建表
在数据库管理页面,我这边创建了一个库是 kwan,在 SQL 操作页面可以看到选择的是 kwan 这个数据库,如果大家看到是 mysql,那么执行 SQL 的时候,需要加上自己创建的数据库名,比如我这里是 kwan。
这里我们首先创建一个名为 test_table_kwan 的测试表。
-- 创建一个名为test_table_kwan的测试表
CREATETABLE kwan.test_table_kwan(
id INTNOTNULLAUTO_INCREMENT,
name VARCHAR(50)NOTNULL,
age INTNOTNULL,
PRIMARYKEY(id)
);
3.插入数据
创建表成功后,我们想表中插入几条数据。
向 test_table_kwan 表中插入 3 条数据。
-- 向test_table_kwan表中插入3条数据
INSERTINTO kwan.test_table_kwan(name, age)VALUES
('John',25),
('Mary',30),
('Bob',35);
4.查询验证
查询表数据,看看刚刚插入的数据是否插入成功。
SELECT*FROM kwan.test_table_kwan;
5.更改数据
查询到数据之后,我们希望修改 id 为 1 的值,将 name 修改为 Johnny,age 修改为 26。
UPDATE kwan.test_table_kwan
SET name ='Johnny', age =26
WHERE id =1;
6.验证查询
使用SELECT * FROM kwan.test_table_kwan;
命令,可以查看到修改后的表数据。
SELECT*FROM kwan.test_table_kwan;
四.性能监测
1.Serverless 配置入口
进入 PolarDB 的控制台,在基本信息页面,可以看到数据库节点选项,这个是配置 PolarDB Serverless 弹性扩缩容的地方。通过点击 Serverless 设置按钮,可以进入 Serverless 设置的页面。
2.节点资源配置
进入设置页面后,可以看到如下配置选项: 我们可以根据自己需要进行合适的设置。
- 单节点资源弹升上限
- 单节点资源弹升下限
- 只读节点个数扩展上限
- 只读节点个数扩展下限
- 是否开启无活动暂停
- 定时执行
3.Serverless 监控指标
在控制台的性能监控栏,我们可以对性能进行监控,主要监控指标如下图所示:
- CPU 数量
- PCU CPU 使用率
- PCU 内存使用率
4.非 Serverless 监控指标
对于非 Serverless 监控指标,也可以进行监测,指标数据如图所示:
- 连接(每秒活跃连接数)
- QPS(每秒请求数)
- TPS(每秒事务数)
- MPS(每秒数据操作数)
- 存储空间
- 每秒 Redo 日志写入量
5.监控与报警
对于一个优秀的数据库,监控与报警是很有必要。PolarDB 在这一块做的非常好,人性化的加入了报警规则的自定义,以及自定义指标进行监控,只关注想要关注的指标,非常的人性化和实用。
- 添加报警规则
- 添加指标监控
- 修改监控频率
报警规则:
监控指标:
五.常见问题
1.提示无权限
问题描述:
在控制台执行 SQL,提示如图所示的没有权限。
CREATETABLE test_table_kwan_01 (
id INTNOTNULLAUTO_INCREMENT,
name VARCHAR(50)NOTNULL,
age INTNOTNULL,
PRIMARYKEY(id)
);
解决方案:
1.可以看到当前选择的库是 mysql 库系统库,我们需要选择我们创建的 kwan 库进入即可
2.查询的时候带上库名
CREATETABLEkwan.test_table_kwan_01 (
idINTNOTNULLAUTO_INCREMENT,
nameVARCHAR(50) NOTNULL,
ageINTNOTNULL,
PRIMARYKEY (id)
);
2.创建存储过程
首先先创建一个表
-- 建表 带注释+创建时间
DROPTABLE`dim_bl_week_info`;
-- 新建表
CREATETABLE`dim_bl_week_info`
(
`id` int(11)NOTNULLAUTO_INCREMENTCOMMENT'自增主键',
`week_start_day` date DEFAULTNULLCOMMENT'周开始',
`week_end_day` date DEFAULTNULLCOMMENT'周结束',
`financial_year_week`int(32)DEFAULTNULLCOMMENT'第n财年周',
`financial_year` int(32)DEFAULTNULLCOMMENT'财年',
PRIMARYKEY(`id`)
)ENGINE=InnoDB
DEFAULTCHARSET= utf8;
存储过程:
-- 使用前先删除存储过程,因为创建存储过程后,存储过程会一直存在于mysql中
DROPPROCEDUREIFEXISTS test_procedure_insert_week;
-- 标记上面的命令执行结束 -- 声明;;为结束标志
DELIMITER;;
-- 创建存储过程
CREATEPROCEDURE test_procedure_insert_week()
BEGIN
DECLARE
i DATE;
DECLARE
next_year DATE;
DECLARE
week_count INT;
DECLARE
yearINT;
DECLARE
last_day DATE;
SET
i ='1970-03-01';
SET
week_count =1;
SET
year=YEAR(i);
WHILE
i <'2999-03-01'
DO
SET
next_year = STR_TO_DATE(CONCAT((year+1),'-03-01'),'%Y-%m-%d');
SET
i =IF(i >= next_year, next_year, i);-- 日期
SET
year=IF(i >= next_year,year+1,year);-- 财年
SET
week_count =IF(i >= next_year,1, week_count);
SET
last_day =IF(DATE_ADD(i,INTERVAL6 DAY)>= next_year, LAST_DAY(i),
DATE_ADD(i,INTERVAL6 DAY));
INSERTINTO`kwan`.`dim_bl_week_info`(week_start_day, week_end_day, financial_year_week, financial_year)
VALUES(i, last_day, week_count,year);
SET
i = DATE_ADD(i,INTERVAL7 DAY);
SET
week_count = week_count +1;
ENDWHILE;
END;;
DELIMITER;;
-- 调用无参的存储过程,当然也可以设置参数,调用时也需要传递参数
CALL test_procedure_insert_week();
直接在 SQL 控制台执行会有问题,DMS 有些存储过程的语法不支持。
解决方案:
可以在可编程对象里面进行创建存储过程,然后在 SQL 控制台调用存储过程。
### 2.清理及后续
目前我们使用的是试用产品,有必要关注试用的到期时间,以及释放方法,避免造成不必要的浪费,在不使用的时候,及时释放 PolarDB 集群资源,释放方式如图所示。