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
--转自