上一页 1 2 3 4 5 6 ··· 42 下一页
摘要: 找到MySQL里到底谁消耗了更多内存: select event_name,SUM_NUMBER_OF_BYTES_ALLOC from performance_schema.memory_summary_global_by_event_name order by SUM_NUMBER_OF_BYT 阅读全文
posted @ 2025-06-21 02:45 屠魔的少年 阅读(17) 评论(0) 推荐(0)
摘要: A:192.168.13.12 (原主库) B:192.168.13.13 (空实例) binlog server ,需要恢复的binlog在上面 C:192.168.13.14 (从库用于恢复全备) A 是坏的库 现在用 B 和C 去恢复 用B去伪装A库 所以A和C的 server-id uuid 阅读全文
posted @ 2025-06-21 02:28 屠魔的少年 阅读(8) 评论(0) 推荐(0)
摘要: 背景 近日,客户反馈某生产业务系统凌晨的物理备份都失败了(一主二从的集群,仅在两个从库上做 Xtrabackup 全备,主库不参与备份),需排查备份失败的原因。 案例分析 由于客户使用的是我司爱可生的 DMP 数据库管理平台,当备份失败时,在备份目录中会写入一个 FAIL 的标志文件,然后回滚掉残留 阅读全文
posted @ 2025-06-21 02:16 屠魔的少年 阅读(30) 评论(0) 推荐(0)
摘要: 基于 XtraBackup 搭建从库。 整个过程其实比较简单,无非是备份还原。唯一需要注意的是建立复制时位置点的选择,包括: 在基于位置点的复制中,CHANGE MASTER TO 语句中 MASTER_LOG_FILE 和 MASTER_LOG_POS 的选择。 在 GTID 复制中,在执行 CH 阅读全文
posted @ 2025-06-21 02:12 屠魔的少年 阅读(26) 评论(0) 推荐(0)
摘要: #!/bin/bash # 10 23 * * * /bin/bash /data/script/backup_mysqldump.sh BDATE=`date +%Y%m%d%H%M%S` BPATH=/data/backup LOGFILE=${BPATH}/log_${BDATE}.log m 阅读全文
posted @ 2025-06-21 02:08 屠魔的少年 阅读(7) 评论(0) 推荐(0)
摘要: RDS在主库上执行备份会报错,报错如下: ** (mydumper:56288): CRITICAL **: Couldn't acquire global lock, snapshots will not be consistent: Access denied; you need (at lea 阅读全文
posted @ 2025-06-21 01:56 屠魔的少年 阅读(9) 评论(0) 推荐(0)
摘要: ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 31, event_type: 35 [root@testdb mysql]# mysqlbinlog --base 阅读全文
posted @ 2025-06-21 01:56 屠魔的少年 阅读(42) 评论(0) 推荐(0)
摘要: 安装 MySQL 初始化时,报错如下: [root@hcdb1 ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/m 阅读全文
posted @ 2025-06-21 01:52 屠魔的少年 阅读(33) 评论(0) 推荐(0)
摘要: mkdir /data/mysql_data/{dbdata,run_mysqld,cnf} -p cd /data/mysql_data cat > docker-compose.yml << EOF version: '2.1' services: mysql: environment: TZ: 阅读全文
posted @ 2025-06-21 01:47 屠魔的少年 阅读(24) 评论(0) 推荐(0)
摘要: # MySQL 8.0编译环境需求 cmake > 3.5 gcc > 5.3,官方使用gcc8编译 C API包括:c++,c99 SSL boot c++ Ncurses Perl & bison 2.1 # 下载包含Boost C++ 库的MySQL源码包 https://downloads. 阅读全文
posted @ 2025-06-21 01:45 屠魔的少年 阅读(27) 评论(0) 推荐(0)
摘要: # 手动调整 SCL YUM 源 # CentOS 7 最晚在2024年6月30后停止更新维护,所以在 CentOS 7 直接通过 yum 直接安装 SCL 源是会失败的,所以需要手动调整 SCL YUM 源。 wget -O /etc/yum.repos.d/CentOS-Base.repo ht 阅读全文
posted @ 2025-06-21 01:43 屠魔的少年 阅读(52) 评论(0) 推荐(0)
摘要: 安装二进制包 mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz 初始化时报错: [root@s2 yum.repos.d]# /soft/mysql/bin/mysqld --defaults-file=/data/mysql/my8039.cnf --initi 阅读全文
posted @ 2025-06-21 01:43 屠魔的少年 阅读(285) 评论(0) 推荐(0)
摘要: /usr/lib64/libjemalloc.so 是一个动态链接库文件,它包含了 jemalloc 内存分配器的实现。jemalloc 是一个通用的内存分配器,旨在为多线程应用程序提供优秀的性能。它通常被用在需要高效内存管理的应用程序中,如数据库服务器、Web 服务器等。 安装库文件 这个库文件一 阅读全文
posted @ 2025-06-21 01:42 屠魔的少年 阅读(104) 评论(0) 推荐(0)
摘要: 卸载旧版本rpm包 rpm -qa|grep mysql -i rpm -qa|grep mariadb -i rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 安装依赖包 yum install -y libaio perl perl-devel 解 阅读全文
posted @ 2025-06-21 01:35 屠魔的少年 阅读(6) 评论(0) 推荐(0)
摘要: 一、降低 swap 使用权重 Linux内核3.5-rc1及更高版本建议swappiness设置为1; Linux内核低于3.5-rc1版本建议swappiness设置为0 #检查服务器内核版本 shell> uname -r #内核版本为3.5-rc1或更高版本 shell> vim /etc/s 阅读全文
posted @ 2025-06-21 01:33 屠魔的少年 阅读(11) 评论(0) 推荐(0)
摘要: MGR作为MySQL原生的高可用方案,它的基于共识协议的同步和决策机制,看起来也更为先进。吸引了一票用户积极尝试,希望通过MGR架构解决RPO=0的高可用切换。在实际使用中经常会遇到因为网络抖动的问题造成集群故障,最近我们某客户就遇到了这类问题,导致数据不一致。 问题现象 这是在生产环境中一组MGR 阅读全文
posted @ 2025-06-21 01:30 屠魔的少年 阅读(8) 评论(0) 推荐(0)
摘要: 我们知道,InnoDB Cluster 是 Oralce 官方发布的用来管理 MySQL 组复制的一套工具,有了 InnoDB Cluster,MySQL 原生组复制的部署、运维、开发等将会变得非常简单。 InnoDB Cluster 测试环境如下: 节点 A:192.168.2.210:3601( 阅读全文
posted @ 2025-06-21 01:05 屠魔的少年 阅读(23) 评论(0) 推荐(0)
摘要: 在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce 阅读全文
posted @ 2025-06-21 00:45 屠魔的少年 阅读(10) 评论(0) 推荐(0)
摘要: 0. 背景 在业务低峰通过pt-osc在线做DDL期间出现死锁,导致业务的SQL被回滚了,对应用不友好。 本案例死锁发生的场景:pt-osc拷贝最后一个chunk-size并且期间其它事务有对原表做insert操作,才会出现本案例的死锁。 1. 先简单介绍一下pt-osc的工作原理 创建一个跟原表表 阅读全文
posted @ 2025-06-21 00:42 屠魔的少年 阅读(37) 评论(0) 推荐(0)
摘要: 本文基于MySQL 8.0测试常用的DDL工具,通过多个维度进行对比分析。基本结论是MySQL原生Online DDL在性能、存储开销和易用性等方面有较大优势,目前在加列等场景可取代pt-osc/gh-ost,在创建索引等场景还需要做进一步优化。 DDL工具实现分析 在MySQL使用过程中,根据业务 阅读全文
posted @ 2025-06-21 00:38 屠魔的少年 阅读(69) 评论(0) 推荐(0)
摘要: 随着 MySQL 版本的不断更新,对 DDL 操作的支持也在不断的完善和更新:比如从 MySQL 5.6 引入 Online DDL ,在 MySQL 5.7 对 Online DDL 进一步完善,到现在的 8.0 版本,则对 DDL 的实现重新进行了设计,比如 DDL 操作支持原子特性,在 MyS 阅读全文
posted @ 2025-06-21 00:14 屠魔的少年 阅读(8) 评论(0) 推荐(0)
摘要: 还是之前的测试Demo 会话1开启了事务并执行了三个操作,但未提交,此时,会话2执行了alter table操作,被阻塞。 session1> begin; Query OK, 0 rows affected (0.00 sec) session1> delete from slowtech.t1 阅读全文
posted @ 2025-06-21 00:10 屠魔的少年 阅读(3) 评论(0) 推荐(0)
摘要: 背景: 作为一个DBA,大表的DDL的变更大部分都是使用Percona的pt-online-schema-change,本文说明下另一种工具gh-ost的使用:不依赖于触发器,是因为他是通过模拟从库,在row binlog中获取增量变更,再异步应用到ghost表的。在使用gh-ost之前,可以先看G 阅读全文
posted @ 2025-06-20 23:27 屠魔的少年 阅读(79) 评论(0) 推荐(0)
摘要: 背景 Online DDL 一直都是 DBA 运维时比较头疼的事,一般都会选择在业务低峰期谨慎的操作,比较常用的几个工具比如 percona pt-online-schema-change , Facebook OSC, 本质上它们都是基于触发器的,简单来讲就是通过数据库的触发器把作用在源表的操作在 阅读全文
posted @ 2025-06-20 22:49 屠魔的少年 阅读(21) 评论(0) 推荐(0)
摘要: 发展历程 MySQL Online DDL 功能从 5.6 版本开始正式引入,发展到现在的 8.0 版本,经历了多次的调整和完善。本文主要就 Online DDL 的发展过程,以及各版本的区别进行总结。其实早在 MySQL 5.5 版本中就加入了 INPLACE DDL 方式,但是因为实现的问题,依 阅读全文
posted @ 2025-06-20 22:47 屠魔的少年 阅读(8) 评论(0) 推荐(0)
摘要: 随着业务系统的快速迭代,对应的记录相关数据的表的结构也在快速的变化。但是,对于数据库来说,很多的表结构变更都是要花费很大代价的,如增删字段、更改字段数据类型等操作。更需要注意的是,对于原生的 MySQL ONLINE DDL (MySQL 5.6开始支持)功能虽然已经很多操作不再阻塞 DML 操作, 阅读全文
posted @ 2025-06-20 22:31 屠魔的少年 阅读(40) 评论(0) 推荐(0)
摘要: 问题 有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件...... 此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间。如果放置不管,也不知道 update 会持续多久。 那我们能知道 update 的进度么? 实验 我们先创建一个测 阅读全文
posted @ 2025-06-20 22:28 屠魔的少年 阅读(17) 评论(0) 推荐(0)
摘要: 问题 我们执行 alter table 语句后,经常面临“跑又跑不完,杀又不敢杀”的窘境。 如果能评估 alter table 的进度就幸福多了。 实验 MySQL官方已经给出了文档:https://dev.mysql.com/doc/refman/5.7/en/monitor-alter-tabl 阅读全文
posted @ 2025-06-20 22:24 屠魔的少年 阅读(18) 评论(0) 推荐(0)
摘要: 一、前言 作为 MySQL DBA,相信我们大家都会对大表变更(大于10G 以上的)比较头疼,尤其是某些 DDL 会锁表,影响业务可持续性。目前通用的方案使用 Percona 公司开源的 pt-osc 工具解决导致锁表的操作,还有一款 github 基于 go 语言开发的 gh-ost。本文主要介绍 阅读全文
posted @ 2025-06-20 21:59 屠魔的少年 阅读(40) 评论(0) 推荐(0)
摘要: 原子 DDL 听到原子这个关键字大家是不是联想到事务的 ACID 的原子性? 两者相似,事务/语句执行要么全部成功,要么全部失败。MySQL 8.0 之前的版本 DDL 是非原子性的,对于多条 sql 构成的ddl语句比如 rename table t1 to t1_bak,t2 to t2_bak 阅读全文
posted @ 2025-06-20 21:45 屠魔的少年 阅读(19) 评论(0) 推荐(0)
摘要: 一、前言 MySQL 8.0.29之前,在线 DDL 操作中即时添加列只能添加在表的最后一列,对于在某个具体列后面快速添加列很不方便,MySQL 8.0.29 扩展了对 ALTER TABLE … ALGORITHM=INSTANT 的支持:用户可以在表的任何位置即时添加列、即时删除列、添加列时评估 阅读全文
posted @ 2025-06-20 21:30 屠魔的少年 阅读(42) 评论(0) 推荐(0)
摘要: 前言 随着业务的发展,用户对系统需求变得越来越多,这就要求系统能够快速更新迭代以满足业务需求,通常系统版本发布时,都要先执行数据库的DDL变更,包括创建表、添加字段、添加索引、修改字段属性等。 在数据量大不大的情况下,执行DDL都很快,对业务基本没啥影响,但是数据量大的情况,而且我们业务做了读写分离 阅读全文
posted @ 2025-06-20 21:11 屠魔的少年 阅读(34) 评论(0) 推荐(0)
摘要: 本期我们针对这几个问题来进行讨论: 传统情况 我们先回顾一下,在没有 “立刻加列” 功能时,加列操作是怎么完成的。我们也借此来熟悉一下本期的图例: 当进行 加列操作 时,所有的数据行 都必须要 增加一段数据(图中的 列 4 数据) 如上一期图解所讲,当改变数据行的长度,就需要 重建表空间(图中灰蓝的 阅读全文
posted @ 2025-06-20 20:58 屠魔的少年 阅读(27) 评论(0) 推荐(0)
摘要: 讨论的背景是MySQL 8.0+InnoDB。 DDL(Data Definition Language) 众所周知, DDL定义了数据在数据库中的结构、关系以及权限等。比如CREATE,ALTER,DROP等等。 本期我们讨论MySQL 8.0(使用InnoDB存储引擎)在修改表结构时, 究竟会发 阅读全文
posted @ 2025-06-20 20:27 屠魔的少年 阅读(16) 评论(0) 推荐(0)
摘要: 背景 之前碰到客户咨询定位 DDL 阻塞的相关问题,整理了一下方法,如何解决 DDL 被阻塞的问题。 下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是不是被阻塞了? 当 DDL 被阻塞时,怎么找出阻塞它的会话? 1. 如何判断一个 DDL 是不是被阻塞了? 测试过程如下: mysql> 阅读全文
posted @ 2025-06-20 20:04 屠魔的少年 阅读(10) 评论(0) 推荐(0)
摘要: DDL 操作一直是我们的 MYSQL 的一个软肋,从MYSQL 5.6 其实相关的alter 语句已经有了改变,也就是题目的的inplace 和 copy 。其实很多人都知道,但用的比较少,因为有pt-OSC 工具呀,还有另外一个工具gh-ost (之前是写过的,如有需要可以自己往前翻翻) 维护现在 阅读全文
posted @ 2025-06-20 19:59 屠魔的少年 阅读(62) 评论(0) 推荐(0)
摘要: 问题 mysql> show create table users; + + + | Table | Create Table | + + + | users | CREATE TABLE `users` ( `user` varchar(11) DEFAULT NULL, `password` v 阅读全文
posted @ 2025-06-20 19:50 屠魔的少年 阅读(7) 评论(0) 推荐(0)
摘要: 前言 如果项目要支持7*24小时服务,对MySQL表添加列或者添加索引等,无法在停机的情况下做了,需要Online DDL的支持,也就是在不影响服务的情况下,在线修改表的定义。 从MySQL 5.6开始,就有官方的Online DDL支持。 目前,MySQL Online DDL主要有三种方式: P 阅读全文
posted @ 2025-06-20 19:49 屠魔的少年 阅读(55) 评论(0) 推荐(0)
摘要: 前提:双节点开放端口,或关闭防火墙; 本部署流程按裸设备的方式进行,不限制部署方式。 共享磁盘50G,划分4个分区存放不同的文件 /dev/sdb1 raw1 dcr 2.5G /dev/sdb2 raw2 voting 5G /dev/sdb3 raw3 log 7.5G /dev/sdb4 ra 阅读全文
posted @ 2025-06-18 00:48 屠魔的少年 阅读(10) 评论(0) 推荐(0)
摘要: 安装完达梦数据库后,可以执行以下脚本自动调整性能相关的参数: disql SYSDBA/SYSDBA@10.226.79.4:5237 declare v_mem_mb int; v_cpus int; mem_per int:=100; MEMORY_POOL int; BUFFER INT; M 阅读全文
posted @ 2025-06-18 00:47 屠魔的少年 阅读(51) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 42 下一页