mysql binlog dump_mysqldump 和mysqlbinlog

一、mysqldump

1.备份test库

#mysqldump -uroot -p'123' test >test.sql

f78dadff811768bcdbc0e3373a920eae.png

2.备份 -B参数

#mysqldump-uroot -p'123' -B test >test_B.sql --B有create数据库,和use

#mysqldump -uroot -p'123' -B test test1 >test_B.sql --B有create数据库,和use,且同时备份test,test1两个库

1783913fe61d21923bfee4c5c911df11.png

3.备份 --compact 去除那些多余的字符

#mysqldump -uroot -p'123' -B --compact test >test_B_C.sql ---compact 去除那些多余的字符

4.mysql恢复

#mysql -uroot -p'123'

5.mysqldump的压缩  gzip

#mysqldump -uroot -p'123' -B test|gzip>test_B_bak.sql.gz

6.mysqldump的压缩恢复  gunzip

gunzip

7.mysqldump只备份表结构 -d

#mysqldump -uroot -p'123' -d test >test_d.sql

8.mysqldump只备份表数据(不带结构) -t

#mysqldump -uroot -p'123' -t test >test_t.sql

9.备份时刷新binlog -F

#mysqldump -uroot -p'123' -F test >test_F.sql

10.备份时记录二进制日志位置--master-data=1

#mysqldump -uroot -p'123' --master-data=1 test>tset_md.sql

3c7a4c3f8d2401e4535516180e3b0bbd.png

总结:几种备份方式,备份文件的大小

3fbd5b46a0b4f33280b143defceb16d9.png

11.mysqldump只备份test库中的orders表

#mysqldump -uroot -p'123' test orders>test_orders.sql

12.mysql导入备份的test库中的orders表

#mysql -uroot -p'123' test

或登录mysql

mysql>use test;

mysql>source /root/test_orders.sql

---------------------------------------------------------mysqldump中的锁表问题------------------------------------------------------------------

下面内容讨论的是InnDB引擎中的情况。

--mysqldump

mysqldump -uroot -p -B CRM --tables WorkOrder>CRM_WorkOrder_T.sql --导出数据库DB1中的WorkOrder表

mysqldump 默认会给数据表加上读锁,在这个语句中,只会锁住数据库CRM中的WorkOrder表,其他库表不受影响。

41391067401d2068848fc24395a170b1.png

--master-data加锁

mysqldump -uroot -p --master-data=2 -B DB1 --tables WorkOrder>CRM_WorkOrder_T.sql --导出数据库DB1中的WorkOrder表

--master-data=2 和--master-data=1 都会自动加一个读锁(全局),这个锁表不是只将WorkOrder锁住,而且是所有的数据库锁住。不进数据库DB1不能进行写操作,其他数据库也不能进行写操作,读还是可以滴。

cfb8c1fc94fcfffd8a6a85a071136ec4.png

对比mysqldump和--master-data中的锁状态,mysqldump加的是table level lock(表级锁),它只会影响备份的表。而--master-data加的锁是 global read lock(全局读锁),它就会影响整个mysql的所有数据库。

--single-transaction

mysqldump -uroot -p --master-data=2 --single-transaction -B CRM --tables WorkOrder>CRM_WorkOrder_T.sql

如果说想着备份时,不锁表,可以用到参数--single-transaction,加上之后进行备份,所有mysql的库表就不会被锁了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值