其实很多东西都能在info里面找到非常详细的说明,只是,我们太忙了,只想要一个答案,而无心去看而已,所以呢,就把用得到的都看一下来记录吧。

命令模式:
mysqldump [options] [db_name [tbl_name ...]]
当不指定tbl_name 或者使用了 --databases | --all-databases 整个库都会被备份。
同时,mysqldump 不会备份 INFOMATION_SCHEMA 库,即使显式的指定。

options:
--opt 同等于 --add-drop-table --add-locks --create-options --disable-keys --extend-insert --lock-tables --quick --set-charset
--compact 同等于 --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset
同样,我们可以用--skip-opt or --skip-compact 来进行反转选项。
当我们想对--opt组中的某些选项进行取消的时候,我们可以用--skip来操作:
比如,要取消extend inserts 跟 memory buffing:
[--opt] --skip-extend-inserts --skip-quick。(--opt可选是因为其是默认开启的)。
如果我们要取消--opt中的除禁止索引跟锁表外的选项,则可以用:
--skip-opt --disable-keys --lock-tables。
如果是在组选项中要选择性的关闭或者开启一些功能,顺序很重要。
--disable-keys --lock-tables --skip-opt 将不会获得你想要的效果。

mysqldump 可以逐行的获取-备份表内容(至文件),同时可以在备份(至文件)前将整个内容缓存到内容中。
数据过大的时候开启缓存会产生问题,想要逐行的进行备份,用--quick(或--opt,组选项中开启了--quick),想要开启缓存那么用--skip-quick即可

