使用mysqldump的一点总结

‘MYISAM‘: ‘ -v -E -e -R --triggers -F -n --opt --master-data=2 --hex-blob -B ‘,
‘INNODB‘: ‘ -v -E -e -R --triggers -F --single-transaction -n --opt --master-data=2 --hex-blob -B ‘

参数说明:
-v:verbose模式,此模式会输出更多有关程序的信息。

--events,-E:使用事件调度器完成备份,但是需要数据库相关权限。

-- extended-insert, -e:会使用列表写入INSERT,即一条语句插入多个值,这样会是备份文件更小。

--routines, -R:包括存储程序(过程和函数)的倾倒数据库输出。这个选项需要mysql.proc表的SELECT权限。使用,例程生成的输出包含创建过程和创建函数语句创建例程。然而,这些语句不包括属性,如例程创建和修改时间戳,所以当例程.重新加载,创建时间戳等于重新加载时间。如果你需要创建例程和原来的时间戳属性,不使用,例程。相反,转储和重载mysql的内容。proc直接表,使用MySQL账户有合适的MySQL数据库特权。

--triggers:会在导出每个表时都导出触发器,不过需要具有TIGGER的权限,此选项默认启用。

--flush-logs,-F:在备份前刷新MySQL服务器的日志,此选项需要RELOAD权限。如果你在--all-databases情景下使用此选项,则会在每个数据库时刷新logs。 --lock-all-tables, --master-data, or (as of MySQL 5.5.21) --single-transaction时:日志只会被刷新一次,执行时会加表锁。如果你想在备份时刷新日志,--lock-all-tables, --master-data, or --single-transaction.配合此选项使用。

--no-create-db, -n:在给出--databases 或 --all-databases选项时,不执行CREATE DATABASE 指令

--hex-blob:包含有二进制信息的列将会由十六进制输出(比如,‘abc’,将会输出为 0x616263,受影响的数据类型:BINARY, VARBINARY, the BLOB types, and BIT

--database,-B:备份制定数据库。一般来说,mysqld对待name参数时,第一个参数作为数据库名,紧随其后的作为表名。但是在使用这个选项时,会将所有name参数作为数据库名进行备份。在每一个数据库备份前都会添加CREATE DATABASE 与 USE指令。

--opt指令相当于--add-drop-table, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick, a和 --set-charset,以上这些选项是默认的,因为--opt是默认使用的选项。

--master-data=2 CHANGE MASTER TO 被编写为一个SQL注释

--single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁表。

原文地址:https://blog.51cto.com/860143/2383714

时间: 2024-11-02 18:47:29

使用mysqldump的一点总结的相关文章

MySQL备份与恢复

body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; background-color: white; padding: 30px } body>*:first-child { margin-top: 0 !important } body>*:last-child { margin-bottom:

每天进步一点达——mysqldump

一.        简介 mysqldump是客户端用来备份数据库或者在不通数据库之间进行数据迁移的工具,备份内容包含创建表或者装载表的SQL语句 二.       命令格式   备份单个数据库或者数据库中部分数据表 mysqldump [参数] 数据库名 [表名] 备份指定的一个或者多个数据库 mysqldump [参数] --database db1 [db2db3] 备份所有数据库 mysqldump [参数] --all-database 三.       常用参数 -u--user=n

mysqldump备份7

http://www.cnblogs.com/ivictor/p/5505307.html 对于MySQL的备份,可分为以下两种: 1. 冷备 2. 热备 其中,冷备,顾名思义,就是将数据库关掉,利用操作系统命令拷贝数据库相关文件.而热备指的是在线热备,即在不关闭数据库的情况下,对数据库进行备份.实际生产中基本上都是后者. 关于热备,也可分为两种方式: 1. 逻辑备份 2. 物理备份 对于前者,常用的工具是MySQL自带的mysqldump,对于后者,常用的工具是Percona提供的XtraBa

MySQL中基于mysqldump和二进制日志log-bin二进制日志进行逻辑备份以及基于时间点的还原

本文出处:http://www.cnblogs.com/wy123/p/6956464.html 本文仅模拟使用mysqldump和log-bin二进制日志进行简单测试,仅作为个人学习笔记,可能离实际应用还有很大差距,仅参考. 开启MySQL的bin-log二进制日志 模拟还原是需要mysqldump出来的文件和log-bin,因此需要开始log-bin二进制日志. mysql5.7.18在开启二进制日志的时候除了要设置log-bin的位置之外,另外需要设置一个server-id,MySQL之前

mysqldump备份、还原数据库路径名含有空格的处理方法(如:Program Files)

虽然以下的方法也可以解决,不过最简单直接的,还是直接在路径前后加双引号-" ",这个方法简单有效. 首先要说明的是mysqldump.exe在哪里不重要,重要的是要处理好路径中的非法字符. 比如:我的mysqldump.exe的位置在本地的 C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ui\WEB-INF\data\test 直接调用肯定是不行的,因为路径中有空格.解决方法是把空格换成 C:/Progra

mysqldump的实现原理

我们可以通过打开general log,查看mysqldump全库备份时执行的命令来了解mysqldump背后的原理. 打开general log mysql> set global general_log=on; 其中,general log的存放路径可通过以下命令查看 mysql> show variables like '%general_log_file%'; 执行全库备份 # mysqldump --master-data=2  -R --single-transaction -A

mysql之 mysqldump 备份恢复详解

mysqldump 程序的实现原理是通过我们给的参数信息加上数据库中的系统表信息来一个表一个表获取数据然后生成 INSERT 语句再写入备份文件中的.这样就出现了一个问题,在系统正常运行过程中,很可能会不断有数据变更的请求正在执行,这样就可能造成在 mysqldump 备份出来的数据不一致.也就是说备份数据很可能不是同一个时间点的数据,而且甚至可能都没办法满足完整性约束.这样的备份集对于有些系统来说可能并没有太大问题,但是对于有些对数据的一致性和完整性要求比较严格系统来说问题就大了,就是一个完全

MySQL mysqldump 原理浅析

百度百科这么解释:把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据.并且从这些数据中创建INSERT语句 mysqldump的大概流程整理如下(白话):1:连接数据库,校验账户,密码,IP2:进入INFORMATION_SCHEMA库,获取要备份的数据库的信息,包含存储过程,视图,表3:进入INFORMATION_SCHEMA

mysql重点、视图、事务、备份还原【mysqldump】、mysql编程【触发器、存储函数、存储过程】、存储引擎

1.删除数据需要注意的问题[删除记录delete] 删除数据本身没有太多说的,还是删除表的时候有truncate用法 delete from是逐条删除记录[加不加条件全删,效率低,在删除表方面] truncate是重建表[删除表时效率高] 2.修改数据[update] [一下重点性能] 3.视图(view)[是一张虚拟的表:使客户端在虚拟的表中进行操作] 视图就是一条查询语句的结果[因为查询之后的结果本身就会形成一张表给客户端][视图使用到mysql的内置机制] create view 视图名