mysql数据备份与导入(一)

1.备份概述:

     备份:能够防止机械故障以及人为操作失误带来的数据丢失,例如将数据库文件保存在其他地方。

     冗余:数据有多份冗余,但不等于备份,只能防止机械故障带来的数据丢失,例如主备模式、数据库集群。

1.备份内容:

      1.数据文件

      2.配置文件  =》 my.cnf

      3.日志文件(主要是二进制文件)

 2.扩展:mysql体系结构

1.存储引擎层(MYISAM与INNODB区别):

    MYISAM:查询速度快,支持表级锁,支持全文索引

    INNODB:支持事务,支持行级锁,支持外键

2. 存储层(MYISAM与INNODB区别):

      MYISAM 在data目录对应数据库里生成三个文件

     .frm :表结构框架文件

     .MYD:表数据文件

     .MYI:表索引文件

       INNODB在该目录下生成两个文件并且在data目录下生成了一个文件

      .ibd  :表索引以及表数据文件  

     ibdata1:此文件是innodb引擎生成的数据库中所有表的共享的一个公共文件

综上:MYISAM可以直接保存以上三个文件去做备份  ,INNODB不可以,需要专业工具去做备份

2.日志文件

此处主要记录两种类型:

error错误日志:存放数据库的启动,停止或运行时的错误信息 ,一般存放在/data下  文件名为    主机名.err或者mysql.err

binlog二进制日志:1.记录数据库的所有更改操作,2.主要应用于主从复制中,master将二进制日志中的更改操作发送个slave,保证主从一致。3.其次可以用于数据恢复,4.默认关闭 5.通过

2.备份必须考虑的因素

 3.备份类型

 4.备份方法

全量备份:备份所有数据

增量备份:基于全量备份,备份变化部分

 5.mysql逻辑备份

1.mysql表级备份

    导出的是sql语句文件,优点是无论什么引擎都可以使用mysqldump备成sql文件,缺点就是速度慢不支持增量备份,导入时可能格式不兼容

基本语法:

单表备份

mysqldump 数据库名 表名 > 目标路径线下的备份文件 -p 密码

单表恢复

mysql 数据库名 < .sql文件位置  -p 密码
或者进入mysql某个库中
source sql文件路径

2.mysql库级备份

mysqldump --databases  库名 > 备份文件全路径 -p 密码

还原与单表一样

3.mysql全库备份

前提:需要开启二进制日志

 语法

mysqldump --all-databases  --master-data --single-transaction > 备份文件全路径 -p 密码

还原:

mysql < 备份文件  -p 密码

4.mysqldump  + binlog实现增量备份

核心思路:1.要有全量备份 2.增删查该数据 3.再次需要备份时,不需要进行全量备份,只需要备份binlog日志文件即可(binlog记录数据库增删改的所有sql)

1.准备数据,开启二进制日志(默认关闭)

2.做全量备份

mysqldump --all-databases  --master-data=2 --flush-logs --single-transaction > 备份文件全路径 -p 密码

加入--flush-logs 参数刷新了二进制日志文件(刷新后的二进制文件记录此次全量备份后的增删改sql记录)

3.做完备份后做增删改操作

4.模拟故障(类似于删库)

drop database 库名

5.立即备份二进制binlog文件,并全库恢复(此时恢复的不全)

1.复制二进制文件
cp binlog路径/binlog.00001.log  目标路径
2.全库恢复(此时恢复的不全)
mysql < 备份文件  -p 密码

6.通过binlog增量备份

先分析 mysqlbinlog  binlog文件 ,如下图at对应的数值是备份后对数据库操作的起始位置,寻找事故位置对应的临界点的at数值(可根据故障时间或者drop类似的操作来判断)

还原方法:

mysqlbinlog --start-position=4 --stop-position=xxx 备份文件 |mysql -p 密码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值