mysqldump 如何备份 以及如何解决锁表的问题

发布网友 发布时间:2022-04-23 15:16

我来回答

2个回答

热心网友 时间:2022-04-29 23:49

mysqlmp是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。如果给mysqlmp进行备份,从库上停止复制的sql线程 然后mysqlmp,这个是个很好的选择,因为停止复制就没有写,就不用担心锁表的问题 。下面提供两只备份方法:

一、MyISAM引擎备份
1. 由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,
2. 所以,在备份时使用--lock-all-tables加上读锁

mysqlmp -A -F -B --lock-all-tables |gzip >/data/backup/$(date +%F).tar.gz
3. 特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面已经详细讲解过了,这里就不在讲了。

二、 InnoDB引擎备份
1. InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:
mysqlmp -A -F -B --single-transaction |gzip >/data/backup/$(date +%F).tar.gz

2. 特别注意:
--single-transaction仅适用于InnoDB引擎。

--master-data=2
会将当前mysql用到的binlog文件的日志名称和位置记录下来 然后搜索change master就行了
mysqlmp -uroot -p'passwd' -B ctp1 --lock-all-tables|gzip >/home/mysql/ctp1.$(date +%F).tar.gz
--no--data 仅仅mp数据库结构创建脚本 通过--no-create-info 去掉mp文件中创建表结构的命令。

热心网友 时间:2022-04-30 01:07

(备份主库的binlog?)
2.1.1.1
MyISAM引擎备份
由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,所以,在备份时使用--lock-all-tables加上读锁mysqlmp-A-F-B--lock-all-tables|gzip/data/backup/$(date
+%F).tar.gz
2.1.1.2
InnoDB引擎备份
InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:mysqlmp-A-F-B--single-transaction|gzip/data/backup/$(date
+%F).tar.gz特别注意:
1)--single-transaction仅适用于InnoDB引擎。
--master-data=2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com