DAY09 - MySQL备份与恢复
基础章节-01-MySQL数据库服务中级课程 1.00 课程知识章节说明 目前在互联网的实际应用中,各个企业都会比较关注自身网站的数据信息,既要保证数据信息的安全性,同时也要保证数据存储读取效率 并且在特殊的场景下,还要对存储的数据信息进行检索和分析;因此数据库服务业务已经在各行各业应用非常的广泛 对于互联网领域的技术人员,对于数据库服务知识的掌握,也将是在求职时必备的技能,有些时候还会绝对入职的定级和薪资水平。 1.10 数据库服务事务知识 1.10.1 数据库存储事务机制概念 事务(Transaction)可以更通俗的理解为交易,所以事务会伴随着交易类的业务类型出现的概念(工作模式); 现实生活中存在很多的交易行为,比如:物换物的等价交换、货币换物的等价交换、虚拟货币换物(虚拟物品)的等价交换; 因此就需要考虑如何保证现实生活中交易过程的和谐,一般会有法律、道德等方面规则进行约束; 而在数据库服务中为了保证线上交易的"和谐",便加入了"事务"工作机制 1.10.2 数据库存储事务机制特性 在数据库服务中引入事务机制概念,主要是为了应用事务机制的相关特性处理安全一致性问题,其中事务机制主要包含的特性有: 特性一:原子性(Atomicity) 原子性表示一个事务生命周期中的DML语句,要么全成功要么全失败,不可以出现中间状态; 语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的;实现主要基于undo log 1 Begin:DML01 DML02 DML03 Commit; 特性二:一致性(Consistency) 一致性表示一个事务发生前、中、后,数据都最终保持一致,即读和写都要保证一致性; 事务追求的最终目标,一致性的实现既需要数据库层面的保障,也需要应用层面的保障; 1 CR + Double write 特性三:隔离性(Isolation) 隔离性表示一个事务操作数据行的时候,不会受到其他事务的影响,主要利用锁机制来保证隔离性; 特性四:持久性(Durability) 持久性表示一旦事务进行了提交,即可永久生效(落盘) 保证事务提交后不会因为宕机等原因导致数据丢失;实现主要基于redo log 事务ACID相关知识官方说明:https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html 1.10.3 数据库存储事务生命周期 在运用事务机制完成相关工作任务时,对于事务使用是存在生命周期概念的,标准显示的事务生命周期控制语句有: 1 2 3 4 5 6 7 # 开启事务机制 begin; start transaction; # 提交事务任务 commit; # 回滚事务操作 rollback; 说明:事务生命周期中,只能使用DML语句,其中包括:select、update、delete、insert;DDL语句会隐式进行提交 事务的生命周期操作演示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # 进行测试数据库查询数据 mysql> use world; mysql> select * from city limit 10; # 进行测试数据库数据撤销修改 mysql> begin; mysql> update city set population=10 where id=1; mysql> update city set population=10 where id=2; -- 由于是采用事务进行的修改,所以只是在内存层面进行的修改,并没有对磁盘上的数据进行修改; mysql> select * from city limit 10; -- 由于是采用事务进行的修改,此时看到的数据信息只是内存层面的修改信息 mysql> rollback; -- 由于是采用事务进行的撤销,会读取undo文件信息,将事务操作撤回到事务开始前的状态 mysql> select * from city limit 10; -- 由于是采用事务进行的修改,当撤销操作执行完,看到数据信息还是原来的; # 进行测试数据库数据永久修改 mysql> begin; mysql> update city set population=10 where id=1; mysql> update city set population=10 where id=2; -- 由于是采用事务进行的修改,所以只是在内存层面进行的修改,并没有对磁盘上的数据进行修改; mysql> select * from city limit 10; -- 由于是采用事务进行的修改,此时看到的数据信息只是内存层面的修改信息 mysql> commit; -- 由于是采用事务进行的提交,会加载redo文件信息,将事务内存层面的修改同步到磁盘中(完成了D特性) mysql> select * from city limit 10; -- 由于是采用事务进行的修改,当执行操作执行完,看到数据信息将永久保存下载; 1.10.4 数据库存储事务提交方式 方式一:在事务生命周期管理过程中,事务的提交机制可以采用自动提交方式(auto_commit) 事务自动提交方式作用说明: 事务自动提交表示在没有显示的使用begin 语句的时候,执行DML操作语句时,会在DML操作语句前自动添加begin ; 并在DML操作语句执行后自动添加commit ; 在生产环境中,若处于频繁事务业务场景中,建议关闭autocommit自动提交功能,或者每次事务执行的时候; 都进行显示的执行begin 和commit 事务自动提交方式参数信息: ...