多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

三、Oracle 核心原理

三、Oracle 核心原理 文章目录 核心认知Oracle 到底是什么1. 动态的灵魂Oracle 实例 (Instance)1.1 什么是实例1.2 实例的生命周期2. 静态的躯体三大核心文件2.1 控制文件 (.CTL) —— “地图与目录”2.2 数据文件 (.DBF) —— “实体仓库”2.3 日志文件 (.LOG) —— “操作记录仪”3. 实例与数据库的关系图解图解流程说明对应你的理解✅ 学习自检清单 核心认知Oracle 到底是什么不要把它想得太神秘。Oracle 在本质上就是硬盘上的一组二进制文件集合。但是光有文件是“死”的没法用。所以 Oracle 的工作机制可以总结为一句话启动时创建一个“实例”活的程序进程由这个实例去操控硬盘上的三种“文件”死的物理存储。1. 动态的灵魂Oracle 实例 (Instance)1.1 什么是实例定义Oracle 启动时在内存中分配的空间 建立的后台进程。通俗理解实例就是一个正在运行的程序/进程比如 Windows 下的oracle.exe。它是数据库的“大脑”和“双手”。1.2 实例的生命周期启动 (startup)操作系统加载程序分配内存实例诞生。乐队开始演奏运行实例接收用户的 SQL 命令去读写硬盘上的文件。关闭 (shutdown)程序结束内存释放进程消失。乐队解散注意实例消失了但硬盘上的文件数据库依然完好无损地躺在那里。2. 静态的躯体三大核心文件实例程序启动后必须找到并操控以下三种文件才能工作2.1 控制文件 (.CTL) —— “地图与目录”作用记录数据库的名称、以及.dbf和.log文件在硬盘上的具体存放位置。为什么重要实例启动时的第一个动作就是读取它。没有这张“地图”实例就找不到数据文件和日志文件数据库无法启动。特性一个控制文件只属于一个数据库丢失则数据库报废。2.2 数据文件 (.DBF) —— “实体仓库”作用真正存储用户数据表、索引、订单等和系统内部数据的地方。谁来管数据文件自己是“死”的全靠实例后台进程来读写和控制。创建通常在创建“表空间”时自动生成。2.3 日志文件 (.LOG) —— “操作记录仪”主要分为两种核心是重做日志 (Redo Log)作用忠实记录实例对数据库做的所有修改操作改了哪个表、写了哪个字段、数据块变成了什么样。核心价值备份与还原它是数据库的“保命符”。如果数据库突然崩溃如断电.dbf里的数据可能没写完。重启时实例会读取.log把之前记录的“操作”重新执行一遍Redo从而将.dbf恢复到崩溃前的最新状态。3. 实例与数据库的关系图解为了让你更直观地看到“程序如何操控文件”请看下面的架构图Oracle 数据库 Database - 死的硬盘文件 Oracle 实例 Instance - 活的程序/进程1. 启动第一步读地图提供文件路径2. 运行时读写实际数据3. 修改时记录操作以防丢失后台进程 Processes相当于司机/双手内存 Memory相当于大脑/工作台控制文件 .ctl️ 地图/目录数据文件 .dbf 实体仓库日志文件 .log 操作记录仪/黑匣子图解流程说明对应你的理解找路实例进程启动先读.ctl地图拿到.dbf和.log的地址。干活实例根据地址去读写.dbf仓库处理你的增删改查。留痕实例在改.dbf的同时把“我改了什么”记入.log记录仪。救命万一出事靠.log里的记录把.dbf还原回来。✅ 学习自检清单学完这一章你可以问自己三个问题如果都能答上来就说明彻底掌握了关掉电脑后实例还在吗数据库文件还在吗如果.ctl文件被误删了数据库还能启动吗为什么数据库突然断电重启后是靠哪个文件保证数据不丢失的它是怎么做到的(答案1. 实例没了文件还在2. 不能因为找不到其他文件的路径3. 靠 .log 重做日志通过重放之前的操作来恢复数据)
返回列表