系列文章目录
【MySQL 流浪之旅】 第一讲 MySQL 安装
【MySQL 流浪之旅】 第二讲 MySQL 基础操作
【MySQL 流浪之旅】 第三讲 MySQL 基本工具
文章目录
系列文章目录
文章目录
一、什么是逻辑备份?
二、 mysqldump原理
三、mysqldump常用参数
四、mysqldump常见问题
mysqldump会导致锁表吗?
mysqldump数据导出时间?
一、什么是逻辑备份?
逻辑备份是将数据库中的数据备份成一个文本文件,备份的文件可以被查看、编辑和修改。它有如下几个特点:
- 导出的是SQL语句文件:逻辑备份记录了数据库在执行DDL(数据定义语言)、DML(数据操纵语言)和DCL(数据控制语言)操作时的SQL语句。这意味着备份包括了创建表、插入数据以及删除数据的操作。
- 适用于中小型数据库:由于逻辑备份主要关注于数据库的结构和数据操作,它在处理较小规模的数据库时效率较高。
- 可读性和可编辑性:备份文件包含SQL语句,使得对备份的数据可以进行修改和筛选,便于后续的开发和测试工作。
- 不支持增量备份和累计增量备份:逻辑备份的速度相对较慢,因为它需要在每次备份时重新执行所有的SQL语句。如果需要增量备份或者累计增量备份,可能需要采用其他类型的备份方法。
- 备份实例:例如,要备份指定的数据库并排除某些表,可以使用mysqldump命令的特定选项,如--exclude-tables参数。
- 还原过程:在还原数据时,需要通过执行备份文件中的SQL语句来实现。这个过程可能涉及到权限验证,因此在还原之前应确保有正确的访问权限。
二、 mysqldump原理
Mysqldump的工作原理是将数据库中的数据通过SQL语句导出到一个文本文件中。这个文件包含了所有表的结构和数据。备份的过程中,Mysqldump会对每个表逐一进行处理,生成对应的SQL语句,并将这些语句写入备份文件中。在还原数据库时,只需要运行这个备份文件,就可以将数据恢复到原来的状态。
1. mysqldump的本质是通过select * from table来获取表的数据的。
2. mysqldump适合放到业务低峰期做,因为备份的时候对数据库还是有一定的影响。
三、mysqldump常用参数
1.备份所有的库
mysqldump -uxxx -pxxx -A > all_databases.sql
2.备份所有库+存储过程+触发器,--routines ,表示备份存储过程和函数,--triggers,备份触发器
mysqldump -uxxx -pxxx -A --routines --triggers > all_databases.sql
3.备份指定库db1,db2 所有表和数据,--databases ,导出指定数据库的所有表和数据
mysqldump -uxpxxx xx --databases db1 db2 >db.sql
4.只备份db1的所有表结构,不备份数据,-d==--no-data,表示只导出表结构,不到导出数据
mysqldump -uxxx -pxxx -d db1 > db1_schema.sql
5.只备份db1下所有数据,不备份表结构,-t==--no-create-info,表示只导出数据不导出表结构
mysqldump -uxxx -pxxx -t db1 > db1.sql
6.如果需要在线搭建一个从库或者做日常备份,采用--master-data,和--single-transaction这2个参数
mysqldump -uxxx -pxxx --master-data=2 --single-transaction -A --routines > all.sql
四、mysqldump常见问题
mysqldump会导致锁表吗?
1、不使用任何参数,默认带有--lock-tables,mysqldump会依次遍历每个表依次锁过去。
2、如果加上--lock-all-tables这个参数,会在mysqldump执行的过程,将所有表锁住。
3、如果使用了--master-data和--single-transaction两个参数的话只会在开始导数的时候获得一个数据一致性状态,接下来不锁表。
mysqldump数据导出时间?
问题描述:假设mysqldump导出数据,从开始执行总共执行了1个小时,那么mysqldump导出来的数据到底是哪个时间点的数据?文章来源:https://www.toymoban.com/news/detail-818885.html
1、不使用任何参数,mysqldump会依次遍历每个表依次锁过去,这样数据就是整个导出过程的。
2、--lock-all-tables这个参数,就会在mysqldump执行的过程中,将所有表锁住,那样开始导出的数据就是那一时刻的。
3、使用了--master-data和--single-transaction两个参数的话,会在开始导数的时候获得一个数据一致性状态,导出的数据就是这一时刻的。文章来源地址https://www.toymoban.com/news/detail-818885.html
到了这里,关于【MySQL 流浪之旅】 第四讲 MySQL 逻辑备份的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!