摘要: “Too many open files”是一个比较常见的错误,不仅仅是在 MySQL 中。只要是在 Linux 中启动的进程,都有可能遇到这个错误。 究其原因,是进程打开的文件描述符数超过了自身的限制。 这个限制,是进程级别的,在 MySQL 中,与 open_files_limit 的设置有关。 阅读全文
posted @ 2021-07-19 09:13 iVictor 阅读(790) 评论(0) 推荐(3) 编辑
摘要: 对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MyS 阅读全文
posted @ 2018-10-18 08:54 iVictor 阅读(31461) 评论(11) 推荐(18) 编辑
摘要: MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一致性。 它由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。其中,MH 阅读全文
posted @ 2017-05-21 21:37 iVictor 阅读(12292) 评论(6) 推荐(3) 编辑
摘要: 对于MySQL的备份,可分为以下两种: 1. 冷备 2. 热备 其中,冷备,顾名思义,就是将数据库关掉,利用操作系统命令拷贝数据库相关文件。而热备指的是在线热备,即在不关闭数据库的情况下,对数据库进行备份。实际生产中基本上都是后者。 关于热备,也可分为两种方式: 1. 逻辑备份 2. 物理备份 对于 阅读全文
posted @ 2016-05-19 11:08 iVictor 阅读(17503) 评论(5) 推荐(4) 编辑
摘要: 搭建从库,本质上需要的只是一个一致性备份集及这个备份集对应的位置点信息。之前介绍的几个备份工具( MySQL中如何选择合适的备份策略和备份工具 )均可满足。 这里,我们重点看看如何基于 XtraBackup 搭建从库。 整个过程其实比较简单,无非是备份还原。唯一需要注意的是建立复制时位置点的选择,包 阅读全文
posted @ 2022-06-06 14:35 iVictor 阅读(620) 评论(0) 推荐(1) 编辑
摘要: mysqldump 和 mydumper 是我们常用的两个逻辑备份工具。 无论是 mysqldump 还是 mydumper 都是将备份数据通过 INSERT 的方式写入到备份文件中。 恢复时,myloader( mydumper 中的恢复工具 ) 是多线程导入,且一个 INSERT 语句中包含多条 阅读全文
posted @ 2022-05-30 13:42 iVictor 阅读(1035) 评论(1) 推荐(3) 编辑
摘要: 数据库升级,是一项让人喜忧参半的工程。喜的是,通过升级,可以享受新版本带来的新特性及性能提升。忧的是,新版本可能与老的版本不兼容,不兼容主要体现在以下三方面: 语法不兼容。 语义不兼容。同一个SQL,在新老版本执行结果不一致。 新版本的查询性能更差。 所以,在对线上数据库进行升级之前,一般都会在测试 阅读全文
posted @ 2022-05-16 10:09 iVictor 阅读(1821) 评论(3) 推荐(3) 编辑
摘要: JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 相对字符类型,原生的 JSON 类型具有以下优势: 在插入时能自动校验文档是否满足 JSON 格式的要求。 优化了存储格式。无需读取整个文档就能快 阅读全文
posted @ 2022-05-05 09:12 iVictor 阅读(2322) 评论(1) 推荐(3) 编辑
摘要: 1. LOAD DATA INFILE 为什么比 INSERT 快? 2. sysbench 压测 MySQL 的四个标准步骤。 3. 怎么让 sysbench 支持 LOAD DATA LOCAL INFILE 命令,让导数速度提升 30%? 阅读全文
posted @ 2022-04-07 09:50 iVictor 阅读(264) 评论(0) 推荐(1) 编辑
摘要: Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件。它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中。 Zabbix Agent:Zabbix 客户端,部署在被监控设备上,负责采集监控数据,采集后的数据发送给 Zabb 阅读全文
posted @ 2022-03-23 14:45 iVictor 阅读(4370) 评论(0) 推荐(0) 编辑
摘要: 归档,在 MySQL 中,是一个相对高频的操作。 它通常涉及以下两个动作: 迁移。将数据从业务实例迁移到归档实例。 删除。从业务实例中删除已迁移的数据。 在处理类似需求时,都是开发童鞋提单给 DBA,由 DBA 来处理。 于是,很多开发童鞋就好奇,DBA 都是怎么执行归档操作的?归档条件没有索引会锁 阅读全文
posted @ 2022-03-14 07:02 iVictor 阅读(1302) 评论(1) 推荐(1) 编辑
摘要: DDL 被阻塞了,如何找到阻塞它的 SQL? 阅读全文
posted @ 2022-01-11 13:46 iVictor 阅读(648) 评论(2) 推荐(2) 编辑
摘要: 随着业务的不断发展,数据库中的数据会越来越多,相应地,单表的数据量也会越到越大,大到一个临界值,单表的查询性能就会下降。 这个临界值,并不能一概而论,它与硬件能力、具体业务有关。 虽然在很多 MySQL 运维规范里,都建议单表不超过 500w、1000w。 但实际上,我在生产环境,也见过大小超过 2 阅读全文
posted @ 2021-12-21 07:46 iVictor 阅读(1533) 评论(1) 推荐(0) 编辑
摘要: MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup。 前者常用于MySQL企业版,后者常用于MySQL社区版、Percona Server for MySQL 和 MariaDB。 所以,如果我们使用的是后三者,在实例较大的情况下,一般都会 阅读全文
posted @ 2021-11-14 21:59 iVictor 阅读(456) 评论(1) 推荐(0) 编辑
摘要: 删除大量数据,无论是在哪种数据库中,都是一个普遍性的需求。除了正常的业务需求,我们需要通过这种方式来为数据库“瘦身”。 为什么要“瘦身”呢? 表的数据量到达一定量级后,数据量越大,表的查询性能会越差。 毕竟数据量越大,B+树的层级会越高,需要的IO也会越多。 表的数据有冷热之分,将很多无用或很少用到 阅读全文
posted @ 2021-10-25 10:56 iVictor 阅读(5232) 评论(1) 推荐(1) 编辑
摘要: ​数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线。鉴于此,对于备份,我们通常会做以下要求: 多地部署 对于核心数据库,我们通常有两地三中心的部署要求。对于备份来说,也是如此。 一个备份应该有多个副本,每个副本存储在不同区域。 多介质部署 一个备份的多个副本应存储在不同介质上,如磁盘和 阅读全文
posted @ 2021-10-16 11:31 iVictor 阅读(784) 评论(5) 推荐(0) 编辑
摘要: 在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如: 1. 对于固定长度的字符串,为什么推荐使用 CHAR 来存储? 2. VARCHAR 可设置的最大长度是多少? 3. 给定一个字符串,怎么知道它的空间使用情况? 4. 创建索引时,提示“Index column siz 阅读全文
posted @ 2021-08-14 22:59 iVictor 阅读(3165) 评论(1) 推荐(1) 编辑
摘要: 如何基于Binlog得到事务的大小、事务的持续时间、热点表? 阅读全文
posted @ 2021-08-08 12:00 iVictor 阅读(441) 评论(0) 推荐(0) 编辑
摘要: “Too many open files”是一个比较常见的错误,不仅仅是在 MySQL 中。只要是在 Linux 中启动的进程,都有可能遇到这个错误。 究其原因,是进程打开的文件描述符数超过了自身的限制。 这个限制,是进程级别的,在 MySQL 中,与 open_files_limit 的设置有关。 阅读全文
posted @ 2021-07-19 09:13 iVictor 阅读(790) 评论(0) 推荐(3) 编辑