mysqldump 导出表结构及表数据

一: mysqldump 的核心参数

--single-transaction:用于保证innodb备份数据时的一致性,配合RR隔离级别一起使用,当发起一个事务时,会读取当前的数据快照,直到备份结束,都不会读取到本事务开始之后提交的数据

--master-data:该参数为1时,表示备份出来的文件中添加一个CHANGE MASTER语句,该值为2时,表示会在CHANGE  MASTER命令前端增加注释信息

--dump-slave:该参数用于在从库端备份,在线搭建新的从库时使用。该参数也有两个值1和2,该参数为1时,表示备份出来的文件中添加一个CHANGE MASTER语句,该值为2时,表示会在CHANGE  MASTER命令前端增加注释信息

 

二:数据导出

1:mysql到处数据库中某张表结构
mysqldump -u $user -p -d $databasename $tablename > $databasename.sql

2:mysql 导出某个数据库里面的所有表的结构
mysqldump -u $user -p -d $databasename > $databasename.sql

3、导出某个数据库中所有表结构及表数据(不加-d)
mysqldump -u $user -p $databasename > $databasename.sql;

4、导出某个数据库中某张表结构及表数据(不加-d)
mysqldump -u $user -p $databasename $tablename > $databasename.sql;

5: 导出整个实例

mysqldump -u $user -p --all-databases > all_database.sql

三:数据导入

# 导入指定SQL文件 (指定导入testdb库中)
mysql -u $user -p testdb < testdb.sql

为了快速导入脚本,临时修改以下两个参数

1:innodb_flush_log_at_trx_commit

innodb_flush_log_at_trx_commit默认值为1,可设置为0、1、2 。如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。

2:sync_binlog

sync_binlog默认值为1,可设置为[0,N)当sync_binlog =0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。

这两个参数可以在线修改,案例如下:

1):进入MySQL命令行 临时修改这两个参数
set global innodb_flush_log_at_trx_commit = 2;
set global sync_binlog = 2000;

set sql_log_bin=0;(新建从库或不需要产生binlog时导入SQL脚本可以设置暂时不记录binlog,可以在脚本开头增加 set sql_log_bin=0; 然后再执行导入,这样速度会进一步加快)

2): 执行SQL脚本导入
mysql -u $user -p testdb < testdb.sql

3):导入完成 再把参数改回来
set global innodb_flush_log_at_trx_commit = 1;
set global sync_binlog = 1;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值