【MySQL 流浪之旅】 第一讲 MySQL 安装
【MySQL 流浪之旅】 第二讲 MySQL 基础操作
【MySQL 流浪之旅】 第三讲 MySQL 基本工具
逻辑备份是将数据库中的数据备份成一个文本文件,备份的文件可以被查看、编辑和修改。它有如下几个特点:
Mysqldump的工作原理是将数据库中的数据通过SQL语句导出到一个文本文件中。这个文件包含了所有表的结构和数据。备份的过程中,Mysqldump会对每个表逐一进行处理,生成对应的SQL语句,并将这些语句写入备份文件中。在还原数据库时,只需要运行这个备份文件,就可以将数据恢复到原来的状态。
1. mysqldump的本质是通过select * from table来获取表的数据的。
2. 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
1、不使用任何参数,默认带有--lock-tables,mysqldump会依次遍历每个表依次锁过去。
2、如果加上--lock-all-tables这个参数,会在mysqldump执行的过程,将所有表锁住。
3、如果使用了--master-data和--single-transaction两个参数的话只会在开始导数的时候获得一个数据一致性状态,接下来不锁表。
问题描述:假设mysqldump导出数据,从开始执行总共执行了1个小时,那么mysqldump导出来的数据到底是哪个时间点的数据?
1、不使用任何参数,mysqldump会依次遍历每个表依次锁过去,这样数据就是整个导出过程的。
2、--lock-all-tables这个参数,就会在mysqldump执行的过程中,将所有表锁住,那样开始导出的数据就是那一时刻的。
3、使用了--master-data和--single-transaction两个参数的话,会在开始导数的时候获得一个数据一致性状态,导出的数据就是这一时刻的。