自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享既学习

一名在路上的 DBA

  • 博客(139)
  • 资源 (10)
  • 收藏
  • 关注

原创 MySQL 压测与结果分析

Sysbench 是一个开源的多线程基准测试工具,也是目前使用最多的 MySQL 压力测试工具。

2024-03-15 15:50:19 960

原创 产品设计 - 尼尔森交互设计原则

最近学习了《尼尔森交互设计原则》发现经常使用的 APP 甚至是游戏,也都随处可见这套设计理论的影子。与交互设计七大定律相同,在产品设计的过程中,设计者有意识地去遵守这些经过科学和实践验证的原则,可以有效地改善产品的用户体验。PS:本文为笔记记录。产品经理方法论状态可见原则要求产品应该让用户时刻清楚当前发生的事情,即让用户对产品过去、现在、未来的状态有所了解。一般的方法是在合适的时间给用户适当的反馈,防止用户在使用时出现迷茫和错误。环境贴切原则要求产品应该使用用户熟悉的语言、文字、语句或者用户熟悉的概念。

2024-03-11 16:23:51 899

原创 MySQL gh-ost DDL 变更工具

MySQL 的锁可以分为四类:MDL 锁、表锁、行锁、GAP 锁,其中除了 MDL 锁是在 Server 层加的之外,其它三种都是在 InnoDB 层加的。下面主要介绍一下:MDL 元数据锁,主要作用就是维护 DDL 过程中数据的安全性 & 正确性。当对一个表进行 DML 时,需要加 MDL 读锁,当需要对一张表结构进行变更时,需要加 MDL 写锁。读锁之间不互斥,即可以多个线程对一张表进行并发增删改。读写锁与写锁,之间是互斥的,用来保证变更表结构操作的安全性。

2024-03-11 10:09:59 1269 2

原创 产品设计 - 交互设计七大定律

最近看书,有本书介绍了交互设计七大定律,学习后发现经常使用的 APP 或者网站里面原来都是基于这些定律设计的。奈何记性不好,好记性不如烂笔头,将所感所得在此记录。菲茨定律(Fitts’ law)是由心理学家保罗·费茨(Paul M. Fitts)于 1954 年提出的一个描述人类操作屏幕过程中运动特征、运动时间、运动范围和运动准确性的数学模型。它预测了从任意一点到目标中心位置所需时间的数学模型,在人机交互(HCI)和设计领域的影响尤为广泛和深远。

2024-03-07 14:37:12 867 1

原创 MySQL 空间碎片详解

最近遇到研发提问,为何使用 Delete 删除一张 30G 大表中 50% 的记录,为何空间使用率没有降下来,反而还更大了呢?使用率更大的原因是 Binlog 未来及触发上传归档,至于空间为何没下降,导致该现象原因就是空间碎片。

2024-03-06 17:34:48 1097

原创 MySQL 排错 - blocked because of many connection errors

通过上方代码,模拟了用户登陆错误,执行 SQL 错误,均未触发该异常,随后在官方文档中 host_cache Table 介绍中,提到了一个 SUM_CONNECT_ERRORS 字段。上面介绍的是临时解决方法,实际遇到此类异常时,建议先查 host_cache 表,找到发起 MySQL 协议握手失败的程序,定位问题的根源,才能彻底解决问题。从文档描述中,了解到这里的错误指的是协议握手错误。首先,需要介绍一下 host_cache 表,它记录了 MySQL 服务器缓存的连接信息,常用于排查连接错误的问题。

2024-03-05 16:12:14 1151

原创 MySQL 使用 pt-archiver 删除数据

在线核心业务都会有日志表,随着业务持续运行,日志表每天都在增大,最后超过阈值触发空间使用率告警。DBA 处理空间告警时,会先导出一份表大小信息,然后发给研发确认,哪些表是可以清理些数据的,让研发先清理。如果没有清理空间就需要提审批扩容。如果有数据可以清理,又分为 删库、清空表、删除表中部分数据 三种情况。前两种可以直接使用 MySQL 命令处理,第三种通常需要研发写一个任务批量删除,

