mysql -s 参数_mysqldump 的常用参数。

mysqldump 常用参数详解:

--databases:备份多个数据库,选项后跟多个库名。备份文件中会包含USE db_name。

--events    :  备份事件

--routines:备份存储过程和函数

--ignore-table=TableName :指定不需要备份的表

--tables:覆盖--databases 或 -B 选项。该选项后的名称参数均被认为是表名。备份指定的表

--default-character-set:指定备份文件的编码,和数据库编码无关

--lock-all-tables:通过在备份期前加read lock锁定所有库的所有表。会自动关闭—single-transaction和—lock-tables。

--lock-tables:在备份数据库时对当前库添加read lock.

--master-data:在备份文件中添加二进制日志文件名和位置信息,会自动开始--lock-all-tables

--single-transaction:在备份前设置事务隔离级别为REPEATABLE READ并向server发送START TRANSACTION语句。

仅对事务型表如InnoDB有用。与--lock-tables互斥。对于大文件备份--single-transaction与--quick结合使用。

--flush-logs:刷新日志,生成一个新的二进制日志,主要用户做增量备份

--max-allowed-packet:可发送或接受的最大包分组长度

--no-autocommit:在INSERT前后添加set autocommit=0和commit。

--order-by-primary:将备份的表中的行按主键排序或者第一个唯一键排序。

当备份MyISAM表且将被载入到InnoDB表时很有用,打包备份本身的时间会较长。

--quick:强制mysqldump将查询得到的结果直接输出到文件,不缓存到内存中

1.备份一个DB

mysqldump -u$dbuser -p$dbpwd --databases DBName | gzip  >  /home/backup/DBName.sql.gz

2.备份多个DB:参数--databases 之后直接跟DBName,用空格隔开就行(我以前总以为是逗号隔开)

mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 | gzip  >  /home/backup/DBName.sql.gz

3.备份过程中忽略指定的表

mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 --ignore-table=DBName01.Table01 | gzip  >  /home/backup/DBName.sql.gz

note:这里的表名必须写成DBName.TabName

4.备份过程中忽略多张指定的表

mysqldump -u$dbuser -p$dbpwd --databases DBName01 DBName02 --ignore-table=DBName01.Table01 --ignore-table=DBName01.Table02 | gzip  >  /home/backup/DBName.sql.gz

5.备份指定的表:

mysqldump  -u$dbuser -p$dbpwd  --databases DBName01  --tables TabName | gzip > /home/backup/DBName.sql.gz

note:这里的表名不能写成DBName.TabName

6备份多张表:

mysqldump  -u$dbuser -p$dbpwd  --databases DBName01  --tables TabName01 TabName02 TabName03  | gzip > /home/backup/DBName.sql.gz

参考链接:

######2016-09-09 add #####################

几个特殊参数的解释

--master-data

--single-transaction

在单独使用--master-data参数时,会自动添加--lock-all-tables,锁定所有的表,直到备份完成结束

为了减少对整个db的影响,在备份的时候 --master-data 和--single-transaction配合使用

mysqldump -uroot -p'1234' --databases dbname  --single-transaction --master-data >  1.sql

备份原理如下:

1.flush tables ;   # 关闭所有表,减少加锁时对真个数据库的影响

2.flush tables with read lock  ;

3.set session 设置会话级别为rr ;   # 设置会话的隔离级别为rr ,这个可能和下面的快照有关,

4.start transaction with consistent  snapshot  ;  #建立快照

5.show master status      # 获得 binlog  postions

6.unlcok    # 释放锁

7.复制表结构和数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值