mysql备份

简介

mysql备份分为物理备份和逻辑备份,物理备份是将数据库的磁盘数据进行备份,逻辑备份是将表数据备份。mysqldump就是逻辑备份,这篇文章主要讲解mysqldump的参数。

mysqldump测试

#开启genneral log方便观察
set global general_log='on';

#创建测试库和表
create database test;
create table tb1(id int);
insert into tb1(id) values(1),(2);
create table tb2(name varchar(10));
insert into tb2(name) values('dsq'),('csh'),('jcy');

#监控general_log
tail -f mysql_general.log

#备份库
mysqldump -h ip -u name --databases test -p > test.sql
##可以观察到
lock tables 'tb1' read   #每次导出表之前获取表的读锁
select /*!40001 SQL_NO_CACHE*/ * from 'tb1';  #查询表
unlock tables; #解锁表

#备份库,使用--single-transaction
mysqldump -h ip -u name --single-transaction --databases test -p > test.sql
#可以观察到
set transaction isolation level repeatable read #设置事务隔离级别
start transaction  #启动事务,保证一致性读
savepoint sp     #导出每个表之前保存一个save ponint
rollback to savepoint sp  #每次导出一个表就使用rollback回滚一下
                         #transaction可以保证非锁定的一致性读

mysqldump参数

--add-drop-databases
--databases db1 [db2 db3]
--master-data #记录binary log的位置和名称,适用于建立replication
--no-data #不导出数据
--opt #默认参数,表示--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset
--quick #一行一行的获取表数据,而不是先将数据全部缓存到磁盘,然后导出,存在大表就需要--quick
--tables [tb1 tb2 tb3] #导出表
--events -E#包含events scheduler
--routines -R#导出自定义函数
-w "name='dsq'" #导出满足条件的记录

使用场景

#数据库备份
mysqldump -h ip -u name --single-transaction -R -E --databases test -p > test.sql

#导出主库数据到备库
mysqldump -h ip -u name --single-transaction -R -E  --source-data -R -E --databases test -p > test.sql

#导出表结构
mysqldump -h ip -u name --databases test --no-data -p > test.sql

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据导出 数据导入 mysqldump命令的用法 1、导出所有库 系统命令行 mysqldump -uuserna...
    西贝巴巴阅读 1,014评论 0 0
  • Mysqldump是一个逻辑备份命令;意思就是将数据库中的数据备份成一个文本文件;也可以说是将表的结构和数据存储在...
    温东阅读 4,316评论 0 1
  • 备份命令: mysqldump -uroot -p --opt -R dbname > dbfile 参考文档:学...
    lookphp阅读 2,962评论 0 1
  • 一、MySQL备份恢复 常用工具: mysqldump:逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份;...
    舞者x阅读 2,713评论 0 1
  • 1. 运维在数据库备份恢复方面的职责 1.1 设计备份策略 全备 、增量、时间、自动 1.2 日常备份检查 备份存...
    醉舞经阁半卷书A阅读 2,924评论 0 0