2024-02-29 16:45:55 1351

原创 MySQL 用户账号迁移

有一个典型的使用场景,就是 RDS 下云大多数都是通过 DTS 进行数据传输的,用户是不会同步到自建数据库的。需要运维人员在自建数据库重新创建用户,如果用户数量很多的话,那么手动创建并不现实。那么就是 pt-show-grants 发挥作用的时候了。

2024-02-29 13:53:04 525

原创 MySQL 如何从 Binlog 找出变更记录并回滚

最近有研发同学问我:有一个问题,想查一个 ID 为 xxxx 的 sku 什么时候被更新了吗?更新前的数据是什么?一般这么讲,可能是由于手动执行或者是代码 Bug 导致出现数据丢失或者数据误更新,需要确认订正,一般需要通过分析 Binlog 来解决,本篇文章将通过该案例介绍此类问题的处理思路。本篇文章介绍了如何从 Binlog 中定位记录,需要有一点 Python 基础,但注册 Binlog 思路可应用多个场景,例如使用它恢复增量日志等。

2024-02-28 15:46:34 855

原创 MongoDB 权限管理

上一篇《MongoDB 单机安装部署》文章中,为 MongoDB 配置了授权功能,当时只介绍了创建一个高权限账户,没有详细介绍 MongoDB 的权限相关的内容,本篇文章将详细 MongoDB 的权限控制。

2024-02-20 16:20:16 1273

原创 8.2 新特性 - 透明的读写分离

MySQL 8.0 官方推出过一个高可用方案 ReplicaSet 主要由 Router、MySQL Shell、MySQL Server 三个组件组成。MySQL Shell 负责管理 ReplicaSet 包括部署、切换、节点加入等,都可以通过内置 AdminAPI 自动化完成。MySQL Router 是一款轻量级中间件,可在应用程序和 ReplicaSet 之间提供透明路由和读写分离功能。8.0 时期的 Router 读写需要配置两个端口,应用如果想要使用读写分离的特性,需要额外适配。

2024-02-19 17:38:13 908

原创 8.0 新特性 - Caching SHA-2 Pluggable Authentication

升级到 MySQL 8.0 后,可能会遇到如下报错,常发生在连接 MySQL 或配置复制关系的时候。网络上通常建议的解决方案是将 default_authentication_plugin 修改为 mysql_native_password 来解决。虽然可以规避报错,但是在 MySQL 8.1 版本 mysql_native_password 旧插件将被废弃,到时还是要直面 caching_sha2_password 插件。本篇文章将详细解读新的认证插件。

2024-02-18 15:17:35 1000

原创 MySQL 函数导致索引失效应对策略

MySQL 中,当 SQL 索引字段使用了函数的话,会出现隐式转换的问题,导致索引失效,从而导致 SQL 执行效率变慢。本篇文章介绍 MySQL 不同版本此类问题的应对策略。

2024-02-04 14:21:51 688

原创 MongoDB 索引管理

索引是数据库中离不开的话题,其作用是提高数据的获取性能。与关系型数据库一样,MongoDB 同样可以利用索引提高查询效率。如果没有索引 MongoDB 的查询需要扫描集合中的每一条记录,然后挑选出与查询条件匹配的文档记录。也就是常说的全表扫描,一个非常耗时的操作。MongoDB 默认索引数据结构也是 B+Tree 与关系型数据库的索引相似。本篇文章将介绍 MongoDB 中的索引与维护。

2024-01-10 17:40:18 1170

原创 MySQL 中的状态变量

本篇文章介绍一些 MySQL 中常用的监控指标,常见的监控工具都是采集 MySQL 中的状态变量(status variables)理解这些状态变量,可以更好的帮助我们理解 MySQL 监控的含义及配置有效完备的监控,从而游刃有余的定位数据库的性能问题。

2024-01-04 15:41:20 968

