一、数据库存储结构
二、逻辑和物理结构
三、段、区和块
四、表空间和数据文件
五、多租户容器数据库中的默认表空间
六、SYSTEM和SYSAUX表空间
1、SYSTEM和SYSAUX表空间是必需的表空间,创建于创建数据库的时间。必须在线
2、SYSTEM表空间用于核心功能(例如,数据字典表)
3、辅助SYSAUX表空间用于其他数据库组件。
4、SYSTEM和SYSAUX表空间不应用于应用程序数据。
七、段类型
八、如何存储数据
九、数据块内容
十、延时段
2、控制延时段创建
十一、监视表空间的使用情况
十二.1 内存部分
.1.1 系统全局区(SGA)
共享池(Shared pool)
o库缓存(共享sql区,Library cache)
o字典缓存(Data dictionary cache)
o结果集缓存(Server result cache)
数据库高速缓冲区缓存(Database buffer cache)
保留从数据文件读取的数据块的副本
块大小为8k、16k,不混用db_buffer_cache
重做日志缓存区(Redo log buffer)
包含重做条目
大池(Large pool)
Java池(Java pool)
流池(Streams pool)
2.1.2 程序全局区(PGA)
参数:pga_aggregate_target、 pga_aggregate_limit
栈区(Stack Space)
进行变量和变量值替换的区域
UGA(User Global Area,用户全局区)
o会话记录区:记录当前会话的情况和相关信息,并且保持会话
o游标记录区:这里的游标指的是SQL和PLSQL语言
私有SQL区
oSQL解析区
oSQL工作区:哈希区、排序区、位图区
SQL工作区其实很小,很容易就被使用完了,所以ORACLE在设计的时候使用临时表空间作为SQL工作区的补充。
十二.2 进程结构
2.2.1 用户进程
连接到Oracle数据库的应用程序或工具
如:SQLPLUS /SQLDEVELOPER
2.2.2 数据库进程
Server process(前台进程)
连接到Oracle实例,并与用户建立会话时启动
Background processes(后台进程)
启动Oracle实例时启动。
o
Database Writer Process (DBWn)
将db_buffer_cache中脏数据写入磁盘(异步、推进检查点)
触发条件:
1 脏数据块的总数超过一定的限度时
2 扫描空闲缓冲区时,进程会扫描指定数量的块 当找不到任何空闲时发生触发
3 每隔3秒钟启动一次DBWn
4 当表空间或者临时表空间OFFLINE时
5 将表空间置于只读模式READ ONLY
6 DROP 或TRUNCATE表时
7 当表空间发生BEGIN BACKUP时
8 发生CKPT检查点进程(包括增量检查点和完全检查点)
9 当进程在LRU相关链表上查找可以使用的空间时,如果链表长度过长或剩余空间不多时,会触发DBWn
10 数据库关闭时(不以shutdown abort形式)
o
o
Log Writer Process (LGWR) 日志写进程
将重做日志缓冲区写入磁盘上的重做日志文件
触发条件:
1 当用户进程提交事务时 (发生commit)立即写
2 发生联机重做日志切换时
3 当重做日志缓冲区的三分之一已满或包含1 MB的缓冲数据时
4 在DBWn进程将修改的缓冲区写入磁盘之前
5 自上次写入以来已过三秒钟
o
o
Checkpoint Process (CKPT) 检查点进程
记录检查点信息:控制文件、数据文件头
通知DBWn将脏块写入磁盘
触发条件:
1 当发生日志组切换的时候
2 当符合以下参数设置的时候:
LOG_CHECKPOINT_TIMEOUT
LOG_CHECKPOINT_INTERVAL
fast_start_io_target
fast_start_mttr_target
3 当执行以下任一操作时:
ALTER SYSTEM SWITCH LOGFILE
ALTER SYSTEM CHECKPOINT
alter tablespace XXX begin backup,end backup
alter tablespace ,datafile offline
4 当使用非shutdown abort命令关闭数据库时
o
o
System Monitor Process (SMON) 系统监控进程
-- 在实例启动时执行恢复
-- 清理未使用的临时段
o
o
Process Monitor Process (PMON) 进程监视进程
用户进程失败时执行进程恢复
-- 清理DB_BUFFER_CACHE
-- 释放用户进程使用的资源
监视会话以了解空闲会话超时
o
o
Recoverer Process (RECO) 恢复进程
与分布式数据库配置一起使用
自动连接到不确定分布式事务中涉及到的数据库
自动解决所有疑问事务
删除与不确定事务对应的所有行
o
o
Listener Registration Process (LREG) 监听进程
使用Oracle Net 监听并注册有关数据库实例和调度程序的信息
o
o
Archiver Processes (ARCn) 归档进程
日志切换后,将重做日志文件复制到指定的存储设备
收集事务重做数据并将该数据传输到备用目标,DG使用这个进程
o
Daemon / Application processes守护/应用程序进程
2.2.3 网络监听进程
Listener
2.2.4 网格基础设备守护程序
Grid Infrastructure daemons /ASM与RAC/
十二.3 存储结构
2.3.1 数据库存储结构
Control files、Parameter file、Password file
Data files、Backup files
Online redo log files、Archived redo log files
Alert log and trace files
2.3.2 逻辑和物理存储结构
Logical
Oracle data block(块)-->Extent (区)-->Segment(段)-->Tablespace(表空间)-->Database(库)
o块(Blocks)
数据块由多块磁盘块(文件系统块)组成。
o区(Extents)
区是数据块的集合。
o段(Segments)
段存在于表空间中。
段是区的集合。
Physical
Tablespace<--Data files-->Storage System (SAN/NFS/NAS/ASM/Exadata/RAW/File System)
2.3.3 表空间和数据文件
Tablespace 1(SMALLFILE)
Data block(8Kb)* 8 = Extent(64Kb)* 2 = Segment(128kb)
Tablespace 2 (Bigfile)
Data block(32Kb)
SYSTEM和SYSAUX表空间
SYSTEM和SYSAUX表空间是在创建数据库时创建的必需表空间,必须在线。
SYSTEM表空间用于核心功能(例如,数据字典表)。
SYSAUX表空间用于其他数据库组件。
SYSTEM和SYSAUX表空间不应用于应用程序数据。
2.3.4 ASM
是一种灵活的高性能集群文件系统ASM
管理Oracle数据库文件
可以使用ASM集群文件系统(ACFS)
管理应用程序文件和共享数据
跨磁盘分布数据以负载均衡
发生故障时使用镜像数据
解决存储管理难题(SAME难题)
SAME=条带和镜像一切
asm详解:待补充
2.4 内存中列存储
SGA中的新池:“内存中”列存储。
ORACLE数据库默认格式 行格式。
行转列:填充到IM(IN MEMORY)列存储中的段将转换为列格式。
内存中段在事务上与缓冲区高速缓存一致。
列存储发生事务时也是要使用DB_BUFFER_CACHE的。
内存中列存储:数据库12.1.02版本开始
即时查询响应
不需要大量的索引审计
完整的程序透明度
设置简单
2.5 Oracle Container(容器) Database
可插拔数据库(Pluggable database)是一组数据库schemas,但在逻辑上对用户和应用程序来说是一个单独的数据库。
Multitenant container database:在物理级别具有数据库实例和数据库文件
所有可插拔数据库共享:后台进程、共享进程内存、Oracle上的元数据
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




