摘要:
有时候,需要还原某个特定的数据库,但是在备份的时候却又备份了所有的数据库。这时,就可以通过参数--one-database选项来还原指定的数据库。 mysql -uroot -p[pwd] --one-database [db1] < [/path/backup.sql] 提示:如果在备份的时候,备 阅读全文
随笔分类 - MySQL
【MySQL】MySQL估算redo日志的容量
2022-08-13 12:06 by abce, 373 阅读, 收藏, 编辑
摘要:
在MySQL8.0.30之前 mysql> pager grep sequence PAGER set to 'grep sequence' mysql> show engine innodb statusG select sleep(60); show engine innodb statusG 阅读全文
【MySQL】MySQL8动态调整redo日志的大小
2022-08-12 16:04 by abce, 1247 阅读, 收藏, 编辑
摘要:
MySQL8.0.30引入了一个新特性:动态调整redo日志的大小。 除了InnoDB的buffer pool大小,我们通常会觉得设置合适的redo文件大小对MySQL的性能至关重要。MySQL在5.7中就实现了动态调整buffer pool的大小,但是直到现在8.0.30才实现了动态调整redo文 阅读全文
【MySQL】MySQL批量KILL线程
2022-08-04 09:45 by abce, 591 阅读, 收藏, 编辑
摘要:
1.使用pt-kill工具 pt-kill --user=root --password=123456 -hlocalhost --no-version-check --match-command Query --match-state "Sending data" --victims all -- 阅读全文
Performance Schema: Measure Multi-Threaded Slave Activity
2022-08-03 14:53 by abce, 34 阅读, 收藏, 编辑
摘要:
Performance Schema In many types of database workloads, using a multi-threaded slave from 5.6+ helps improve replication performance. I’ve had a numbe 阅读全文
【MySQL】MySQL 5.6开启并行复制建议开启GTID
2022-08-03 14:53 by abce, 468 阅读, 收藏, 编辑
摘要:
MySQL 5.6开始支持并行复制,只要数据跨不同的数据库即可。开启并行复制,只需要将参数slave_parallel_workers设置成大于1的值。不过,如果在开启并行复制的时候不开启GTID,你可能会遇到很多问题。 1.跳过复制错误当发生错误而停止复制,常用的一个手段是"暂时跳过,日后修复"。 阅读全文
【MySQL】MySQL 5.6多线程复制和GTIDs的补充
2022-08-03 14:53 by abce, 189 阅读, 收藏, 编辑
摘要:
在上一篇文章中,写了为啥推荐MySQL在开启多线程复制的时候要开启GTID。现在来看看如何操作。 1.主从产生gaps你并不希望在开启了多线程复制和GTIDs的从库看到以下报错: [...] Executed_Gtid_Set: 1381aa44-9a60-11e4-b6d8-94dbc999324 阅读全文
【MySQL】MySQL 5.7中过滤复制和部分复制的变化
2022-08-03 11:42 by abce, 262 阅读, 收藏, 编辑
摘要:
在线添加复制过滤是5.7引入的新特性,使用change replication filter语句。在5.7之前,增加、修改复制规则需要重启mysql。 当前复制是没有开启过滤复制的: mysql> show slave statusG *************************** 1. r 阅读全文
MySQL复制和事务不一致
2022-08-02 22:49 by abce, 97 阅读, 收藏, 编辑
摘要:
由于复制配置的原因,执行relaylog中的事务的顺序可能产生不一致。 不一致的类型: 1.应用部分事务 事务中包含支持事务的表和非事务型的表。 2.空隙(gap) 事务gap只会发生在多线程复制。为了避免发生事务gap,要设置slave_preserve_commit_order=1、slave_ 阅读全文
【MySQL】获取MySQL内存使用情况的脚本
2022-08-01 21:05 by abce, 110 阅读, 收藏, 编辑
摘要:
# cat mem.sh #!/bin/sh # you might want to add some user authentication here /usr/local/mysql/bin/mysql -S /tmp/mysql3312.sock -uroot -pxxxxx -e "show 阅读全文
【MySQL】mysqldump使用指南
2022-08-01 14:02 by abce, 423 阅读, 收藏, 编辑
摘要:
1.mysqldump不会备份sys库。但在使用mysqldump在执行--all-databases会清空mysql.proc导致sys无法正常使用;这是一个BUG,并且只存在于MySQL 5.7.x 2解决方案:(1)mysql_upgrade install or upgrade sys sc 阅读全文
【MySQL】如何对MySQL复制性能做基准测试
2022-07-30 16:02 by abce, 204 阅读, 收藏, 编辑
摘要:
有很多工具可以用来测试MySQL的性能。比如: sysbench – https://github.com/akopytov/sysbench BMK-kit – http://dimitrik.free.fr/blog/posts/mysql-perf-bmk-kit.html mysqlslap 阅读全文
【MySQL 8】Generated Invisible Primary Keys(GIPK)
2022-07-28 21:43 by abce, 922 阅读, 收藏, 编辑
摘要:
从MySQL 8.0.30开始,MySQL支持在GIPK模式下运行时生成不可见的主键。在这种模式下运行时,对于任何在没有显式主键的情况下创建的InnoDB表,MySQL服务器会自动将生成的不可见主键 (GIPK) 添加到表中。 GIPK模式由sql_generate_invisible_prim 阅读全文
Percona XtraBackup 8.0.29和INSTANT ADD/DROP Columns
2022-07-26 21:18 by abce, 2643 阅读, 收藏, 编辑
摘要:
Oracle’s MySQL 8.0.29扩展了对ALTER TABLE … ALGORITHM=INSTANT的支持: instant:操作只是修改数据字典中的元数据。在执行阶段会在表上施加一个排他元数据锁。表的数据不受影响,表数据不受影响,使操作瞬间完成。允许并发DML。(在 MySQL 8.0 阅读全文
【MySQL】relaylog损坏后,如果解决"Error Reading Relay Log Event"
2022-07-24 21:39 by abce, 1209 阅读, 收藏, 编辑
摘要:
本文来讲解一下复制由于relay log文件损坏而发生失败时,如何恢复。 MySQL复制将接收到的binarylog信息存储到relaylog文件中。relaylog文件可能会因为各种原因而发生损坏,大多数是硬件故障。如果发生了,复制就会停止工作,且errorlog中会有以下类似信息: 2022-0 阅读全文
【MySQL】MySQL压缩表的一个bug
2022-07-17 11:34 by abce, 169 阅读, 收藏, 编辑
摘要:
版本:MySQL5.7 创建一张测试表: create table abce_comp( id bigint(20) unsigned not null, identification_id int(10) unsigned default null, timestamp datetime not 阅读全文
【MySQL】PMM如何帮忙找出MySQL服务停止的原因
2022-07-17 11:34 by abce, 401 阅读, 收藏, 编辑
摘要:
没有人希望,但数据库服务器可能会在某个时间停止处理连接。从而导致应用程序变慢,甚至停止响应。 在这种情况下,PMM是一个很大的帮助。如果查看监控图表并注意到其中许多开始显示异常行为,你需要做出反应。在卡顿的情况下,你会看到某些活动变为 0;或者,它会增加到很高的数字。 让我们看一下仪表板“MySQL 阅读全文
PostgreSQL和MySQL中的explain和执行优化
2022-07-16 09:41 by abce, 399 阅读, 收藏, 编辑
摘要:
除了传统和JSON之外,PostgreSQL中添加了XML和YAML格式选项。至少在我看来,PostgreSQL输出看起来像MySQL的TREE输出。 以下示例提供了详细信息,例如服务器将用于获取数据的机制、启动成本、总成本、要返回的行数以及使用的键的名称(如果有)。 test=# EXPLAIN 阅读全文
【MySQL】MySQL错误日志中的Multi-Threaded Slave Statistics
2022-07-14 16:31 by abce, 1668 阅读, 收藏, 编辑
摘要:
本文讨论的是打印在mysql错误日志中的多线程复制统计信息。 MySQL 5.6开始支持多线程复制,即Multi-Threaded Slave (MTS)。 开启多线程复制,需要修改参数slave_parallel_workers成大于1的值。开启多线程复制后,在错误日志中可能会看到以下类似的信息: 阅读全文
【MySQL】MySQL复制过滤最佳实践
2022-07-13 22:13 by abce, 430 阅读, 收藏, 编辑
摘要:
MySQL为复制提供了三个级别的过滤设置:binary log级别、数据库级别、表级别。 binary log级别过滤在应用在master端,控制了日志的变更。因为MySQL复制是基于binarylog的,索引binarylog是第一级别过滤,具有最高的优先级。而数据库级别和表级别是应用在slave 阅读全文