原创 MySQL 数据页损坏处理思路

研发自己搭建了一套 MySQL 没有设置双一参数,机房异常断电,导致数据页出现损坏,本篇文章介绍处理思路。

2023-12-28 17:00:38 1166

原创 MongoDB ReplicaSet 部署

本篇文章介绍 MongoDB ReplicaSet 如何搭建,及常用的维护方法。

2023-12-25 15:36:25 1094

原创 MongoDB 单机安装部署

本篇文章介绍 MongoDB 二进制的安装步骤。

2023-12-20 14:35:58 1110

原创 Python 调用阿里云 OpenAPI 巡检到期云资源

说到云资源续费,公认不移,是一件几乎不可能出错的事情,根据 “墨菲定律” 如果事情有变坏的可能,不管概率多小,总会发生。

2023-12-08 14:19:32 1225 1

原创 8.0 新特性 - Generated Invisible Primary Key

Generated Invisible Primary Keys 简称 GIPK,是 2022 年 7 月 16 日 MySQL 发布 8.0.30 版本中的新特性,仅适用于 Innodb 引擎。

2023-11-30 15:33:13 1507 1

原创 Redis 命令行 redis-cli 介绍

redis-cli 是 Redis 自带的命令行工具,是运维和开发人员常用的工具,本篇文章将介绍它的使用技巧和一些有趣的功能。

2023-11-23 16:30:48 419

原创 MySQL 社区开源备份工具 Xtrabackup 详解

数据库备份恢复是 DBA 的 “保命” 技能,生产业务不仅要保证有合适的备份策略,也要定期验证备份的有效性和恢复演练流程,因为数据恢复和验证可能会涉及多方合作,演练可以让灾难真正发生时,多方配合有条不紊的将数据恢复,从而尽可能的减少 RTO 让业务快速恢复。Xtrabackup 是 MySQL 社区唯一一款开源物理热备工具,本篇文章将详细介绍 DBA 如何使用它,以及备份恢复的详细步骤。

2023-11-14 13:36:04 3935 2

原创 MySQL 8.0 Clone 备份恢复演练

上一篇文章中,我们介绍了使用 Clone 插件进行备份,相关的恢复流程将在本篇文章介绍。MySQL 8.0 Clone Plugin 详解恢复增量数据的方法,使用的是伪装为 relay log 通过多线程复制加速恢复的方式,之前有写过一个案例。MySQL 通过 MTS 多线程恢复增量日志备份。

2023-11-08 17:46:34 613 3

原创 MySQL 8.0 Clone Plugin 详解

克隆插件(Clone Plugin)是 MySQL 8.0.17 引入的一个重大特性,可以从本地或者远程克隆数据。如果在 8.0.17 之前想要给 MySQL 复制拓扑中添加一个新节点,只支持 Binlog 一种恢复方式,如果新节点所需要的 Binlog 在集群中不存在,就只能先借助备份工具进行全量备份恢复,再配置增量同步。这种方式虽然能达到添加新节点的目的,但总归是需要借助外部工具,相对来说是有一定的使用门槛和工作量。

2023-11-07 15:25:14 1237 4

原创 Grafana 图表 Table 根据 Key 修改背景颜色

需要配置一个备份任务的 Dashboard 展示备份的状态,如果备份状态是 Completed 表示正常(绿色背景),如果是 Error 表示异常(红色背景)基于该需求,在此记录下如何配置。

2023-10-31 16:42:21 1007

原创 使用 systemctl 管理 MySQL 服务

systemd 是 Linux 系统推出的初始化(init)系统,MySQL 使用 RPM 或者 Debian 包安装 MySQL 会默认使用 systemd 来管理 MySQL 服务,不需要额外配置,但是二进制安装还需要运维人员手动配置。

2023-10-30 16:52:26 952 1

原创 8.0 新特性 - innodb_ddl_threads

通过调整该参数,可以提升二级索引的创建速度。创建二级索引时,在排序和构建阶段,使用线程的个数,一定程度上可以加快索引的创建速度,默认为 4 个。

