1.2 核心术语与定义


1.2 核心术语与定义

本节摘要:Oracle 术语体系的第一原则是区分"运行时"与"持久化"两个世界——实例属于运行时,数据库属于磁盘;内存分 SGA 与 PGA,存储分逻辑与物理两层。本节用一张术语关系图把这套词表对齐,并用数据字典查询把每个词落到可验证的对象上。

从一对最容易混的词开始

新人接手 Oracle 的第一周,几乎都会被老 DBA 一句话敲打:"实例不是数据库。"这句话值得展开。**数据库(Database)**是磁盘上那堆物理文件的集合:数据文件、控制文件、在线重做日志——断了电它也在。**实例(Instance)**是运行时的进程加内存:一组后台进程和一块共享内存 SGA——重启就清零重建。实例打开数据库,两者配合才有服务;单机环境一对一,RAC 环境多个实例共享同一个数据库。这个区分不是咬文嚼字:值班时"实例崩了"和"数据库坏了"是两种完全不同量级的事故,前者重启即恢复,后者可能要动备份。

术语分层全景

一、逻辑存储:从表到字节的五层楼

磁盘上的数据文件是哑巴,真正给数据编址的是逻辑结构。Oracle 从大到小分五层:表空间(Tablespace)是最大的逻辑容器,一个数据库由若干表空间组成;表空间往下是段(Segment)——一张表、一个索引各占一个段;段往下是区(Extent),一次连续分配的若干块;最底层是块(Block),Oracle 最小 I/O 单元,默认 8KB。这栋"五层楼"的价值在于:容量告警时你知道该去找谁(表空间),碎片整理时你知道对象在哪一层(段与区),I/O 调优时你知道最小读写单位(块)。

几个容易混的邻居词也要对齐:模式(Schema)与用户(User)——Oracle 里两者一体,建用户即建模式,模式是该用户所有对象的集合;表空间与数据文件——一对多的包含关系,表空间是账本目录,数据文件是账本本身;UNDO 与 REDO——名字像反义词,职能也像:UNDO 记"怎么撤销"供回滚与一致性读,REDO 记"怎么重做"供崩溃恢复,方向相反、缺一不可。

术语对 一句话区分 值班含义
实例 vs 数据库 运行时的进程内存 vs 磁盘上的文件集合 实例崩了重启,数据库坏了才动备份
SGA vs PGA 全局共享内存 vs 会话私有内存 SGA 命中率影响全库,PGA 不足拖慢排序
表空间 vs 数据文件 逻辑容器 vs 物理载体 扩容加数据文件,清理删段释放空间
UNDO vs REDO 怎么撤销 vs 怎么重做 UNDO 异常影响回滚与一致读,REDO 丢失影响恢复
CDB vs PDB 容器库 vs 可插拔库 多租户下故障域按 PDB 隔离(详见第 8 章)

二、案例:把术语换成可执行的检查

背景。 新人小周接手一套交接文档残缺的库,老 DBA 只留下一句"存储够用到年底吗"。术语不清的人会去翻操作系统磁盘——那是错的楼层。

操作。 小周按五层楼自上而下查:

-- 楼顶:表空间水位(回答"够不够"的正确楼层) SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024/1024, 1) AS total_gb, ROUND(SUM(bytes - NVL(free_bytes,0))/1024/1024/1024, 1) AS used_gb FROM ( SELECT t.tablespace_name, t.bytes, (SELECT SUM(f.bytes) FROM dba_free_space f WHERE f.tablespace_name = t.tablespace_name) AS free_bytes FROM dba_data_files t) GROUP BY tablespace_name; -- 楼层明细:哪些段在吃空间(前 10 名) SELECT owner, segment_name, segment_type, ROUND(bytes/1024/1024/1024, 2) AS size_gb FROM dba_segments ORDER BY bytes DESC FETCH FIRST 10 ROWS ONLY; -- 地基:块大小与块数量 SELECT block_size, ROUND(block_size * COUNT(*)/1024/1024/1024, 1) AS db_gb FROM v$datafile d JOIN v$parameter p ON p.name='db_block_size' GROUP BY block_size;

结果。 十分钟内答案落地:报表表空间一个历史分区段占 1.8TB,业务增长其实是它无限膨胀,加磁盘属于治标。解读。 术语分层决定了排查路径——不知道"段"这个概念的人会在表空间层面止步,得出"容量不够、申请扩容"的错误结论。变式。 若查询发现的是 UNDO 表空间暴涨,路径则转向事务分析(找长事务,见第 3 章),与容量治理无关。同一套词表,指向完全不同的处置手册。

三、数据字典:术语的官方登记处

Oracle 把自身元数据也存成了表——数据字典。前缀是它们的门牌:USER_ 开头看你自己的,ALL_ 开头看你有权看的,DBA_ 开头看全库的(需权限),V$ 开头是运行时动态视图。背术语不如用术语:

-- 我有哪些表(USER_ 前缀,无需写 owner) SELECT table_name, num_rows, last_analyzed FROM user_tables ORDER BY num_rows DESC; -- 这个库有什么组件在工作(V$ 前缀,运行时真相) SELECT name, value/1024/1024 AS sga_mb FROM v$sga; -- 表空间与数据文件的包含关系(DBA_ 前缀,全库视角) SELECT t.name AS tablespace, d.name AS datafile, ROUND(d.bytes/1024/1024/1024, 1) AS size_gb FROM v$tablespace t JOIN v$datafile d USING (ts#) ORDER BY t.name;

跑一遍这三段查询,五层楼、两个世界、三种前缀就不再是名词,而是你机器上真实存在的对象。本节要点回顾

  • 两个世界:实例(进程+SGA,运行时)与数据库(文件集合,持久化),RAC 是多实例共库。
  • 五层逻辑楼:表空间、段、区、块自上而下;块是最小 I/O 单元,表空间是容量治理对象。
  • 三对高频混淆:UNDO 撤销/REDO 重做、模式与用户一体、CDB 容器/PDB 租户。
  • 数据字典前缀:USER_ 自己的、ALL_ 可见的、DBA_ 全库的、V$ 运行时的——查真相先选对楼层。

术语对齐之后,下一节回到那张续约评估单的最后一栏:把 Oracle 和它的对手们放到同一张桌子上。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U