--help, -?
--add-drop-database 常用--all-databases --databases 备份多库的时候联合使用
--add-drop-table
--add-locks 在重新读入备份文件的时候会插入得更快些。
--all-databases,-A 与--databases 所有库名... 等价,备份所有库,表[infomation_schema除外]
--allow-keywords 允许建立含关键字的列,在每列加上表名作为前缀。
--character-set-dir=path 字符集路径
--comments,-i 默认开启,在备份文件写入版本、主机等信息。--skip-comments 关闭
--acompact 更紧凑的输出。将会开启--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys --skip-set-charset
--compatible=name 为了与其他数据库系统兼容,name={ansi | mysql323 | mysql40 | postgresql | oracle | msssql | db2 | maxdb | no_key_options | no_table_options | no_field_options}的个选项的话用逗号分开。但这并不能保证就一定能与其他数据库兼容,只是保证输出尽量兼容。
--complate-insert,-c 使用包含列的完整插入语句。
--compress,-C 如果clien and server 支持压缩的话就压缩所有信息。
--create-options 包含所有mysql-create-table 语句支持的表选项
--databases,-B 多个库
--debug[=debug_options],-#[debug_options] 调试日志,典型格式`d:t:o,file_name`,默认值`d:t:o,/tmp/mysqldump.trace`
--debug_info
--cdefault-character-set=charset-name 用charset-name 作为默认的字符集。如果没指定charset-name的话,默认使用utf8,早些版本用的是latin1。此选项对用--tab option产生的文件没有影响。
--delayed-insert insert delayed 代替 insert
--delete-master-logs 在主从服务器上,在备份操作完成后会给服务器一个`purge binary logs`语句,删除二进制日志。此选项自动开启--master-data
--disable-keys, -K 每个表都会被 /*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS*/包围.这会让插入的时候更快,因为所有索引都在所有行插入完毕后建立。只有在非唯一索引的MyISAM表有效。
--dump-date --comments 开启的情况下,默认在文件尾加上日期。--skip-dump-date关闭。
--extend-insert, -e 多行插入。会让文件更小,插入更快。
--fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields=escaped-by=..., --tab option
--first-slave 5.5已删除
--flush-logs, -F 备份前刷新日志,需要reload权限。当与--all-databases,每个库被备份时都会刷新。当使用--lock-all-tables or --master-data,日志只有在所有表在锁定的时候被刷新。想要备份跟日志一起刷新,就要配合--lock-all-tables or --master-data.
--flush-privileges 备份库后发送`FLUSH PRIVILEGES`语句到服务器。当其他有库依赖于此库进行恢复的时候必须使用。
--force, -f 出错依然继续。
--host=host_name, -h host_name
--hex-blob 二进制列用16进制表示(`abc`->`ox616263`)
--log-error=file_name
--ignore-table=db_name.tbl_name 忽略表或视图,多张表就多次使用。
--insert-ignore INSERT IGNORE 代替INSERT 语句
--lines-terminated-by=... 与 --tab option 联用
--lock-all-tables, -x 所有库的表锁定。在备份期间产生一个全局读锁。自动关闭 --single-transaction 和--lock-tables.
--lock-tables, -l 每个库备份前锁表。
MyISAM表用READ LOCAL 锁定来允许同步插入。
事务性的表(InnoDb/BDB),--single-transaction 选项更好,因为不需要锁表。
因为--lock-tables为每个库单独锁表,并不能保证在备份在文件后的内容在库间逻辑上的一致。
consistent read:一致性读。快照读。
--single-transaction 备份前发送`START TRANSACTION SQL`语句给服务器,对事务性的表很有用。当`BEGIN`被执行的时候,其备份各库的一致状态,且不会阻塞任何应用。
必须记住的是,只有InnoDB表才会在一致状态下备份。假入是MyISAM,其状态依然会有可能改变。
在备份期间,为了保证成功(备份文件正常、二进制文件坐标正确),其他连接不可使用任何一个:
{ ALTER TABLE | CREATE TABLE | DROP TABLE | RENAME TABLE | TRUNCATE TABLE}语句。因为一致性读与这些语句是不隔离的,
在要备份的表上执行这几个语句会使 mysqldump执行的 `SELECT`命令重新读取表内容而得到错误的内容或者失败。
--single-transaction与--lock-tables是互斥的,因为--lock-tables会让所有未提交的事务悄悄的提交。
--master-data[=value] 产生的备份文件可以作用当前主从服务器的从属服务器。
这将导致备份出来的文件含有一个`CHANGE MASTER TO`语句,二进制日志
(file name 和 position)与被备份服务器一致。
在导入从服务器后可以从主服务器日志处开始同步复制。
默认是value是1,如果值是2,只是写在信息式的写在注释内,并不生效。
此选项要求二进制日志必须开启
--master-data自动关闭--lock-tables,在--single-transaction没指定的
情况下开启--lock-all-tables,这样情况下全局读锁只会在开始备份的产生很
短的时间。无论什么情况,任何对日志的操作都会在备份的时刻发生。
在已有的从服务器上备份出文件再做一个从服务器也是可以的。
1、停止 从服务器进程,获取其状态:
mysql > STOP SLAVE SQL_THREAD;
mysql > SHOW SLAVE STATUS;
2、从上面得到主服务器二进制日制的坐标(file_name file_pos):
Relay_Master_Log_File
Exec_Master_Log_Pos 字段,把他给记下来。
3、dump 从服务器。
shell > mysqldump --master-data=2 --all-database > dumpfile
4、重启从服务器线程
mysql > START SLAVE;
5、新从服务器,导入dumpfile.
shell > mysql < dumpfile
6、在新从服务器上,设置同步坐标。(file_name file_pos)
--no-autocommit 以Set autocommit=0 和 COMMIT语句来包围INSERT语句。
--no-create-db, -n --databases,-B | --all-databases 指定的时候,压缩`CREATE DATABASES`语句
--no-create-info, -t 不写出重新创建备份表的`CREATE TABLE`语句
--no-data, -d 只要表结构。
--no-set-names, -N 等价于--skip-set-charset
--opt
--norder-by-primary 当主键、或唯一索引存在的时候以此排序列行。当MyISAM表要转到InnoDB表的时候,但会花费更多时间。
--password[=password],-p[password]
-pipe, -W
--port=port_num, -P port_num
--quick, -q
--quote-names, -Q
--result-file=file_name, -r file_name
--routines, -R 包括函数跟结构。但没有时间戳,新导入的时间就是重新建立过程的时间戳。想要原来的时间戳,导出mysql.proc表后进行恢复。
--set-charset 默认开启 加入`set NAMES default_character_set`语句。--skip-set-charset 关闭
--skip-comments
--skip-opt
--socket=path, -S path
--ssl*
--tab=path, -T path
--tables 多表
--tariggers --skip-triggers
--user=user_name, -u user_name
--verbose, -v
--version, -V
--xml, -X
mysql > CHAGE MASTER TO
-> MASTER_LOG_FILE = file_name MASTER_LOG_POS = file_pos;
自行添加CHAGE MASTER TO 需要的参数,比如主服务器地址等。

