mysqldump -uroot -ppassword –default-character-set=latin1 –opt –routines –master-data=1 –single-transaction –flush-logs –force DBName > tt.txt
–opt 等同于同时添加 –add-drop-tables –add-locking –create-option –disable-keys –extended-insert –lock-tables –quick –set-charset 选项。
–lock-tables 锁定导出的表。只适用MyISAM
–add-locking 插入语句加锁
--disable-keys 告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
–extended-insert 使用包括几个VALUES列表的多行INSERT语法。这样使转储文件更小,重载文件时可以加速插入。
–quick 该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中
–routines 导出存储过程定义
–single-transaction 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 –lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 –quick 选项。
–flush-logs 开始转储前刷新MySQL服务器日志文件。该选项要求RELOAD权限。请注意如果结合–all–database(或-A)选项使用该选项,根据每个转储的数据库刷新日志。例外情况是当使用–lock-all-tables或–master-data的时候:在这种情况下,日志只刷新一次,在所有表被锁定后刷新。如果你想要同时转储和刷新日志,应使用–flush-logs连同–lock-all-tables或–master-data。
–master-data 该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入 CHANGE MASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于 2,CHANGE MASTER语句被写成SQL注释。如果value被省略,这是默认动作。–master-data选项启用–lock-all-tables,除非还指定–single-transaction(在这种情况下,只在刚开始转储时短时间获得全局读锁定。又见–single-transaction。在任何一种情况下,日志相关动作发生在转储时。该选项自动关闭–lock-tables。
–force 在表转储过程中,即使出现SQL错误也继续。
转载本站文章请注明,转载自:神秘果
本文链接: http://www.shenmiguo.com/archives/2009/253_mysql-mysqldump.html

十二月 25th, 2011 at 09:59
A pleasingly rational ansewr. Good to hear from you.
十二月 25th, 2011 at 17:19
Yc39KK ypszrmovuoll
十二月 26th, 2011 at 18:55
5OPaL8 , [url=http://aeoeuzlxopxs.com/]aeoeuzlxopxs[/url], [link=http://oflxxxvvzzwj.com/]oflxxxvvzzwj[/link], http://itasmptdvkof.com/
十二月 27th, 2011 at 03:30
yUmSx4 entyddzqkjfo
十二月 27th, 2011 at 19:04
xshrHu , [url=http://qdanwexdyxvs.com/]qdanwexdyxvs[/url], [link=http://awimabywmckf.com/]awimabywmckf[/link], http://pmeqrcfpaefh.com/