当前位置: 首页 > 编程笔记 >

如何用mysqldump进行全量和时间点备份

有宏峻
2023-03-14
本文向大家介绍如何用mysqldump进行全量和时间点备份,包括了如何用mysqldump进行全量和时间点备份的使用技巧和注意事项,需要的朋友参考一下

mysqldump在mysql中用于逻辑备份,虽然速度不快,但非常灵活,有很多功能,灵活使用的化绝对是利器。

首先思考一个问题,mysql为什么要备份,主要还是数据安全性,比如主库挂了,数据不小心被删除了,所以全量备份非常重要。

是从主库还是副库进行全量备份呢?

1:从主库

主库比较重要,但其实备份的时候并不会影响数据库

mysqldump --host= --user= --password= --single-transaction --master-data=1 --flush-logs --databases >~/db.log

—single-transaction 参数能够报纸一致性读,不会锁表,也就是备份的时候不影响数据更新。

it dumps the consistent state of the database at the time when START TRANSACTION was issued without blocking any applications.

因为一致性读,能够保证coordinates点的位置,即使备份时间很久,也能得出正确的同步位置点。

While a —single-transaction dump is in process, to ensure a valid dump file (correct table contents and binary log coordinates)

—master-data参数也很重要,导出的语句会包含CHANGE MASTER TO语句,包括备份语句同步到的二进制文件和位置点。

Use this option to dump a master replication server to produce a dump file that can be used to set upanother server as a slave of the master. It causes the dump output to include a CHANGE MASTER TO statement that indicates the binary log coordinates (file name and position) of the dumped server. These are the master server coordinates from which the slave should start replicating after you load the dump file into the slave.

—flush-logs会强制重新生成一个新的二进制文件,这样恢复的时候会比较方便。

2:从副库

感觉上从副库备份更安全。

mysqldump --host=--user= --password= --dump-slave=1 --flush-logs --apply-slave-statements --include-master-host-port --databases >~/db.log;

— dump-slave和—master-data参数很类似:

This option is similar to —master-data except that it is used to dump a replication slave server to produce a dump file that can be used to set up another server as a slave that has the same master as the dumped server. It causes the dump output to include a CHANGE MASTER TO statement that indicates the binary log coordinates (file name and position) of the dumped slave's master. These are the master server coordinates from which the slave should start replicating.

记住一点它获取的是主库的bin log coordinates(不是备份库的)

—dump-slave causes the coordinates from the master to be used rather than those of the dumped server

dump出来的语句会包含 — Position to start replication or point-in-time recovery from。

—apply-slave-statements会让dump语句中自动包含start和stop slave语句。—include-master-host-port包含主库的连接信息。

必须记住一点,即使有—single-transaction语句,—dump-slave也会暂停mysql同步,也就是备份库的数据是落后于主库的,所以一般自动化脚本在备份的时候会先摘除备份库。

This option causes mysqldump to stop the slave SQL thread before the dump and restart it again after.

3:如何进行时间点恢复

没有实战过,首先基于最近的一次全量备份进行恢复,然后将后续的binlog文件导入(如果这些文件还在的话),所以副库最好也备份binlog语句。

如果数据被误删除了,将备份点(—flush-logs发挥作用了)到今天凌晨的binlog语句导入进来,或者找到安全的binlog位置点进行恢复。至于如何跳过“危险语句”是比较难控制的。

以上就是如何用mysqldump进行全量和时间点备份的详细内容,更多关于mysqldump进行全量和时间点备份的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 问题内容: 您好,我正在尝试从mysql命令行客户端进行备份。我正在使用mysqldump使用用户名和密码进行备份。以下是我用于备份数据库的命令。 我收到以下错误 尽管该命令似乎是正确的,但仍然出现错误。请让我知道是否还有其他方法可以从mysql命令行进行备份。 提前致谢。 问题答案: 不是MySQL命令,而是命令行实用程序。您必须从Shell命令行调用它。

  • MySQLdump和上传过程花费了太长的时间(~8小时)来完成整个过程。 我正在将活动数据库转储到mysqldump.tar文件和几乎3GB。当我加载到新的数据库,它需要6-8小时来完成这个过程(上传到新的数据库)。 我要完成这个过程,推荐的解决方案是什么?

  • 本文向大家介绍使用mysqldump实现mysql备份,包括了使用mysqldump实现mysql备份的使用技巧和注意事项,需要的朋友参考一下 注意:备份文件和二进制日志文件不能与mysql放在同一磁盘下 节点1 1、节点1上修改mysql配置文件,开起二进制日志保存 这里我将二进制日志放在/data/mysql/目录下,/data/是我创建的另外一个lvm磁盘,本来想直接放在/data/下,发现

  • rank ▲ ✰ vote url 60 383 111 805 url 如何测量脚本运行时间? 我在Project Euler发现好多这样的问题,许多其他地方也问怎么测量执行时间.但是有的时候答案有点kludgey-比如,在__main__中加入时间代码,所以我想在这里分享一下解决方案. Python自带了一个叫cProfile的分析器.它不仅实现了计算整个时间,而且单独计算每个函数运行时间,并

  • 问题内容: 在Go中进行日期比较是否有任何选择?我必须根据日期和时间- 独立地对数据进行排序。因此,我可以允许一个对象在一定日期范围内发生,只要它也在一定时间范围内出现即可。在此模型中,我不能简单地选择最旧的日期,最年轻的时间/最新的日期,最新的时间和Unix()秒来比较它们。我真的很感谢任何建议。 最终,我编写了一个时间解析字符串比较模块,以检查时间是否在范围内。然而,这并不顺利。我有一些大问题

  • 问题内容: 我需要能够记录反应时间,从屏幕加载或问题标签刷新到用户点击数字按钮。我找不到Apple提供的有关此文档的帮助。还不够准确,我至少需要测量毫秒。似乎受到游戏设计师的青睐,因为它在内部是一致的,但不适用于此应用程序,因为我需要在设备之间比较数据,并且取决于CPU的时间。这个Apple Dev Q&A 建议使用和,但是它在obj- c中,我找不到快速的等效文档。 是否有一个快速的版本,并说我