mysql ddl备份_MySQL备份与恢复

一、备份与恢复

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

MySQL备份与恢复

备份

备份方式

是否停业务

冷备:停掉业务或DB进行备份(copy、rsync)

热备:不停业务的情况下进行备份

逻辑备份:导出SQL脚本进行备份

mysqldump:只支持单线程工作

mysqlpump:并行的最小粒度是单个数据库对象,对于每张表的导出只能是单个线程的

mydumper:支持对单表多个线程备份,参数-rselectinto outfile

物理备份:通过拷贝文件进行备份

xtrabackup+binlog

是否拷贝所有数据

全量备份:某一时刻整个数据库快照

增量备份:首次增量基于全量,后续增量可选择基于全量/增量

保存位置

本地备份

远程备份

备份原理

mysqldump、mysqlpump、mydumper、xtrabackup备份原理

InnoDB Crash Recovery

MySQLD Crash Recovery和InnoDB Crash Recovery的区别

redo大小调整:5.6以上直接修改my.cnf;5.6以下在apply-log前修改backup-my.cnf中的innodb_log_file%DML、DDL操作对备份的影响

DML操作可能导致mysqldump、mysqlpump备份的non-InnoDB表不一致

DDL操作可能导致InnoDB表开启一致性快照事务之后,如果表结构定义发生改变,事务将无法对该表执行查询

备份方案选择

数据量小:逻辑备份

数据量大:xtrabackup+binlog,日常备份使用方案

恢复

备份时刻恢复

物理备份->copy-back;逻辑备份->mysql、myloader、source

任意时间点恢复

binlog2sql实现对误操作的闪回

全备+mysqlbinlog

高级技术

原始节点做master,恢复节点做slave

copy binlog2 relay-log利用sql_thread应用日志

binlog伪装成master,利用io_thread读取日志恢复

View Code

76e3724d889c0aa73d01e94f413617e7.png

对于数据量超大的情况,建议结合Delayed Replication。其实最好是做分库分表,控制单实例的大小●-●

二、备份参考

2.1、txt、csv导出导入

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1、备份生成文本1.1、mysqldump -T

mysqldump-T 批量导出表结构 tablename.sql(对应逻辑show create table)和数据文件 tablename.txt(对应逻辑select into outfile)

mysqldump-h127.0.0.1 -P3306 -umydba -p123456 --skip-lock-tables sbtest sbtest1 -T /tmp/

1.2、selectinto outfile

mysql> select * from sbtest.sbtest1 into outfile '/tmp/sbtest1.csv';

注意上面两种方式目标路径要和 secure_file

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值