2023-10-30 15:07:09 240

原创 PostgreSQL 命令行工具介绍

psql 是 PostgreSQL 自带的命令行交互客户端工具,类似于 MySQL 的不过相当于 MySQL 的命令行工具 psql 功能更丰富些,例如单击 tab 自动补全。本篇文章介绍 psql 的使用及常用命令。

2023-09-18 11:59:31 1427

原创 PostgreSQL 排查慢 SQL

所谓慢 SQL是指在数据库中执行时间超过指定阈值的语句。慢查询太多,对于业务而言,是有很大风险的,可能随时都会因为某种原因而被触发,并且根据我们的经验,数据库最常出现的问题,都是因为慢查询导致数据库慢了,进而导致整个实例 “雪崩” 从而导致线上故障。本篇文章将介绍 PostgreSQL 慢 SQL 如何定位排查。

2023-09-14 16:48:25 2307

原创 PostgreSQL 逻辑复制搭建

本篇文章介绍 PostgreSQL 的搭建过程,原理以及维护相关内容将在下一篇文章中介绍。

2023-09-12 16:58:17 499

原创 PostgreSQL 流复制搭建与维护

PostgreSQL 流复制(Streaming Replication)是 9.0 提供的一种新的 WAL 传递方法。使用流复制时,每当 Primary 节点 WAL 产生,就会马上传递到 Standby 节点,流复制提供异步和同步两种模式,同步模式可以保障数据 0 丢失。

2023-09-07 10:41:37 698

原创 PostgreSQL 备份恢复:pg_probackup

pg_probackup 是一款功能强大的开源 PostgreSQL 备份工具,和 MySQL 社区 XtraBackup 类似,功能也非常强大,本篇文章将和各位共同探索学习。环境介绍:CentOS Linux release 7.8.2003 (Core)数据库版本:PostgreSQL - 12.2使用可以看到该工具主要分为几块功能,本小节会详细介绍。

2023-09-04 17:44:44 886 1

原创 MySQL 等保评测 - 开源审计插件应用

MySQL 只有企业版有审计插件,开源社区版没有审计插件。企业要通过等保需要开通审计,这里记录使用 MariaDB 开源审计插件,让 MySQL 社区版拥有审计功能。以上就是审计日志的配置和使用说明,值得注意的是,开通审计会增加数据库性能开销,需要关注磁盘空间使用情况。

2023-08-30 16:11:58 982

原创 MySQL 有意思的权限报错

今天遇到了一个报错,觉得挺有意思的,在此记录下。

2023-08-28 11:12:40 216

原创 MySQL 小数类型介绍

对于保证精度的数字,MySQL 也有对应的小数类型,下图是 MySQL 中小数类型概览。浮点:小数点非固定的数,可表示数据范围较广,整数,小数都可表示。定点:小数点固定,可表示整数,小数。int(整数)本质是小数点位于末尾的 32 位定点数而已。-- 建表-- 写入f1f2100100.00单精度:使用 4 个字节存储,有效数字为 8 位,MySQL 中的 float 类型为单精度。双精度:使用 8 个字节存储,有效数字为 16 位,MySQL 中的 double 类型为双精度。

2023-08-25 09:51:55 1122

原创 PotgreSQL 基于时间点恢复

本篇文章介绍 PostgreSQL 基于时间点恢复(point-in-time-recover)需要的条件及恢复过程,属于操作说明。PostgreSQL 想要实现 PITR 需要设置 wal_level 配置参数为 replica 或更高级别,且配置合理的归档机制和归档清理机制,本篇文章只引入恢复流程,一套生产环境备份恢复如何配置,我们将在下一篇文章介绍。

2023-08-08 14:13:55 334

原创 Python 并发编程 Futures

