【转】mysqldump的锁表的问题
今天凌晨,公司的一台MySQL生产库备份时间从2:30一直备份到8:30,正常情况下这个备份应该只会备份20分钟,3:00之前就会备份完毕,
但是这次备份时间太长了,也影响了公司业务的使用。
先写一下公司的备份语句
mysqldump -uroot -p123456 --opt --master-data=2 -R dbname | gzip >/data/dbname.sql.gz
分析一下上面这个语句
--opt 会lock 本次需要备份的所有表,因为本次备份的是 dbname数据库,所以会锁住dbname的所有表。
--master-data=2,--master-data=1 默认的话会--lock-all-tables,会锁住整个mysql数据库中的所有表。
但是如果加上--single-transaction会加上事务,不会锁表。
所以我在原有参数的基础上加上--single-transaction
mysqldump -uroot -p123456 --opt --single-transaction --master-data=2 -R dbname | gzip >/data/dbname.sql.gz
如果加上--single-transaction,备份的时候就不会锁表了。
以前一直以为locks级别大于single transaction,经过这次实践证明,single-transaction级别更高。
选择备份多个数据库的简单语法:
mysqldump -uroot -p123 -h192.131.1.9 --single-transaction --master-data=2 -R --no-data --databases vgos_mcenter vgos_statnum>11.dmp
顺便说一下,mysqldump默认是lock-tables的。
当执行mysqldump -uroot -p123 -h192.131.1.9 -R vgos_statnum>11.dmp 的时候,lock整个vgos_statnum库
当执行mysqldump -uroot -p123 -h192.131.1.9 -R vgos_statnum t1>11.dmp 的时候,没有lock整个vgos_statnum库,lock的是t1表。
【转自】:http://blog.csdn.net/weiliu1463/article/details/25305371
【转】mysqldump的锁表的问题的更多相关文章
- mysqldump 备份数据说明+ 避免锁表
1.mysqldump命令备份Mysql数据库的参数说明 在用mysqldump备份使用那些参数选项是最完美的组合呢?--skip-opt--create-option ...
- MYSQL正式环境主从复制(不锁表,不停服务)
参考URL: http://rfyiamcool.blog.51cto.com/1030776/1016636/ 原因源于其实以前环境是有MYSQL主从复制的,且最开始主从复制之间是OK的. 但由于日 ...
- 【MySQL 读书笔记】全局锁 | 表锁 | 行锁
全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...
- mysql锁表与不锁表设置主从复制的方法
有时候MySQL主从同步不一致比较严重的时候,需要手动同步.先说说在锁表的情况下如何操作:以下是其简要过程 1.先对主库锁表FLUSH TABLES WITH READ LOCK; 2.备份数据mys ...
- MySQL 手动主从同步不锁表
有时候MySQL主从同步不一致比较严重的时候,需要手动同步. 然而网上看大很多需要锁表的同步的方法基本如下 1.先对主库锁表 FLUSH TABLES WITH READ LOCK; 2.备份数据 m ...
- Mysql不锁表备份之Xtrabackup的备份与恢复
一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...
- mysql遇到锁表常用命令
出现 waiting for table metadata lock 锁表的解决方法 1. show processlist; kill xxx; //xxx 为会话id 2.查询是否有未提交的事物 ...
- sqlserver锁表、解锁、查看销表 (转载)
sqlserver中怎么锁表.解锁.查看销表呢,下面我以三个不同的实例给各位朋友详细介绍一下有需要的朋友可参考一下. 更多详细内容请查看:http://www.111cn.net/database/O ...
- oracle 锁表问题
oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作, ...
随机推荐
- Linux修改终端提示符
打开~/.bashrc可以看到命令提示的内容为:\u@\h\w\$ \u表示用户名,\h表示主机名,\w表示当前目录,\$表示命令提示符(普通用户$,超级用户#) 这个命令提示符有点长,很碍事,\u@ ...
- ios实例开发精品文章推荐(7.23)
---------------------------------------------------------------------------------------------------- ...
- 整理打印PI值
准备锻炼背诵PI的小数,找到PI值: PI=3. 141592653589793238462643383279502884197169399375105820974944592307816406286 ...
- mysql--SQL编程(关于mysql中的日期,实例,判断生日是否为闰年) 学习笔记2.1
关于日期处理的实例: 从mysql给出的 example 这个是官方源码下载以及导入,http://dev.mysql.com/doc/employee/en/employees-installati ...
- Linux软中断、tasklet和工作队列
Linux内核中的软中断.tasklet和工作队列详解 引言 软中断.tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来 ...
- vfork 挂掉的一个问题
在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成ex ...
- Python3 命令行参数
Python 提供了 getopt 模块来获取命令行参数. $ python test.py arg1 arg2 arg3 Python 中也可以所用 sys 的 sys.argv 来获取命令行参数: ...
- Javascript MVC 学习笔记(一) 模型和数据
写在前面 近期在看<MVC的Javascript富应用开发>一书.本来是抱着一口气读完的想法去看的.结果才看了一点就傻眼了:太多不懂的地方了. 仅仅好看一点查一点,一点一点往下看吧,进度虽 ...
- (面试题)有关Integer
今天在一家公司做了个面试题:运行下列代码,输出结果是什么 Integer a=new Integer("12"); Integer b=new Integer("12& ...
- 如何将shell的打印日志输入到日志文件
如果shell打印的日志很多,屏幕无法完全显示,需要查看shell执行的情况,这是就需要输入到日值了: 如:echo "2012-6-14" | tee -a my.log -a表 ...