当前位置: 首页 > article >正文

【Oracle数据库指南】第17篇:Oracle逻辑与物理存储结构——表空间、段、区、数据块全解析

上一篇【第16篇】Oracle连接模式与内存管理——专用服务器、共享服务器与AMM下一篇【第18篇】Oracle数据库规划与前期准备——创建数据库前的系统工作摘要本文系统讲解Oracle数据库的存储结构体系包括逻辑存储数据库→表空间→段→区→数据块与物理存储数据文件、控制文件、重做日志文件的对应关系以及各层级的管理方法。理解存储结构是数据库规划、容量管理和性能优化的基础。一、Oracle存储结构层次Oracle的存储结构分为两个视角逻辑结构DBA视角 数据库Database └── 表空间Tablespace └── 段Segment └── 区Extent └── 数据块Data Block 物理结构操作系统视角 数据文件Data Files ← 存储表、索引等数据 控制文件Control Files ← 存储数据库结构元数据 重做日志文件Redo Log Files ← 存储变更记录 归档日志文件Archive Log Files← 已轮转的重做日志 参数文件Parameter Files ← 实例启动参数二、逻辑存储结构2.1 表空间Tablespace表空间是Oracle逻辑存储的最高层次每个数据库对象表、索引等都属于某个表空间。-- 查看所有表空间SELECTtablespace_name,status,block_size,contents,-- PERMANENT/TEMPORARY/UNDOextent_management,-- LOCAL/DICTIONARYsegment_space_management-- AUTO/MANUALFROMdba_tablespacesORDERBYtablespace_name;-- 查看表空间大小和使用情况SELECTts.tablespace_name,ROUND(ts.total_mb,2)AStotal_mb,ROUND(ts.used_mb,2)ASused_mb,ROUND(ts.free_mb,2)ASfree_mb,ROUND(ts.used_mb/ts.total_mb*100,2)ASused_pctFROM(SELECTdf.tablespace_name,SUM(df.bytes)/1024/1024AStotal_mb,SUM(df.bytes)/1024/1024-SUM(fs.bytes)/1024/1024ASused_mb,SUM(fs.bytes)/1024/1024ASfree_mbFROMdba_data_files dfLEFTJOIN(SELECTtablespace_name,SUM(bytes)ASbytesFROMdba_free_spaceGROUPBYtablespace_name)fsONdf.tablespace_namefs.tablespace_nameGROUPBYdf.tablespace_name)tsORDERBYused_pctDESC;Oracle默认表空间SYSTEM数据字典核心元数据不应存放用户数据SYSAUX辅助系统表空间AWR、SQLTUNE等Oracle特性使用USERS默认用户数据表空间TEMP临时表空间排序、哈希操作UNDOTBS1UNDO表空间用于事务回滚和一致性读2.2 段Segment段是数据库对象在表空间中占用的存储空间的总和。每个数据库对象对应一个或多个段。-- 查看各类型段的数量和大小SELECTsegment_type,COUNT(*)AScnt,ROUND(SUM(bytes)/1024/1024,2)AStotal_mbFROMdba_segmentsGROUPBYsegment_typeORDERBYtotal_mbDESC;-- 查看最大的10个段SELECTowner,segment_name,segment_type,ROUND(bytes/1024/1024,2)ASmb,extentsFROMdba_segmentsORDERBYbytesDESCFETCHFIRST10ROWSONLY;-- 段类型包括-- TABLE表段普通堆表-- TABLE PARTITION分区表的分区段-- INDEX索引段-- INDEX PARTITION分区索引段-- LOBSEGMENTLOB数据段-- LOBINDEXLOB索引段-- CLUSTER簇段-- TEMPORARY临时段-- UNDO回滚段撤销段2.3 区Extent区是段中连续数据块的集合是Oracle分配存储空间的最小单位。-- 查看某段的区信息SELECTsegment_name,extent_id,blocks,bytes/1024ASkbFROMdba_extentsWHEREownerHRANDsegment_nameEMPLOYEESORDERBYextent_id;-- 查看表空间的区管理方式SELECTtablespace_name,extent_management,allocation_typeFROMdba_tablespaces;-- extent_managementLOCAL本地管理推荐或DICTIONARY字典管理已废弃-- allocation_typeSYSTEMOracle自动决定大小或UNIFORM固定大小2.4 数据块Data Block数据块是Oracle I/O的最小单位大小由DB_BLOCK_SIZE参数决定通常8KB。-- 查看数据块大小SHOWPARAMETER db_block_size-- 数据块的内部结构-- 块头Block Header块类型、块地址、事务信息ITL条目-- 表目录Table Directory块中各表的信息-- 行目录Row Directory行的地址偏移量-- 空闲空间Free SpacePCTFREE预留区-- 行数据Row Data实际数据-- 查看段的存储参数PCTFREE等SELECTtable_name,pct_free,pct_used,ini_trans,max_trans,initial_extent/1024ASinitial_kb,next_extent/1024ASnext_kbFROMdba_tablesWHEREownerHRORDERBYtable_name;三、物理存储结构3.1 数据文件Data Files-- 查看所有数据文件SELECTfile#, name, bytes / 1024 / 1024 AS mb,status,online_status,autoextensibleFROMv$datafileORDERBYfile#;-- 等价的DBA视图SELECTfile_id,tablespace_name,file_name,bytes/1024/1024ASmb,autoextensible,maxbytes/1024/1024ASmax_mb,increment_by*8/1024ASincrement_mb-- 8KB * 块数 / 1024FROMdba_data_filesORDERBYtablespace_name,file_id;-- 添加数据文件到表空间ALTERTABLESPACEusersADDDATAFILE/u01/oradata/orcl/users02.dbfSIZE500M AUTOEXTENDONNEXT100M MAXSIZE2G;-- 调整数据文件大小ALTERDATABASEDATAFILE/u01/oradata/orcl/users01.dbfRESIZE1G;-- 数据文件自动扩展配置ALTERDATABASEDATAFILE/u01/oradata/orcl/users01.dbfAUTOEXTENDONNEXT128M MAXSIZE UNLIMITED;3.2 控制文件Control Files控制文件记录数据库的物理结构信息文件名、SCN、恢复信息等。控制文件丢失或损坏会导致数据库无法启动。-- 查看控制文件位置SHOWPARAMETER control_filesSELECTvalueFROMv$parameterWHEREnamecontrol_files;-- 查看控制文件中记录的数据库信息SELECTname,db_unique_name,created,log_mode,current_scn,checkpoint_change#FROMv$database;-- 多元镜像控制文件最佳实践至少3个控制文件放在不同磁盘-- 修改control_files参数需要物理复制文件后重启SHOWPARAMETER control_files-- 修改步骤-- 1. SHUTDOWN IMMEDIATE-- 2. 在OS层面复制控制文件到新位置-- 3. 修改SPFILE中的control_files参数-- 4. STARTUP3.3 重做日志文件Redo Log Files-- 查看重做日志文件组SELECTgroup#, status, archived,members,bytes/1024/1024ASmb,first_change#, next_change#FROMv$logORDERBYgroup#;-- 查看各组成员SELECTgroup#, member, statusFROMv$logfileORDERBYgroup#, member;-- 日志组状态说明-- CURRENT当前正在写入的日志组-- ACTIVE最近完成的检查点需要还不能被覆盖-- INACTIVE可以被覆盖覆盖前需归档如果在归档模式-- UNUSED新创建从未使用-- 添加日志组和成员ALTERDATABASEADDLOGFILEGROUP4(/u01/redo/redo04a.log,/u02/redo/redo04b.log)SIZE200M;ALTERDATABASEADDLOGFILE MEMBER/u03/redo/redo01c.logTOGROUP1;-- 删除日志组只能删除INACTIVE状态的组ALTERDATABASEDROPLOGFILEGROUP4;四、存储结构规划最佳实践-- 生产环境推荐的表空间布局-- SYSTEM, SYSAUX系统表空间单独磁盘-- UNDOTBS1UNDO表空间快速磁盘-- TEMP临时表空间中速磁盘-- DATA_TS用户数据表空间快速磁盘-- INDEX_TS用户索引表空间与数据表空间分离的磁盘-- LOB_TSLOB数据表空间大容量磁盘-- 创建数据表空间本地管理自动段管理CREATETABLESPACEdata_ts DATAFILE/u01/oradata/orcl/data_ts01.dbfSIZE1G AUTOEXTENDONNEXT256M MAXSIZE10G EXTENT MANAGEMENTLOCAL-- 本地管理推荐SEGMENT SPACE MANAGEMENT AUTO;-- 自动段管理推荐-- 创建索引表空间CREATETABLESPACEindex_ts DATAFILE/u02/oradata/orcl/index_ts01.dbfSIZE500M AUTOEXTENDONNEXT128M MAXSIZE5G EXTENT MANAGEMENTLOCALSEGMENT SPACE MANAGEMENT AUTO;五、总结Oracle存储结构的层次关系从大到小数据库所有数据的容器表空间逻辑存储的顶层映射到一个或多个数据文件段数据库对象的存储单元表、索引各有自己的段区段内的连续块集合存储分配单位数据块I/O的最小单位默认8KB理解这个层次结构是进行数据库规划、容量管理和性能优化的基础。下一篇将进入数据库创建的实战讲解。上一篇【第16篇】Oracle连接模式与内存管理——专用服务器、共享服务器与AMM下一篇【第18篇】Oracle数据库规划与前期准备——创建数据库前的系统工作参考资料《Oracle 11g数据库管理员指南》— 刘宪军著Oracle官方文档Database Concepts - Storage Structures

