关于mysql source恢复数据过程中,select操作hang
来源:互联网 发布:舍伍德算法 ppt 编辑:程序博客网 时间:2024/05/21 21:37
用mysqldump主数据库到文件中,数据库中表的数据比较大,后在备库上用source命令进行恢复,
mysqldump -u root -p dlsp >/DATA/mysql/dump/dump_dlsp.sql
source </DATA/mysql/dump/dump_dlsp.sql
在恢复数据过程中,对要恢复的表进行select操作,该操作就hang了。
用show processlist\G查看了一下;
*************************** 4. row ***************************
Id: 11
User: root
Host: localhost
db: dlsp
Command: Query
Time: 334
State: Waiting for table metadata lock
Info: select count(1) from LSMP_LOTTERY
select操作在等待表的meta lock
那么是什么导致table meta lock了,原来dump出的文件中会先把要操作的表lock住,直到insert表中的数据都操作完成才释放锁。
dump_dlsp.sql中在insert数据之前,有这样一个操作,LOCK TABLES `LSMP_LOTTERY` WRITE,表的写锁,在释放之前,该表一直处于打开状态,对该表的元数据锁一直会占用。
mysql> show open tables\G;
*************************** 21. row ***************************
Database: dlsp
Table: LSMP_LOTTERY
In_use: 1
Name_locked: 0
这样对表的任何操作(包括DML),都会被锁住。
附mysql的锁的分类:
- Meta-data元数据锁:在table cache缓存里实现的,为DDL(Data Definition Language)提供隔离操作。一种特别的meta-data元数据类型,叫Name Lock。(SQL层)
- 表级table-level数据锁(SQL层) lock table xxxx write(read)
- 存储引擎特有机制 — row locks行锁,page locks页锁,table locks表级,版本控制(在引擎中实现)
- 全局读锁 — FLUSH TABLES WITH READ LOCK(SQL层)
mysql锁的执行流程
- 关于mysql source恢复数据过程中,select操作hang
- MySQL数据恢复过程
- MySQL数据恢复过程
- 【JavaWeb】Mysql source 恢复数据出错解决
- 关于mysql数据库数据恢复-日志恢复
- 数据库恢复过程中查看恢复数据
- mysql数据库下损坏数据的恢复操作其过程总结
- 关于MySQL中source命令的使用
- mysql 误操作通过日志数据恢复
- mysql 回滚,撤销操作,恢复数据
- MySQL误操作后的数据恢复
- MySQL利用binlog恢复误操作数据
- mysql-存储过程-插入数据数-测试在select语句中in和or的区别
- 关于Html中Select的操作
- 对select中数据的调用操作
- 关于mysql中select子查询
- java操作mysql进行数据备份及恢复操作
- mysql 导入数据 source
- 【数据结构】顺序栈、链栈学习笔记
- Grub2配置详解
- 跟随鼠标移动的时钟
- VISTA120报警主机与报警键盘的连接说明
- exit、return、_exit、_Exit这几个函数的区别
- 关于mysql source恢复数据过程中,select操作hang
- Handler机制学习小结
- csapp2e 家庭作业 2.70
- 程序员时事面试题——地震预测
- 【Struts2】单文件、多文件上传
- WinForm中DataGridView的 CellClick 事件的代码
- adb 端口占用
- 遍历图的路径
- C#Winform中如何给DataGridView添加一个自增列