首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
数据库事件机制
返回列表
发新帖
数据库事件机制
[复制链接]
发表于 2026-3-3 23:01:55
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
数据库
事件机制
功能
先容
1.事件
功能
作用
[code]
功能
作用:事件功能重要是包管
数据库
中数据的
安全
性事件机制:ACID具体ACID参考链接:https://dev.mysql.com/doc/refman/8.4/en/mysql-acid.htmlA: atomicity(原子性)在一个事件中,做的全部语句操纵,要么都乐成,要么都失败,不能有部分乐成部分失败的情况银行转账 账户A -100-> 账户B账户表中账户名称 账户金额账户A 500账户B 0update 账户表 set 账户金额=账户金额-100 where 账户名称='账户A'; 400元update 账户表 set 账户金额=账户金额+100 where 账户名称='账户B'; 100元C: consistency (划一性)在一个事件处理惩罚数据过程中,
数据库
正常运行或数据库出现非常重启后,数据信息要包管划一性银行转账 账户A -100-> 账户B update 账户表 set 账户金额=账户金额-100 where 账户名称='账户A'; update 账户表 set 账户金额=账户金额+100 where 账户名称='账户B';select * from 账户表;账户名称 账户金额账户A 400账户B 100commit; -- 将内存查察信息生存到磁盘(主动提交/手动提交)重启数据库账户名称 账户金额账户A 500账户B 0doublewrite buffer -- 双写缓冲区/双写文件中(#ib_16384.dblwr)mysql
存储
数据过程中:须要处理惩罚的数据都会加载到内存中内存地区 磁盘地区账户A 400 账户A 500 -- page01账户B 100 账户B 0page01page01 16kB block-01 4kB block-02 4kB 数据库历程克制了 page01 - 16KB -- 坏页 .. block-04 4kBpage01 16kB 4KB 4KB 4KB 4KB -- doublewrite buffer -- #ib_16384.dblwr (完备内存中16KB数据信息) page01 - 16KB -- 坏页数据库非常克制,再次重新启动时,会主动触发劫难规复机制(InnoDB crash recovery)加载磁盘中大概存在坏页: page01 - 16KB -- 坏页 -- 修复坏页 -- 加载#ib_16384.dblwr 将双页文件中数据修复到坏页中I:Isolation (隔离性)在一个事件中应用隔离特性,重要用于包管事件的操纵过程,不会受到其他事件对类似数据操纵的影响银行转账 账户A -100-> 账户B 账户A - 500 -> 账户C 事件01 账户A -100-> 账户Bupdate 账户表 set 账户金额=账户金额-100 where 账户名称='账户A'; 账户A - 行 Row Lock -- unLockupdate 账户表 set 账户金额=账户金额+100 where 账户名称='账户B';commit;事件02 账户A - 500 -> 账户Cupdate 账户表 set 账户金额=账户金额-500 where 账户名称='账户A'; 账户A - 行 壅闭update 账户表 set 账户金额=账户金额+500 where 账户名称='账户C';-- 可以应用锁机制(写辩论题目)和隔离级别设置(读辩论题目)确保并行事件操纵类似数据不会产生辩论D: durability (长期性)事件长期特性,重要是用于包管当数据库内存中没有生存到磁盘的数据开释后,可以有用举行内存数据规复mysql
存储
数据过程中:须要处理惩罚的数据都会加载到内存中内存地区 磁盘地区账户A 400 账户A 500 -- page01账户B 100 账户B 0page01数据库克制了 (没有做双写操纵 没有将数据写入磁盘)内存地区 磁盘地区账户A 400 账户A 500 -- page01账户B 100 账户B 0page01update 记录信息 -- redo文件(记录对数据页中数据的操纵信息) page01 账户A 500->400 账户B 0->100commit 内存地区 磁盘地区 账户A 500 -- page01 账户B 0数据库非常克制,再次重新启动时,会主动触发劫难规复机制(InnoDB crash recovery)会加载redo文件信息 根据redo文件中数据页信息和磁盘中对应数据页数据对对比redo page01 (LSN信息做对比 01 LSN=200) 磁盘 page01 (LSN信息做对比 01 LSN=100)账户A 500->400 400 账户A 500账户B 0->100 100 账户B 0将磁盘中原有数据页重新加载到内存中,并根据redo文件中的操纵记录,重新对数据信息举行处理惩罚内存地区
回复
使用道具
举报
返回列表
浏览过的版块
网络安全
诗林
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表