mysqldump命令之常用选项
===============================================
mysqldump常用选项
-h, --host=name:服务器IP
-u, --user=name:登录名
-p, --password[=name]:登录密码
-A, --all-databases:导出所有数据库
-B, --databases:导出指定的数据库,多个数据库名使用空格分割
--tables:导出指定表
-d, --no-data:仅导出表结构,不导出数据
-t, --no-create-info:不导出表创建语句
-n, --no-create-db:不导出CREATE DATABASE IF EXISTS语句
-e, --extended-insert:将多条记录合并成一条INSERT语句来提高插入效率
--add-drop-table:在创建表之前加入DROP TABLE语句
--hex-blob :将二进制的数据以16进制导出
-R, --routines:导出存储过程和存储函数
--triggers:导出触发器
--master-data[=#]:导出CHANGE MASTER命令,当设置为1时,CHANGE命令正常导出,当设置为2时,CHANGE命令以注释模式导出
master-data开启时,会默认启用--lock-all-tables选项,并自动禁用--lock-tables选项
--dump-slave:在从库上执行时,dump-slave用来导出当前主库上的位置信息
--single-transaction:单实例模式运行
--lock-all-tables,-x:在导出前对所有表加全局只读锁,并自动关闭--single-transaction 和 --lock-tables 选项
--lock-tables :在导出当前表数据前才对表进行加锁,该选项指使用与MyISAM表。--lock-tables无法保证所有表数据在数据库级别一致。
--default-character-set=charset:设置导出时使用的字符集
--quick,-q :在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
===============================================
--quick与--skip-quick选项
--quick选项会在导出的SELECT语句中加入/*!40001 SQL_NO_CACHE */,避免对查询结果进行缓存而污染缓冲池中热数据。
PS:在MySQL 5.7版本中使用--skip-quick选项,导出的SELECT语句中仍包含/*!40001 SQL_NO_CACHE */,不明原因。
===============================================
master-data与dump-slave的区别:
参数--dump-slave导出的是当前从库所复制的主库的binlog信息
参数--master-data导出的是当前服务器上的binlog信息
假设现在有A-->B的复制,现在想新增从库C实现A-->C的复制
如果在A上进行备份,则使用master-data选项来获取备份时间点时A的binlog位置
如果在B上进行备份,这使用dump-slave选项来获取备份时间点时A的binlog的位置
===============================================
mysqldump与gtid-purged
当使用--all-databases + --triggers --routines --events导出脚本时,会在导出脚本中包含:
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0; --
-- GTID state at the beginning of the backup
-- SET @@GLOBAL.GTID_PURGED='3a8d8f51-feab-11e8-99ec-fa166946750e:17-768,
865cca62-feac-11e8-baec-fa075be7f38b:1-16';
如果使用--databases 'database_name'+--triggers --routines --events导出脚本时,会提示:
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.
而如果使用 --set-gtid-purged选项,则不会导出下面两个命令:
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED='xxxx'
踩坑案例:
当前有复制A(主)->B(从),现需要将C中数据全部迁移到A上,使用mysqldump --all-databases在C上导出所有数据并导入到A上,发现A上数据没有复制到B上。
问题原因:在mysqldump导出的命令中包含"SET @@SESSION.SQL_LOG_BIN= 0;",导致数据导入到A上时不会生成binlog,无法传递到其从库。
===============================================
--opt与--skip-opt区别
官方解释:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump
--opt: Shorthand for --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset.
--skip-opt: Turn off options set by --opt
使用--skip-opt参数,会关闭默认--opt选项,导致:
1、导出脚本中缺少DROP TABLE IF EXISTS语句
2、导出脚本中CREATE TABLE语句中缺少存储引擎设置
3、导出脚本中CREATE TABLE语句中缺少默认字符集设置
3、导出脚本中CREATE TABLE语句中缺少自增列和自增初始值设置。
因此强烈建议谨慎使用--skip-opt参数
mysqldump命令之常用选项的更多相关文章
- zip命令的常用选项
zip命令的常用选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家都知道,在linux上一切皆文件,在实际生产环境中,如果我们需要部署一些系统的服务,我们会将一些软件包提前下 ...
- gcc/g++ 命令的常用选项
gcc/g++ 命令的常用选项使用g++编译CPP文件如果用gcc编译C++源文件时,加以下选项:-lstdc++,否则使用了C++操作的文件编译会出错.假如在程序中用到new delete操作,而不 ...
- grep命令的常用选项
Linux的grep命令是使用正则表达式进行文本搜索的,一些对程序员很有用的选项如下: -i 忽略大小写 -w 进行普通文件匹配,而不是正则表达式匹配 -c 只统计每个文件中匹配行数(默认是输 ...
- mysqldump命令的常用组合
只导表结构完整语句: mysqldump -h192.168.1.174 --port=3306 -uroot -p --routines --events --no-data --no-cre ...
- mysqldump命令之常用模板
##=====================================================## ## 在Master上导出所有数据库 /export/servers/mysql/b ...
- MySQL Backup mysqldump 常用选项与主要用法
The mysqldump client utility performs logical backups, producing a set of SQL statements that can be ...
- FPGA综合工具--Synplify Pro的常用选项及命令
最近要用到Synplify,但以前没使用过,无基础,找到一篇帖子,隧保存下来. 本文转自:http://blog.sina.com.cn/s/blog_65fe490d0100v8ax.html Sy ...
- GCC编译命令常用选项
GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序 ...
- 附1 consul常用命令+常用选项
之后每用到一个command或options,都会记录在这里. 常用命令command: agent 作用:运行一个consul agent join 作用:将agent加入到consul clust ...
随机推荐
- dns资源记录类型
资源记录的定义格式: 语法:name [TTL] IN RR_TYPE value SOA: name:当前区域的名字,例如"magedu.com.",或者"2.168. ...
- L266 作文
With the rapid development of modem society, an increasing number of people are concerned about the ...
- idea打包 - 可执行jar包
需求:有一个基于SpringBoot的socket服务端程序,实现了对消息的接收.发送并行操作.此时想要将其构建成可执行的Jar包,执行 java -jar xx.jar后能够进行消息的收发. 分析: ...
- [SpringMVC-值传递] 初始SpringMVC--SpringMVC中的值传递
把页面中输入的值传递到后台以及后台向前台传递,有以下几种方式 这里以登录为例子,实现打印前端页面的值 1,新建一个控制器,根据不同的请求地址实现不同的请求方式 LoginController.java ...
- SpringMVC实现从磁盘中下载文件
除了文件的上传我们还需要从磁盘下载 实现文件的下载只要编写一个控制器,完成读写操作和响应头和数据类型的设置就可以了 下面演示的是从G盘imgs文件夹中下载文件 具体代码如下 package com.c ...
- python第二天 python介绍与变量
编程语言的分类: 分别为 机器语言,汇编语言,高级语言 所以按照翻译方式又被分为两种 编译型:在代码执行时,需要先进行编译成二进制文件之后,才能够被执行 代表如:c语言,执行速度快,但是调试麻烦 解释 ...
- Homebrew&Mongod
Homebrew官网:http://brew.sh Homebrew installs the stuff you need that Apple didn't Homebrew的安装非常简单,打开终 ...
- OAuth和OpenID的区别
OAuth关注的是authorization:而OpenID侧重的是authentication.从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别: authorization: ...
- Git的小总结
1.Git的介绍 Git(分布式版本控制系统)是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 下载地址:https://git-scm.com 2.介绍命令 $ git ...
- ecmall 主从表的4种模型关系
eccore/model/model.base.php对应关系: 举例:在includes/models goods.model.php 里 因为店铺可以对应多个商品,商品只能对应一个店铺,所以商品B ...