zoukankan      html  css  js  c++  java
  • mysqldump 和mysqlbinlog

    一、mysqldump 

      1.备份test库

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

     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两个库

     

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

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

      4.mysql恢复

    #mysql -uroot -p'123' <test_B.sql                          --假如备份的时候没有加-B,恢复的时候要先创建数据库,并use数据库

      5.mysqldump的压缩  gzip

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

      6.mysqldump的压缩恢复  gunzip

    gunzip <test_B_bak.sql.gz|mysql -uroot -p'123'

      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

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

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

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

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

    #mysql -uroot -p'123' test<test_orders.sql
    或登录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表,其他库表不受影响。

    --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不能进行写操作,其他数据库也不能进行写操作,读还是可以滴。

       对比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的库表就不会被锁了。

  • 相关阅读:
    各类运算符练习
    用if语句把24小时制转换成12小时制
    Android课程---优化ListView列表视图
    Android课程---关于ListView列表视图的学习
    Android课程---时间日期对话框
    Android课程---关于对话框的学习
    Android课程---用进度条改变图片透明度
    Android课程---进度条及菜单的学习
    Android课程---final关键字
    Android课程---日历选择器和时间选择器
  • 原文地址:https://www.cnblogs.com/sdadx/p/7885753.html
Copyright © 2011-2022 走看看