课程名称
课程目录
- 体系结构
- 配置文件与参数
- 逻辑备份
- 物理备份
- 预写日志
- 数据库事务
- 并发控制
- 高可用集群
- 执行计划
- 数据库优化–索引
- 统计信息与常用数据字典
- KES的Oracle兼容特性
课程笔记
05 预写日志
- WAL(write ahead log)预写日志式简介
- change、commit、checkpoint发生时
- 中心思想:先写入日志文件,再写数据
- wal buffer、data buffer
- 顺序写
- 基本术语
- Write Ahead Log/Redolog
- WAL segment file(默认16M)
- XLOG Record
- WAL buffer
- Log Sequence Number
- checkpointer
- checkpoint
- REDO point
- WAL优化
- 参数
- min_wal_size:防止wal暴增
- wal_level:Minimal(实例恢复)< replica(备份恢复) < logical(逻辑解码)
- synchronous_commit:单实例环境、流复制环境
- checkpoint频繁时WAL FPI会导致写放大
- checkpoint_timeout
- max_wal_size
- wal_compression
- WAL堆积
- 清理文件
- 调整参数
- wal_keep_segments
- 参数
- WAL segment file文件名
- 前八位为时间线ID
- 中八位为逻辑文件ID
- 后八位为物理文件ID
06 数据库事务
- 事务的特点
- 事务内的语句要么全部执行成功,要么全部执行失败
- 事务控制语句(TCL)
- 分布式事务
- 关系型数据库ACID
- 原子性(Atomic)(特征)
- 一致性(Consistency)(目的)
- 隔离性(Isolation)(特征)(场景复杂)
- 持久性(Durability)(特征)
- 事务ID(TXID)
- 事务标识
- txid是一个32位的无符号整数
- 特殊事务id:0/1/2
- 回卷
- (t_xmin, t_xmax)来标示可用性
- t_xmin ,产生这个元组的事务ID
- t_xmax ,删除或者锁定这个元组的XID
- XID回卷问题
- 冻结
- 数据库在32位事务号的情况下,freeze操作要经常做的。(阈值)
- 自动/手动执行vacuum涉及系统级参数和表级参数
- freeze风暴预测
- 虚拟事务
- 对没有实质变更的事务,只分配虚拟事务ID,不分配事务ID,不占用2bit的空间。
- 事务标识
- 事务提交与回滚
- 只读事务
07 并发控制
- 并发控制概述
- 四种异常:丢失修改,幻读/虚读,脏读,不可重复读
- 隔离级别
- 隔离级别 | 脏读 | 不可重复读 | 幻读
- Read uncommitted | O | O | O
- Read committed | X | O | O
- Repeatable Read | X | X | O
- Serializable | X | X | X
- 隔离级别的实现技术
- 封锁
- 时间戳
- 乐观控制
- 多版本控制
- MVCC
- dead rows
- vacuum
- 证明
- read committed 看其它事务未提交的行
- read committed 会出现不可重复读
- repeatable read 能避免不可重复读
- 事务的可见性(快照隔离)
- DELETE保留旧记录
- UPDATA增加新行
- 锁
- spinlock 自旋锁
- LWLock 轻量级锁:封锁共享内存中的数据结构
- lock/locallock 重量级锁
- 封锁粒度:表/索引,行,块
- 基本锁类型:排它锁/X锁,共享锁/S锁
- 锁
- KES的表级锁及其冲突
- KES的行级锁(行级锁不影响查询)及其冲突
- 事务、行与冲突的锁
- 锁故障
学习资料
欢迎各位同学一起来交流学习心得!
最后修改时间:2022-07-11 14:54:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