本篇文章介绍了如何使用 Futures 创建线程池和进程池,并提供了两个 case,在实验过程中发现,因为 GIL 的原因 Python 的线程池并不适合 CPU 密集型的应用,此时就需要考虑使用多进程的方式,或者将核心代码使用 C++ 编写通过 Python 调用,从而绕过 GIL。虽然有 GIL 用户依然要考虑线程安全的问题,因为 GIL 只是方便 Python 解释器的编写人员,而不是 Python 程序的编写人员。程序每次执行的结果可能都不相同,结果都不为 0,此时就需要使用线程锁来规避此类问题。

2023-07-27 11:29:25 208

原创 Linux 性能定位常用工具介绍

使用 lscpu 命令可以从 sysfs 和 /proc/cpuinfo 中收集 CPU 体系结构信息,并解析优化为易阅读的格式。该信息包括: CPU 的线程、核心、套接字数量和非一致内存访问(NUMA) 节点的数量,以及 CPU 缓存、共享缓存、系列、型号等信息。lscpu。

2023-07-21 11:32:15 162

原创 Python 使用 pyc 解决明文密钥问题

写代码过程中,可能遇到一些敏感信息不想明文暴露在代码中的情况,本篇文章介绍使用 pyc 解决明文密钥问题。pyc 是 Python 经过 compile 后的文件类型,一段 Python 代码执行前会先将 .py 文件编译成 .pyc 文件它是一种字节码 byte code,然后由 Python 虚拟机执行。相对于 .py 来讲,.pyc 对源代码有一定保护作用,提高了模块加载速度和跨平台性,但代码执行速度未得到提高。

2023-07-06 10:55:56 310

原创 PostgreSQL 锁等待排查

在数据库中,常用 锁 和 MVCC 来保障事务的一致性及提高并发性。锁问题的定位和排查也是数据库运维人员必会的技能,本篇文章介绍 PostgreSQL 如何排查定位锁堵塞问题。

2023-07-03 17:14:03 1464

MySQL 自动化部署脚本

MySQL 自动化部署脚本

2023-10-30

MySQL 使用开源审计插件

也可以直接下载直接用

2023-09-14

自研 Binlog 分析程序

自研 MySQL 分析程序,如何使用请到我们主页找《自研 MySQL Binlog 分析程序介绍》

2022-07-20

基于 Python 实现 MySQL Binlog 分析程序

自研 MySQL 分析程序,如何使用请到我们主页找《自研 MySQL Binlog 分析程序介绍》

2022-07-20

school.sql

MySQL 练习题部署的环境 SQL文件,下载时请查看我的相关文章,放在文章里篇幅太长了,所以就放在CSDN下载了

2020-05-28

MHA-0.56 高可用技术

MHA高可用技术 mha4mysql-manager-0.56-0.el6.noarch.rpm 和 mha4mysql-node-0.56-0.el6.noarch.rpm 下载比较慢,需要的自提,安装方法可以关注我的博文

2020-05-14

course.csv

网易云课堂的课程数据(课程名+作者名+价格+参与课程人数)共2000条,可以用来做数据分析的练习,探索课程的价格,受欢迎的程度等

2020-02-16

数据屏幕前端页面.zip

请先看完博客再决定下载:https://blog.csdn.net/qq_42768234/article/details/104131630

2020-02-12

数据集等.rar

https://blog.csdn.net/qq_42768234/article/details/101748946 请看完这篇博客后再决定是否下载

2019-09-30

飞机大战.rar

Python使用Pygame实现的雷霆战机, 有难度递增, 生命值系统, 弹药补给系统, 登录方式等功能, Python面向对象, 精灵碰撞等技术实现

2019-08-07

飞机大战全套精美UI

飞机大战的全套UI,没有商业作用,仅供交流.

2018-12-29

pygame写一个钟表,实时显示时间,打包exe

用pygame写的时钟,显示实时功能,用三角函数实现,已经打包成exe,欢迎交流分享

2018-12-29

Pygame飞机大战Boss版本(资源包)

pygame开发出来的飞机大战,压缩包直接可以在Dos下运行,欢迎交流

2018-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除