重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 65|回复: 0
打印 上一主题 下一主题

[命令及语法] mysqldump 各参数解析

[复制链接]
跳转到指定楼层
楼主
发表于 2024-4-16 08:38:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

DDL Options

--add-drop-database
default: false
在创建每个数据库语句之前编写一个DROP(if exists)数据库语句. 这个选项通常和“--all-databases“或”--databases”选项一起使用,因为除非指定了其中的一个选项,否则在导出的SQL文件中不会编写 create database 语句。

--add-drop-table
default:true
在创建每个表前添加一个 DROP(if exists) table 语句  ----【体现在导入的SQL文件中】

--add-drop-trigger
default:false
在每个创建触发器语句之前编写一个DROP触发器语句。

--all-tablespaces ,  -Y
default:false
将创建NDB表使用的任何表空间所需的所有SQL语句添加到表dump文件中。在mysqldump的输出中没有包含此信息。这个选项目前只与NDB集群表相关,MySQL 5.7不支持NDB集群表。

--no-create-db , -n
default:false
如果给定“--databases”或“--all-databases”选项,则禁止输出中包含CREATE DATABASE语句。
如果未指定 -B 或 -A 选项,则输出中也没有 CREATE DATABASE 语句。

--no-create-info , -t
default:false
不导出表结构:无 create table 语句。
但是此选项可以导出创建日志文件组或表空间的语句;您可以为此使用--no-tablespaces选项来禁止导出。

--no-tablespaces , -y
default:FALSE
该选项不输出CREATE LOGFILE GROUP and CREATE TABLESPACE 语句。

--replace
default:false
用replace 替换SQL文件中的 insert

--force, -f
default:false
忽略所有error,此选项比--ignore-error 优先级高。

--default-character-set=charset_name
使用charset_name作为默认字符集,mysqldump默认使用utf8.
Replication Options
--apply-slave-statements

对使用--dump-slave选项生成的SQL文件中,会在change master to 语句之前添加 stop slave 语句,并在输出末尾添加   start slave 语句。

--delete-master-logs
在主复制服务器上,执行完dump操作之后,会向服务器发送 PURGE BINARY LOGS 语句清除binlog。此选项自动启用--master-data

--dump-slave
会在dump后的SQL文件中,添加 change master to 语句,该语句指定被转储从的binlog文件名和位置。

从SHOW SLAVE STATUS输出中读取Relay_Master_Log_File和Exec_Master_Log_Pos的值,分别用于MASTER_LOG_FILE和MASTER_LOG_POS。这些是主服务器的文件名和位置,从服务器开始复制。

--master-data
使用此选项dump a master replication server到dump文件,可用于设立另一台服务器作为master的slave。它会使dump输出包含CHANGE MASTER TO语句,标记dump源的二进制日志坐标(文件名和位置)。在把load dump文件加载到slave之后,slave应当从该master坐标开始复制。
如果选项赋值为2,那么CHANGE MASTER TO 语句会被写成一个SQL comment(注释),从而只提供信息;
如果选项赋值为1,那么语句不会被写成注释并且在dump被载入时生效。
如果没有指定,默认值为1。

--set-gtid-purged=ON/OFF
如果转储文件包含系统表,则不建议在服务器gtid_mode= on时加载转储文件.
如果不设置 --set-gtid-purged=OFF 这个参数,最终的备份文件中会有这样一句话:SET @@GLOBAL.GTID_PURGED='5adbcab4-fcbb-11e7-a900-000c29e774f1:1-347';这个的区间是主库中当前所完成的所有事务号。这条语句在备份被恢复的时候,起到的作用是,不再从主库同步1-347 这个范围内的事务了。如果我们不是主从之间的转储,我们不应该阻止该库同步1-347全部区间的数据。因此部分备份是加上--set-gtid-purged=OFF 这句,不强行指定跳过这些操作.

Format Options
--hex-blob
使用十六进制表示法转储二进制列

--xml
转储为xml格式

Filtering Options
--all-databases , -A
dump 所有数据库。

--databases ,-B
dump 指定数据库 ,可以指定一个或多个。

--tables
mysqldump将该选项后面的所有名称参数都视为表名。

--events ,-E
dump 服务器事件。须有event权限。

--ignore-table=db_name.tal_name
不要dump给定的表,必须使用数据库名和表名指定给定的表。若要忽略多个表,请多次使用此选项。这个选项也可以用来忽略视图。

--no-data , -d
不导出数据

--triggers
导出表的触发器,默认启动。可以用 --skip-triggers 禁用。

--where=''   , -w  ''
只dump由where选择的行,如果条件中包含特殊字符,须在条件周围加上引号。

--insert-ignore
出现主键重复但使用了ignore则错误被忽略,数据不变。

--opt
提供了快速dump操作,默认开启。可通过 --skip-opt 关闭。

Transactional Options
--flush-logs , -F
切换一下binlog file。
在开始dump前,flush 一个新的binlog file。此选项适用于为备份恢复加一个保险。

--single-transaction
不支持ddl,加上这个参数,对于innodb 表来说不锁表和行。形成一致性快照。

--no-autocommit
将dump文件中的每一个INSERT语句括在SET autocommit = 0和COMMIT语句中。

--compact
优化备份文件。此选项启用-skip-add-drop-table、-skip-add-locks、-skip-comments、-skip-disable-keys和-skip-set-charset选项。

-T
每一个表生成两个文件,一个SQL 文件,一个TXT 文件。可以备份成一个文件,可以是点SQL 结尾,也可以是点txt 结尾,导出一行行数据,每行数据指定以tab 方式分割每一个列,每行的分隔符默认是回车。

--lines-terminated-by
行与行之间的分隔符,默认为回车

--fileds-terminated-by=','
列与列之间的分割符。

总结
我在工作中所最长用的参数:

(1)

mysqldump -u user -ppassword --single-transaction --set-gtid-purged=off   --hex-blob  -R  -E

(-F:备份开始时重建binlog文件)(--master-data=2:如为master)(-d/--no-data:不导出数据)(-t:不导出结构)(--ignore-table=db.table)(--events/-E:导出事件)(-R/--routines:导出存储过程和函数)(导出多个库:--databases)(--where=‘where条件’)

(2)

mysqldump -u user -ppassword  -P3306 -hxx.xx    --single-transaction  --compact  --set-gtid-purged=off  dbname tablename > dbname_tablename.sql


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 12:49 , Processed in 0.099426 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表