MySQL备份恢复加速技巧与亿级数据复制方法分享
创始人
2024-12-24 14:49:01
0 次浏览
0 评论
如何有效地提高MySQL的备份和恢复速度
作者:河南老宋(志强)链接:https://www.zhihu.com/question/20334428/answer/110981915来源:知乎版权归作者所有。商业转载请联系作者获得许可。
非商业转载请注明出处。
问题描述不是很清楚。
使用mysqldump备份时,通常需要添加--single-transaction参数。
快速备份1要求在备份期间首先使用读锁刷新表,并且如果有任何事务或语句正在运行,则将负责锁定表。
如果你不完成它,你的备份过程将继续等待并阻止其他事务,这也会影响你的业务。
因此,您应该首先确保备份期间没有运行大型事务。
具体的单事务锁参见我的博客:备份mysqldump时添加单事务锁?2mysqldump是单进程,无法并行化,但目前机器上的瓶颈主要出现在IO上。
3.如果使用mysqldump时有足够的空间,压缩时不要备份。
2.加速恢复。
1.关闭binlog。
不写入Binlog可以显着加快数据速度。
2.导入innodb_flush_log_at_trx_com。
mit=03更好配置的建议:1.如果需要使用逻辑备份,可以考虑两个备份工具:mysqldumper和mysqlpump(5.7)。
这两者在备份时也可以对单个表进行备份。
对于多表,只需要恢复物理备份xtrabackup(开源)、MEB(Oracle提供,付费),份原理基于mysqlcrashrecover,备份速度并不比逻辑备份好多少,没有变化。
备份。
不过,恢复速度明显提高。
逻辑备份是SQL语句文件,因此恢复时必须逐条运行每条SQL语句,这使得恢复速度非常慢。
物理备份和恢复速度与直接复制文件相当,显着提高恢复期间的性能。
这两个软件还支持并行化,从而提供更好的结果。
逻辑备份的最大优点是压缩后的备份文件占用空间较小。
最大的缺点是物理备份恢复速度非常慢,而且压缩后的备份文件比逻辑备份占用更多的空间。
。
有了云,作为用户的您就不必考虑这些事情。
ucloud是一个不错的选择http://www.ucloud.cn附:xtrabackup的并行参数ParallellocalbackupsParallelcompressionParallelencryptionParallelapply-log
高效快速实现MySQL上亿表数据复制方法分享mysql上亿表复制
MySQL复制是一种高效、快速的实现亿级表数据共享的方式。MySQL是一种常用的开源关系数据库管理系统,可以存储、管理和搜索大量数据。
由于数据量很大,如何从数亿张MySQL表中复制结果就很重要。
本文将分享一种高效快速的实现方法并提供相关代码。
1.使用MySQL复制功能。
MySQL自带复制功能,通过该功能可以在不同MySQL服务器之间复制数据。
主服务器的变化可以自动复制到从服务器上,实现数据实时和负载均衡。
如果主服务器数据表较大,一次复制时间较长,可以采用流式复制或并行复制来提高其复制效率,从而实现数亿张MySQL表的数据复制。
2.使用mysqldump命令导出数据。
mysqldump命令可用于导出整个MySQL数据库或特定表的数据。
可以将需要导出的数据导出为SQL脚本,然后在目标MySQL数据库上执行SQL脚本文件。
可以导出对服务器的操作和主服务器的数据。
该方法需要导出整个数据表并使用快速批量插入功能(使用opt-op-opt选项)。
3.使用CDC(ChangeDataCapture)工具,它可以捕获数据库更改并解析它们。
在MySQL中,有很多工具可以实现CDC功能,例如OpenReplicator、Maxwell、Debezium等。
它们捕获原始数据库中的所有更改并将更改应用到目标数据库中,从而复制数据库。
其中,OpenReplicator是一款高性能、轻量级的MySQL复制工具,可以在低端服务器上快速复制数亿个数据文件。
以下是如何使用OpenReplicator的示例:1.安装OpenReplicator。
下载OpenReplicator源代码(open-replicator.properties)。
文件内容如下:#数据库数据openreplicator.datasource.driver=com.mysql.jdbc.Driveropenreplicator.datasource.url=jdbc:mysql://127.0.0.1:3306/testopenreplicator.datasource.username=rootopenreplicator。
datasource.password=123456#连接信息openreplicator.master.hostname=127.0.0.1openreplicator.master.port=3306openreplicator.master.username=rootopenreplicator.master.password=123456openreplicator.binlog.filename=mysql-bin.000001openreplicator.binlog.position=4#监听openreplicator地址的位置.server.hostname=127.0.0.1openreplicator.server.port=13111#需要复制的表数据openreplicator.filter.rule=replicate-do-table:test.demo.*3.:$java-cp“/path/to/open-replicatora.jar”com.google.code.or.OpenReplicator-f/path/to/open-replicator.properties,/path/to/open-replicator.jar和/path/to/mysql-connector-java。
jar它们分别是OpenReplicator和MySQL的UARS包装器;上面的简单示例使用OpenReplicator从数亿个MySQL表中复制数据。
读者可以根据自己的需要修改配置文件。
综上所述,从数百个MySQL表中复制数据的方法有很多种,您可以根据自己的情况选择不同的方法。
本文介绍MySQL的复制功能、mysqldump命令以及CDCOpenReplicator工具的使用。

相关文章

MySQL source命令详解:高效导...
2024-12-26 03:08:40
轻松设置SQL Server开机自动运行...
2024-12-15 10:35:10
深入解析MySQL:优势、性能优化与数据...
2024-12-16 05:24:49
SQLSERVER三表联查技巧:实现学生...
2024-12-26 13:36:45
深入解析MySQL日期时间类型:存储、格...
2025-01-05 17:00:06
MSSQL数据库字段添加指南:SQL语句...
2025-01-26 13:37:55
掌握SQL执行顺序:优化查询性能的关键步...
2024-12-15 11:36:08
SQL数据附加失败错误3456解决方案:...
2024-12-17 09:24:53
SQL SUM()函数详解:数字列求和与...
2024-12-16 19:18:28
SQL Server 2008:高效建库...
2025-01-14 06:58:01最新文章
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
04
2025-04
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
2
MySQL分区删除技巧与8.0版本新特性...
mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...
3
Python代码实现:如何判断三角形的三...
python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...
4
深度解析:MySQL查询语句执行顺序及优...
mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...
5
SQL教程:使用SUBSTRING和IN...
sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...
6
MySQL日期差异计算方法:轻松获取日期...
MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...
7
MySQL及SQL查询获取前10条数据方...
MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...
8
MySQL启动问题排查与解决指南
Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...
9
DbVisualizer添加MySQL数...
如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...
10
SQL字段默认值设置全攻略:轻松实现自动...
sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...