Oracle 数据库是全球领先的关系型数据库管理系统(RDBMS),由 Oracle 公司开发。它为企业级应用提供了高性能、高可用性、安全性和可扩展性的数据管理解决方案。
目录
RAC (Real Application Clusters):
一、Oracle 数据库体系结构
1. 物理存储结构
主要组件:
数据文件(Data Files):存储实际数据的操作系统文件(.dbf)
控制文件(Control Files):记录数据库物理结构信息(.ctl)
重做日志文件(Redo Log Files):记录所有数据更改(.log)
参数文件(Parameter Files):包含数据库配置参数(pfile/spfile)
归档日志文件(Archive Log Files):已满的重做日志备份
存储层次:
表空间(Tablespace) → 段(Segment) → 区(Extent) → 数据块(Data Block)
2. 逻辑存储结构
表(Table):数据存储的基本单位
视图(View):虚拟表,基于SQL查询定义
索引(Index):提高数据检索速度的数据结构
序列(Sequence):生成唯一数字序列的对象
同义词(Synonym):对象的别名
存储过程/函数/包:存储在数据库中的PL/SQL程序单元
3. 内存结构
系统全局区(SGA):
共享池(Shared Pool):缓存SQL和PL/SQL代码
数据库缓冲区缓存(Database Buffer Cache):缓存数据块
重做日志缓冲区(Redo Log Buffer):缓存重做条目
大池(Large Pool):用于备份恢复等大型操作
Java池(Java Pool):支持Java应用
流池(Streams Pool):支持Oracle Streams功能
程序全局区(PGA):
每个服务器进程私有的内存区域
包含排序区、会话信息、游标状态等
4. 进程结构
主要后台进程:
DBWn (Database Writer):将脏缓冲区写入数据文件
LGWR (Log Writer):将重做日志缓冲区写入重做日志文件
CKPT (Checkpoint):触发检查点,同步数据文件
SMON (System Monitor):执行实例恢复和空间管理
PMON (Process Monitor):监视用户进程,执行进程恢复
ARCn (Archiver):归档已满的重做日志文件
二、Oracle 核心功能
1. 数据管理
表类型:
堆组织表(Heap-Organized Tables):标准表类型
索引组织表(IOT):数据按索引顺序存储
分区表(Partitioned Tables):大表分成多个物理部分
临时表(Temporary Tables):会话或事务级临时数据
外部表(External Tables):访问操作系统文件中的数据
高级数据特性:
虚拟列(Virtual Columns):基于表达式的列,不实际存储
不可见列(Invisible Columns):默认不显示的列
标识列(Identity Columns):自动递增列(12c+)
默认值(Default Values):包括序列.nextval支持
只读表(Read-Only Tables):防止数据修改(12c+)
2. 数据完整性
约束类型:
主键(Primary Key):唯一标识行
外键(Foreign Key):维护表间关系
唯一键(Unique Key):确保列值唯一
检查约束(Check Constraints):验证数据条件
非空约束(NOT NULL):强制列必须有值
3. 事务管理
ACID特性:
原子性(Atomicity):事务完全完成或完全不完成
一致性(Consistency):事务使数据库从一个一致状态变为另一个一致状态
隔离性(Isolation):事务间互不干扰
持久性(Durability):提交后的事务永久保存
隔离级别:
READ COMMITTED:Oracle默认级别
SERIALIZABLE:完全隔离
READ ONLY:只读事务
4. 并发控制
锁机制:
行级锁(Row Locks):TX锁,最常用的锁
表级锁(Table Locks):TM锁,保护表结构
死锁检测:自动检测并解决死锁
多版本并发控制(MVCC):
读不阻塞写,写不阻塞读
使用回滚段(Undo Segments)维护数据旧版本
三、Oracle 高级特性
1. 高可用性解决方案
RAC (Real Application Clusters):
多个实例访问单个数据库
提供故障转移和负载均衡
Data Guard:
维护备用数据库
提供灾难恢复解决方案
三种保护模式:最大保护、最大可用性、最大性能
闪回技术(Flashback):
闪回查询(Flashback Query):查询历史数据
闪回表(Flashback Table):将表恢复到过去时间点
闪回删除(Flashback Drop):恢复已删除的表
闪回数据库(Flashback Database):将整个数据库回退到过去时间点
2. 分区技术
分区类型:
范围分区(Range Partitioning):基于值范围
列表分区(List Partitioning):基于离散值
哈希分区(Hash Partitioning):均匀分布数据
复合分区(Composite Partitioning):组合多种分区方法
间隔分区(Interval Partitioning):自动创建范围分区(11g+)
引用分区(Reference Partitioning):基于外键关系分区(11g+)
虚拟列分区(Virtual Column Partitioning):基于虚拟列分区(11g+)
3. 安全特性
数据安全:
透明数据加密(TDE):加密敏感数据
数据脱敏(Data Redaction):动态屏蔽敏感数据(12c+)
数据库防火墙(Database Firewall):监控和阻止SQL注入
访问控制:
细粒度访问控制(FGAC/VPD):行级安全性
标签安全(Label Security):基于标签的访问控制
统一审计(Unified Auditing):综合审计解决方案(12c+)
4. 性能优化
优化器:
基于成本的优化器(CBO):考虑统计信息和系统资源
自适应执行计划(Adaptive Plans):运行时优化(12c+)
SQL计划管理(SPM):防止执行计划退化
性能工具:
自动工作负载仓库(AWR):收集性能指标
SQL调优顾问(SQL Tuning Advisor):自动SQL优化建议
SQL访问顾问(SQL Access Advisor):索引和物化视图建议
四、Oracle 开发接口
1. SQL 和 PL/SQL
PL/SQL 特性:
过程化编程扩展
包、存储过程、函数、触发器
异常处理
集合类型(关联数组、嵌套表、VARRAY)
2. Java 支持
Oracle JVM:数据库内Java虚拟机
JDBC:Java数据库连接
SQLJ:嵌入式SQL的Java编程
3. .NET 支持
ODP.NET:Oracle Data Provider for .NET
Oracle Developer Tools for Visual Studio
4. 其他接口
OCI (Oracle Call Interface):底层C语言接口
ODBC:开放数据库连接
Pro*C:嵌入式SQL的C/C++编程
五、Oracle 工具集
1. 管理工具
SQL*Plus:命令行界面
Oracle Enterprise Manager (OEM):基于Web的综合管理控制台
SQL Developer:免费图形化开发工具
RMAN (Recovery Manager):备份恢复工具
2. 开发工具
APEX (Application Express):低代码Web应用开发平台
Oracle Forms:传统客户端/服务器应用开发工具
Oracle Reports:企业报表工具
3. 数据集成工具
Oracle Data Integrator (ODI):ELT数据集成工具
GoldenGate:实时数据复制和集成
SQL*Loader:外部数据加载工具
六、Oracle 云服务
1. Oracle 云数据库服务
Autonomous Database:自驱动、自修复、自安全的云数据库
Exadata Cloud Service:Oracle Exadata的云版本
Database Cloud Service:托管Oracle数据库服务
2. 混合云解决方案
Oracle Cloud at Customer:本地部署的Oracle云服务
Exadata Cloud at Customer:本地Exadata云服务
七、Oracle 版本演进
主要版本里程碑:
Oracle 7 (1992):PL/SQL、存储过程、触发器
Oracle 8 (1997):对象关系特性、分区
Oracle 8i (1999):Internet支持、Java集成
Oracle 9i (2001):RAC、XML支持
Oracle 10g (2003):网格计算、自动化管理
Oracle 11g (2007):高级压缩、Total Recall
Oracle 12c (2013):多租户架构、内存列存储
Oracle 18c/19c (2018/2019):自治功能、长期支持版本
Oracle 21c (2021):区块链表、JSON增强
八、Oracle 应用场景
典型应用领域:
企业资源规划(ERP):如Oracle E-Business Suite
客户关系管理(CRM):如Oracle Siebel
数据仓库和商业智能
在线事务处理(OLTP)系统
内容管理系统
金融和电信行业核心系统
Oracle 数据库作为企业级数据库解决方案的领导者,提供了全面而强大的数据管理能力。从传统的关系型数据管理到现代的云原生架构,Oracle 持续创新,满足企业不断变化的数据需求。掌握 Oracle 技术对于数据库专业人员来说是一项极具价值的技能。