相关文章:

【Oracle数据库指南】第17篇:Oracle逻辑与物理存储结构——表空间、段、区、数据块全解析

上一篇【第16篇】Oracle连接模式与内存管理——专用服务器、共享服务器与AMM 下一篇【第18篇】Oracle数据库规划与前期准备——创建数据库前的系统工作 摘要 本文系统讲解Oracle数据库的存储结构体系,包括逻辑存储(数据库→表空间→段→区→数据块&…...

Amphenol ICC RJE1Y33A53162401网线组件解析与替代思路

在工业通信、服务器互联以及智能设备网络连接场景中,RJ45类线束组件一直是不可忽视的重要组成部分。近期不少工程师在项目选型时关注到 Amphenol ICC 推出的 RJE1Y33A53162401 线束组件。本文就围绕这款型号,从产品特点、应用方向、选型思路以及兼容替代…...

保姆级教程:用MNN在Android上部署你的第一个图像分类App(从模型转换到实时摄像头识别)

从零构建Android端智能图像分类应用:MNN实战全流程解析 在移动互联网时代,将AI能力嵌入移动端应用已成为提升用户体验的关键。想象一下这样的场景:用户打开手机就能实时识别植物种类、辨别商品真伪,或是自动分类相册中的照片——这…...

基于Rust构建AI智能体平台:架构设计与工程实践

1. 从零到一:构建你自己的AI智能体平台最近几年,大语言模型(LLM)的爆发式发展,让“智能体”(Agent)从一个学术概念,迅速变成了提升工作效率的利器。你可能用过一些现成的AI工具&…...

构建去中心化信任层:从可验证声明到DID解析的工程实践

1. 项目概述:构建数字时代的信任基石在数字化浪潮席卷各行各业的今天,我们每天都在与海量的数据、服务和身份信息打交道。无论是登录一个应用、进行一笔交易,还是验证一份电子合同,其背后最核心、也最容易被忽视的要素&#xff0c…...

基于本地LLM与多智能体架构的DD游戏引擎实现与优化

1. 项目概述:一个本地化、多智能体驱动的龙与地下城游戏引擎最近在折腾一个挺有意思的项目,叫 TD-LLM-DND。简单来说,这是一个让你能在自己电脑上,用本地运行的大语言模型(LLM)来跑一场“龙与地下城”&…...

Linux端口转发到外网完全教程:iptables DNAT+SNAT实现内网服务暴露

一、什么是外网端口转发Linux端口转发到外网,是指将Linux服务器上某个端口的流量,转发到外网(公网)的另一台服务器。这样做的典型场景是:你有一台内网服务器没有公网IP,但另一台海外服务器有公网IP&#xf…...

superpowers skill 3.1: using-git-worktrees

智能体工作流 安装 $ npx skills add https://github.com/obra/superpowers --skill using-git-worktrees摘要 具有智能目录选择和安全验证的隔离 Git 工作树。 通过检查现有目录、CLAUDE.md 偏好设置或询问用户来自动检测工作树目录位置;支持项目本地&#xff…...

常见404 500错误解析

一、常见404 500错误解析浏览器:用户发起请求的入口,地址栏输入 URL、AJAX 请求都从这里发。服务器:本质就是一台电脑,Tomcat 在这里负责接收请求、分发处理。前端层:存放静态页面,处理页面渲染、用户交互…...

自动化测试(十二) 分布式系统测试-缓存-注册中心与链路追踪验证

分布式系统测试:缓存、注册中心与链路追踪验证上篇咱们搞定了消息队列测试,今天继续深入分布式系统的其他组件——Redis缓存、服务注册中心、分布式链路追踪。这些"基础设施"的测试往往被忽略,但出了问题定位起来最头疼。一、Redis…...

iPaaS平台推荐——五款产品能力与适用场景观察

在数字化转型加速推进的当下,iPaaS(集成平台即服务)正成为企业打通数据孤岛、连接应用生态的核心基础设施。面对市场上类型各异的集成平台,如何根据自身需求选择合适的解决方案,成为众多企业关注的重点。本文基于公开资…...

oh-my-iflow:基于多智能体协作的自动化命令行开发工作流

1. 项目概述:当命令行遇上多智能体工作流如果你和我一样,每天有大量时间泡在终端里,那你肯定对命令行工具的效率又爱又恨。爱的是它直接、强大,恨的是很多复杂任务依然需要我们手动串联多个命令,或者在不同工具间来回切…...

Perplexity Nature检索实战手册:9类典型查询失败场景+对应Prompt工程模板(含IEEE/ACS/Nature交叉验证结果)

更多请点击: https://intelliparadigm.com 第一章:Perplexity Nature文章检索实战手册导论 Perplexity Nature 是面向科研人员与技术从业者设计的智能学术检索增强工具,它融合了语义理解、引用图谱分析与跨源文献聚合能力,专为高…...

ARM MPMC内存控制器架构与优化策略

1. ARM MPMC内存控制器架构解析在嵌入式系统设计中,内存控制器作为处理器与存储设备之间的桥梁,其性能直接影响整个系统的运行效率。ARM PrimeCell多端口内存控制器(MPMC)是一种高度可配置的IP核,支持与多种类型存储设备的连接,包…...

如何构建高效的个人游戏串流服务器:Sunshine完整部署指南

如何构建高效的个人游戏串流服务器:Sunshine完整部署指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在当今数字娱乐时代,游戏玩家面临着设备限制与体验…...

终极NDS游戏资源编辑器Tinke:免费开源工具轻松提取和修改任天堂DS游戏文件

终极NDS游戏资源编辑器Tinke:免费开源工具轻松提取和修改任天堂DS游戏文件 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke 你是否曾经好奇任天堂DS游戏内部包含了哪些精美的图像、动听…...

移动端数据抓取实战:基于Capacitor插件实现自动化采集

1. 项目概述:一个为移动端设计的“数据抓手”最近在做一个移动端的数据采集项目,需要从一些应用里提取特定的信息。直接写原生代码去解析页面结构,不仅开发周期长,而且一旦目标应用的界面更新,我们的代码就得跟着改&am…...

Claude Code / Cursor 写的代码,你敢直接上线吗?我踩过一次坑,再也不敢

👉 这是一个或许对你有用的社群🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 《项目实战(视频)》:从书中学,往事上…...

5 款实用漏洞扫描工具,网安从业者必备收藏

漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测的行为。 在漏洞扫描过程中,我们经常会借助一些漏扫工具,市面上漏扫工具众多,其中有一…...

基于MCP协议构建AI助手业务工具适配器:从原理到实践

1. 项目概述:用MCP协议为AI助手装上“业务之眼”如果你和我一样,日常开发中需要频繁地在Stripe看支付数据、在Sentry查线上错误、在Notion里翻文档、在Linear跟进任务状态,那你一定懂那种在十几个浏览器标签页和不同SaaS平台间反复横跳的疲惫…...

OpenClaw本地控制台:一站式图形化管理AI助手工作流

1. 项目概述:一个为本地OpenClaw工作流量身打造的控制台如果你和我一样,在Windows上折腾过OpenClaw,那你肯定经历过这种“精神分裂”式的管理体验:想启动服务,得切到终端敲命令;要改个模型配置,…...

构筑数字韧性:从零信任到内生安全,打造面向未来的数字基础设施

1. 从一篇行业评论引发的深度思考:我们该如何构筑数字时代的“安全地基”?前几天,行业媒体EE Times上的一篇旧文被重新翻了出来,标题挺抓人眼球,大致是在讨论某个国家在关键技术领域的主导地位是否面临挑战。抛开其中地…...

为什么93%的DeepSeek PR被拒?揭秘CI流水线自动拦截的4类“伪Clean”代码陷阱

更多请点击: https://intelliparadigm.com 第一章:为什么93%的DeepSeek PR被拒?揭秘CI流水线自动拦截的4类“伪Clean”代码陷阱 DeepSeek 开源仓库的 CI 流水线以严苛著称——最新统计显示,93% 的 PR 在 pre-commit 阶段即被自动…...

OpenClaw Memory启动器:快速构建AI记忆系统的开源脚手架

1. 项目概述:一个为AI记忆系统设计的开源启动器最近在折腾AI应用开发,特别是那些需要长期记忆和上下文管理的项目时,发现了一个挺有意思的GitHub仓库:christiancaviedes/openclaw-memory-starter。这本质上是一个为“OpenClaw Mem…...

从特斯拉事故看自动驾驶数据存储与系统安全设计

1. 事故背景与NTSB调查报告的核心价值2016年发生的那起特斯拉Model S与白色半挂卡车相撞的致命事故,相信很多关注汽车技术发展的朋友都还记得。当时这起事故引发了业界对自动驾驶辅助系统安全性的第一轮大规模公开讨论。一年多后,美国国家运输安全委员会…...

基于MCP协议构建AI知识库:解决会话失忆,实现知识持久化

1. 项目概述:让AI拥有自己的“亚历山大图书馆”如果你和我一样,长期与Claude Code、Cursor这类AI编程助手打交道,一定会遇到一个核心痛点:会话失忆。每次开启一个新对话,AI助手就像一张白纸,它对你项目的历…...

Cursor编辑器AI操作完成音效插件:原理、实现与效能提升

1. 项目概述:一个提升编码体验的“听觉反馈”工具如果你和我一样,每天有大量时间与代码编辑器为伴,那么你一定对那种“沉浸式”的编码状态又爱又恨。爱的是心流状态下的高效产出,恨的是一旦被打断,重新进入状态需要耗费…...

ComfyUI IPAdapter Plus完整指南:5个步骤掌握AI图像风格迁移技术

ComfyUI IPAdapter Plus完整指南:5个步骤掌握AI图像风格迁移技术 【免费下载链接】ComfyUI_IPAdapter_plus 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_IPAdapter_plus ComfyUI IPAdapter Plus是ComfyUI平台上功能强大的图像引导生成插件&#x…...

AgentVault Memory:构建本地AI编码记忆库,实现跨工具语义搜索与知识管理

1. 项目概述:为什么我们需要一个统一的AI编码记忆库如果你和我一样,每天的工作流里塞满了各种AI编码助手——Claude Code在终端里处理一个项目,Cursor在IDE里开着,偶尔切到OpenCode或者Codex处理点零碎任务。每次对话都充满了宝贵…...

魔兽争霸3优化指南:5个常见问题与WarcraftHelper解决方案

魔兽争霸3优化指南:5个常见问题与WarcraftHelper解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否在玩《魔兽争霸3》时遇到过…...