mysql dump -e_mysqldump使用介绍

mysqldump使用介绍分为使用示例和配置项两部分。其中第二块和第三块都是性能优化的选项。

1. 使用示例#备份整个库

shell> mysqldump db_name > backup-file.sql

#从dump文件还原数据方式一

shell> mysql db_name 

#从dump文件还原数据方式二

shell> mysql -e "source /path-to-backup/backup-file.sql" db_name

#使用mysqldump从一个库复制数据导另外一个MySQL服务器

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

#导出多个数据库

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

#导出所有数据库

shell> mysqldump --all-databases > all_databases.sql

#针对InnoDB表的在线备份。这种方式要求在开始导出时有一个所有表的全局读锁(使用FLUSH TABLES

WITH READ LOCK)。

shell> mysqldump --all-databases --master-data --single-transaction >

all_databases.sql

2. 性能优化选项

1. --extended-insert, -e:使用包含多个值得多行语法生成INSERT语句。这会缩小dump文件得体

积,并且在加快dump文件的insert操作。

2. --insert-ignore:使用INSERT IGNORE语句,而不是INSERT语句。

3. --max-allowed-packet=value:客户端和服务端通信的最大缓冲大小。默认是24MB,最大是

1GB。

4. --net-buffer-length=value:客户端和服务端通信的初始大小。当创建多行INSERT语句时,

mysqldump创建最多--net-buffer-length字节长度的行。如果你增加这个变量MySQL服务器的

net_buffer_length系统变量的值至少比这个大。

5. --opt:这个选项,默认开启,是 --add-drop-table --addlocks

--create-options --disable-keys --extended-insert --lock-tables --quick

--set-charset 组合的简写。它能快速的dump,并且生成的dump文件能够被较快的加载的

MySQL服务器。

6. --quick, -q: 这个选项对导出大表有用。

3. 事务选项

下面选项要平衡导出操作的性能,依赖于被导出数据的可靠性和一致性。

1. --add-locks:对于每个表的dump,环绕一对LOCAK TABLES 和UNLOCK TABLES语句。这会让导

出的文件被加载时,写入速度更快。

2. --lock-all-tables, -x:锁住所有库的所有表。这通过在整个dump期间获取一个全局读锁完成。这

个选项自动关闭--single-transaction 和 --locktables。

#备份整个库

shell> mysqldump db_name > backup-file.sql

#从dump文件还原数据方式一

shell> mysql db_name < backup-file.sql

#从dump文件还原数据方式二

shell> mysql -e "source /path-to-backup/backup-file.sql" db_name

#使用mysqldump从一个库复制数据导另外一个MySQL服务器

shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

#导出多个数据库

shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

#导出所有数据库

shell> mysqldump --all-databases > all_databases.sql

#针对InnoDB表的在线备份。这种方式要求在开始导出时有一个所有表的全局读锁(使用FLUSH TABLES

WITH READ LOCK)。

shell> mysqldump --all-databases --master-data --single-transaction >

all_databases.sql

3. --lock-tables, -l: 对于每个要导出的数据库,在导出它们前,锁住所有要被导出的表。对于支持事

务的表,--single-transaction选项比--lock-tables好很多,因为它不根本不需要锁住所有表。因为-

-lock-tables单独的锁住每个库的表,这个选项部保证在导出文件中的表在数据库之间是逻辑上一

致。在不同数据库中的表可能是完全不同的导出状态。

4. --no-autocommit:使用SET autocommit = 0 和 COMMIT封闭每个被导出的表的INSERT语句。

5. --single-transaction:对于支持事务的表有用,保证导出一致的状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值