• MySQL学习笔记18


    MySQL的备份与恢复:

    制定数据库备份策略进行备份,并且把数据导入到测试环境。

    核心技术:

    1)掌握MySQL的备份工具使用及各自特点;

    2)熟悉Shell脚本;

    3)熟悉MySQL数据的导入导出;

    场景任务:

    对重要数据做好备份,是我们每个运维人员和DBA的重要职责,备份只是一种手段,我们最终目的是当数据出问题的时候能及时通过备份进行恢复,所以,现在需要对MySQL数据库进行备份策略的制定和实施。

    任务要求:

    1)选择合适的工具和方法对MySQL数据库进行备份。

    2)编写脚本实现自动化备份。

    课程目标:

    1)了解MySQL常见的备份方法和类型;

    2)能够使用mysqldump工具进行数据库的备份。如全库备份、库级别备份、表级别备份。

    3)能够使用mysqldump工具+binlog日志实现增量备份。(高端一些)

    4)理解xtrabackup工具实现全库备份和增量备份的原理和方法。

    5)能够使用xtrabackup工具对数据进行全备和增备。

    MySQL备份概述:

    1、关于数据保存你要知道的:

    思考:数据备份和数据冗余的区别:

    数据备份:能够防止由于机械故障以及人为操作带来的数据丢失,例如将数据库中的数据导出成一个文件保存到其他地方。文件备份在某个地方,当服务器出现故障,我们第一时间把备份文件恢复到服务器中。

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

    主从架构,两个服务器,放着相同的数据,当主服务器出现故障的时候,立即调用从服务器。实时切换。这个叫冗余操作。

    理论上,数据备份和数据冗余都要有的。

    2、备份什么?

    数据库:一堆物理文件的集合;日志文件(二进制文件)+ 数据文件 + 配置文件。

    1)数据文件;

    2)配置文件;my.cnf

    3)日志文件(二进制日志文件)

    MySQL体系结构:

    连接池:数据库的连接,都先要连接到连接池; 用户身份认证、校验账号密码、权限等操作;

    查询缓存:缓存所执行的select语句以及该语句的结果集。第一次查询时间稍微长点,第二次查询时间就非常短。缓存还没有失效。缓存可以加快查询的速度。

    1. mysql> select * from tb_student;
    2. +----+-----------+------+--------+---------+
    3. | id | name | age | gender | subject |
    4. +----+-----------+------+--------+---------+
    5. | 1 | 孙行者 | 254 | 男 | ui |
    6. | 2 | 八戒 | 250 | 男 | python |
    7. | 3 | 唐僧 | 30 | 男 | yunwei |
    8. | 4 | 沙僧 | 150 | 男 | java |
    9. | 5 | 小白龙 | 100 | 男 | yunwei |
    10. | 6 | 白骨精 | 28 | 女 | ui |
    11. | 7 | 兔子精 | 22 | 女 | yunwei |
    12. | 8 | 狮子精 | 33 | 男 | yunwei |
    13. +----+-----------+------+--------+---------+
    14. 8 rows in set (0.00 sec)

    分析器:词法分析、语法分析;主要是判断sql语句是否正确,是否符合MySQL的语法。

    优化器:选择最优的执行方案去执行器中执行。select有很多执行方式。加快数据的查询。

    执行器:检查用户权限、如果有权限,就去调用引擎接口,返回接口的执行结果。

    存储引擎层:InnoDB、MyISAM、NDB...在MySQL中,我们可以使用show engines查看当前数据库版本支持哪些引擎。

    简单来说,存储引擎就是数据在底层的存储方式。比较常见的是InnoDB和MyISAM。

    存储引擎层:

    MySQL的MyISAM和InnoDB引擎的区别:

     MyISAM引擎:擅长数据的查询操作,支持全文索引;

    InnoDB引擎:支持事务处理,支持行级锁,支持外键;

    CID字段,是分类表的主键、产品表的从键。关联删除。代码的方式进行关联操作。

    备份的时候主要是围绕这两个引擎进行的。

    MEMORY: 基于Hash,存储在内存中,临时不常用的放在临时表中。

    BLACKHOLE:5.7版本出现这个引擎。/dev/null, 写到这个里面的数据都会消失。

    存储层(数据文件和日志文件)

    问题:存储引擎到底是如何保存数据文件的。

    1. mysql> create database db_itheima default charset=utf8;
    2. Query OK, 1 row affected (0.00 sec)

    提出问题:我能不能不进入MySQL终端,然后在命令行中直接创建一个数据库呢?-e

    MyISAM引擎: 

    db_itheima: 数据库文件夹。创建一个数据库,就生成一个数据库文件夹。

    db.opt 存放的是数据库的编码格式。

     

    MyISAM引擎会生成三个文件。

    .frm: 框架文件,定义数据表结构。

    .MYI  索引文件INDEX:主要用于存放索引文件。目录索引、主键索引。

    .MYD 数据文件。

    把三个文件备份下,找个位置可以还原的。这个机制比较简单。

    InnoDB引擎(默认引擎):

    1. mysql> create table tb_user (
    2. -> id int,
    3. -> name char(1)
    4. -> )engine=innodb default charset=utf8;
    5. Query OK, 0 rows affected (0.01 sec)
    6. mysql> show create table tb_user;
    7. +---------+--------------------------------------------------------------------------------------------------------------------------+
    8. | Table | Create Table |
    9. +---------+--------------------------------------------------------------------------------------------------------------------------+
    10. | tb_user | CREATE TABLE `tb_user` (
    11. `id` int(11) DEFAULT NULL,
    12. `name` char(1) DEFAULT NULL
    13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    14. +---------+--------------------------------------------------------------------------------------------------------------------------+
    15. 1 row in set (0.00 sec)

    只产生了两个文件。.frm和.ibd 两个文件。

    .frm 框架文件,定义数据表文件。

    .ibd  索引文件+数据文件。

    其实InnoDB引擎不仅仅会产生以上两个文件,其在外部data目录中也会产生一个文件(确切来说不能叫做产生文件,而应该叫做共享文件)。

    所以由此可知,InnoDB引擎的数据备份不能简简单单的通过拷贝方式实现,必须使用专业的备份工具。

  • 相关阅读:
    太厉害了!华为大牛终于把 MySQL 讲的明明白白(基础 + 优化 + 架构)
    并查集代码模板
    Leetcode第21题:合并两个有序链表
    【数据挖掘】顺丰科技2022年秋招大数据挖掘与分析工程师笔试题
    Git教程
    数字通信世界杂志数字通信世界杂志社数字通信世界编辑部2022年第6期目录
    新的U-Net 网络结构
    从0开始python学习-25.selenium 下拉框、滚动、警告框、设置cookie信息
    七大基于比较的排序算法(JAVA)
    开源医疗大模型Llama3-Aloe-8B-Alpha,性能超越 MedAlpaca 和 PMC-LLaMA
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/133351668