zoukankan      html  css  js  c++  java
  • MySQL(四)数据备份与还原

    数据备份与还原:

      备份:将当前已有的数据或者记录保留

      还原:将已经保留的数据恢复到对应的表中

      为什么要做备份还原:

        1、防止数据丢失:被盗、误操作

        2、保护数据的记录

      数据备份还原的方式很多:数据表备份、单表数据备份、SQL备份、增量备份

      一、数据表备份:(不推荐使用)

        不需要通过SQL来备份,直接进入到数据库文件夹复制对应的表结构以及数据文件,以后还原的时候,直接将备份的内容放进去即可。(这种文件备份通常适用于myisam存储引擎:直接三个文件就可以了,innodb不行,识别不了。)

        有前提条件:根据不同的存储引擎有不同的区别;

        存储引擎:mysql进行数据的存储方式:主要有两种:innodb和myisam(因为这两种免费)

       

     对比myisam和innodb:数据存储方式

          innodb:只有表结构,数据全部存储到ibdata1文件中。

          myisam:表、数据和索引全部单独分开存储。(证明如下图)

     

      

      二、单表数据备份

        每次只能备份一张表,只能备份数据(表结构不可以备份)

        通常使用,将表中的数据进行导出文件。

        备份:

          从表中选出一部分数据保存到外部文件中。

          select */字段列表 into outfile 文件所在路径  from 数据源;  前提:外部文件不存在

         高级备份:自己自定字段和行的处理方式

        select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理  from 数据源;  前提:外部文件不存在

        fields:字段处理

          Enclosed by:字段使用什么内容包裹,默认是:空字符串

          Terminated by:字段以什么结束,默认是“ ”,tab键

          escaped by:特殊符号用什么方式处理,默认是“\”,使用反斜杠转义

        lines:行处理

          starting by:每行以什么开始,默认是空字符串;

          terminated by:每行以什么结束,默认是“ ”,换行符

    三、数据的还原

      将一个在外部保存的数据重新恢复到表中(如果表结构不存在,那么就恢复不了了)

      load data infile 文件所在路径 into table 表名【(字段列表)】 fields 字段处理 lines 行处理    ——怎么备份,怎么还原。

    四、SQL备份

      备份的SQL语句:系统会对表结构以及数据进行处理,变成对应的SQL语句,然后进行备份,还原的时候只要执行SQL指令即可(主要就是针对表结构)

      备份:mysql没有提供备份指令,但是可以利用mysql提供的软件:mysqldump.exe

      mysqldump.exe也是一种客户端,需要操作服务器,必须连接认证

      1、单表备份:

      mysqldump/mysqldump.exe-hPup 数据库名字 【数据表名字 1【数据表名字2……】】>外部文件目录(建议使用.sql)

      

      2、整库备份

      mysqldump/mysqldump.exe-hPup 数据库名字 >外部文件目录(建议使用.sql)

    五、SQL还原数据

      优缺点:

        优点:可以备份结构

        缺点:会浪费空间,会额外的增加SQL指令。

      1、使用mysql.exe 客户端还原

        mysql.exe/mysql-hPup 数据库名字 < 备份文件目录

      2、使用SQL指令还原

        source 备份文件所在路径

    六、增量备份(大的项目一般会用增量备份)

      不是针对数据或者SQL指令进行备份:是针对mysql服务器的日志进行备份

      增量备份:是指定时间段进行备份,备份数据不会重复,而且所有的操作都会备份。

  • 相关阅读:
    小端字节序与大端字节序
    V8引擎的垃圾回收策略
    TTL 和 DNS TTL 的区别
    详解 undefined 与 null 的区别
    Node.js 事件循环机制
    requestAnimationFrame 知多少?
    Web前端知识体系精简
    Vue.js 和 MVVM 小细节
    使用 Node.js 搭建 Web 服务器
    H5单页面手势滑屏切换原理
  • 原文地址:https://www.cnblogs.com/soft2018/p/10200573.html
Copyright © 2011-2022 走看看