mysqldump-info的更多相关文章

  1. MySQL自动化运维之用mysqldump和mysqlbinlog实现某一数据库的每周全备和每天差异备份,并添加到执行计划【热备】

    案例: 线上有一数据库,需要每周全备一次,每天差备一次[安全起见还是差备吧,不要增备,不要吝啬磁盘哦,而且差备恢复还很快] 1.每周对数据库hellodb做完全备份 crontab任务计划: * * ...

  2. mysqldump数据库同步遇到的问题

    1.同步数据是遇到 没有 lock database权限,报 " mysqldump: Got error: 1044: Access denied for user 'spider_dat ...

  3. mysqldump和xtrabackup备份原理实现说明

    背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...

  4. MySQL mysqldump数据导出详解

    介绍 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明 ...

  5. mysqldump的实现原理

    对于MySQL的备份,可分为以下两种: 1. 冷备 2. 热备 其中,冷备,顾名思义,就是将数据库关掉,利用操作系统命令拷贝数据库相关文件.而热备指的是在线热备,即在不关闭数据库的情况下,对数据库进行 ...

  6. MySQL备份命令mysqldump参数说明与示例

    1. 语法选项说明 -h, --host=name主机名 -P[ port_num], --port=port_num用于连接MySQL服务器的的TCP/IP端口号 --master-data这个选项 ...

  7. MySQL备份还原——mysqldump工具介绍

    mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump ...

  8. mysqldump: Error: Binlogging on server not active

    在学习使用mysqldump时,使用mysqldump备份时,遇到了下面两个错误: [root@DB-Server backup]# ./mysql_dump_back.sh Warning: Usi ...

  9. mysqldump:Couldn't execute 'show create table `tablename`': Table tablename' doesn't exist (1146)

    遇到了一个错误mysqldump: Couldn't execute 'show create table `CONCURRENCY_ERRORS`': Table INVOICE_OLD.CONCU ...

  10. mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES

    AutoMySQLBackup备份时,出现mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@' ...

随机推荐

  1. Fair Scheduler中的Delay Schedule分析

    延迟调度的主要目的是提高数据本地性(data locality),减少数据在网络中的传输.对于那些输入数据不在本地的MapTask,调度器将会延迟调度他们,而把slot分配给那些具备本地性的MapTa ...

  2. 模具厂MES项目介绍

    开发工具:Microsoft Visual Studio 2012 数据库:     Oracle 开发语言:C#(4.0) 版本控制工具:TortoiseSVN 底层ORM框架:IBatisNet ...

  3. Android中的Service小结

    简介 Service适合执行不需要和用户交互,而且长期运行的任务.即使程序被切换回后台,服务仍然可以正常运行.Service并不自动开启线程,默认运行在主线程中. Service中需要重载的函数 on ...

  4. FTP Proxy Server

    本文将在Linux环境下实现一个简单的FTP代理服务器,主要内容涉及FTP主动/被动模式和简单的Socket编程. 1. 主动模式和被动模式 FTP有两种模式,即主动模式(Active Mode)和被 ...

  5. keep the bar green to keep the code clean——Junit详解(一)

    测试用例 单元测试时每个开发人员必需掌握的,是保证开发过程中代码的准确性,无误性,保证代码质量.敏捷开发模式是先根据用户需求写测试用例,考虑基本所有用户所需要的情况,再写实现方法.单元测试有很多种,当 ...

  6. JSP内置对象---response 响应

    将response.jsp 页面的html标签(包括html.head.body)全部删掉. <%@ page language="java" import="ja ...

  7. 高斯过程(gaussian process)

    Definition 1. A Gaussian Process is a collection of random variables, any finite number of which hav ...

  8. Python时区转换

    最近工作中遇到了一个问题:我的server和client不是在一个时区,server时区是EDT,即美国东部时区,client,就是我自己的电脑,时区是中国标准时区,东八区.处于测试需要,我需要向se ...

  9. Counting Bits(Difficulty: Medium)

    题目: Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate ...

  10. html canvas 弹球(模仿)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...