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数据库表迁移攻略:两种方法轻松...
2024-12-20 20:18:50MySQL数据库连接指南:轻松掌握Win...
2024-12-16 11:43:17MySQL索引失效原因解析与优化策略
2024-12-18 08:28:25MySQL数据库中多表关联与外键建立指南
2024-12-16 06:09:18优化SQL查询:解决大数据下字段前四位判...
2024-12-15 13:11:58MySQL下载后安装失败?5招轻松解决安...
2024-12-17 06:09:28零基础快速掌握SQL:学习路径与实践分享
2024-12-16 10:51:15MySQL忘记密码?教你一步步重装及找回...
2024-12-17 15:55:39MySQL字符串定位与截取技巧详解
2024-12-18 16:52:29SQL更新数据命令详解:掌握UPDATE...
2024-12-25 20:31:42最新文章
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
25
2024-12
热门文章
1
SQL2000数据库备份压缩技巧:优化空...
怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...
2
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
3
SQL字符串处理技巧:单引号使用与转义标...
SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...
4
Windows环境下Redis安装指南与...
redis安装windowsredis基本简介与安装安装Redis首先需要获取安...
5
深度解析:Redis性能优势与局限性,助...
redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...
6
深入解析:MySQL数据库的特性与应用
mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...
7
MySQL日志类型全解析:二进制、错误与...
MySQL的三种日志类型详解mysql三种日志类型MySQL日志的三种类型,详解...
8
Redis基础入门:详解Key-Valu...
如何读取redis中的key值中的结果首先需要连接redis客户端redis-c...
9
C语言编程必备:99乘法表经典代码解析
c语言必背代码有哪些?1.输出表达式/*9*9。总共9行9列,其中i控制行,j控...
10
MySQL数据列不显示问题解决方案指南
如何在MySQL中快速解决数据表中某列数据不显示的问题mysql不显示某列数据如...