一、Oracle 简介
Oracle Database 是由 Oracle 公司开发的企业级关系型数据库管理系统(RDBMS),以其高性能、高可用性、高安全性著称,是全球使用最广泛的数据库之一。
- 首次发布:1979 年
- 当前版本(截至 2024):Oracle Database 23c(最新长期支持 LTS 版本为 19c)
- 支持平台:Linux、Unix、Windows 等
二、核心架构
1. Oracle 架构三大组件
组件 | 说明 |
---|---|
实例(Instance) | 一组后台进程和内存结构,管理数据访问 |
数据库(Database) | 数据文件、控制文件、日志文件等物理结构 |
用户与表空间(User & Tablespace) | 数据逻辑结构管理,如 schema、表、索引、视图等 |
2. 关键后台进程(常见部分)
进程 | 功能 |
---|---|
DBWR | 将缓冲区的数据写入磁盘 |
LGWR | 写重做日志(redo log) |
CKPT | 更新控制文件和数据文件头 |
SMON | 系统监控,崩溃恢复 |
PMON | 进程监控,清理死会话 |
3. 内存结构
- SGA(System Global Area):全局共享内存区,如缓存区、共享池
- PGA(Program Global Area):用户会话私有内存区
三、Oracle 核心特性
特性 | 说明 |
---|---|
PL/SQL | Oracle 的过程化 SQL 编程语言 |
多版本并发控制(MVCC) | 保证高并发下的读一致性 |
表空间(Tablespace) | 逻辑存储管理,便于管理不同类型数据 |
数据字典 & 动态性能视图 | 提供丰富的系统状态和元数据查询能力 |
物化视图(Materialized View) | 缓存远程或复杂查询结果,提高性能 |
分区表(Partition Table) | 提高大表访问效率 |
并行查询(Parallel Query) | 支持大规模数据查询加速 |
数据泵(Data Pump) | 高速数据导入导出工具(expdp / impdp ) |
Flashback 技术 | 快速恢复误操作数据(表、数据库、查询) |
高可用(RAC) | Real Application Cluster 支持多节点访问 |
四、SQL 示例(PL/SQL)
sql
-- 创建表空间
CREATE TABLESPACE my_data
DATAFILE '/u01/app/oracle/oradata/ORCL/my_data01.dbf' SIZE 100M AUTOEXTEND ON;
-- 创建用户
CREATE USER test IDENTIFIED BY test123 DEFAULT TABLESPACE my_data;
GRANT CONNECT, RESOURCE TO test;
-- 创建表
CREATE TABLE test.users (
id NUMBER PRIMARY KEY,
name VARCHAR2(100),
age NUMBER
);
-- 插入数据
INSERT INTO test.users (id, name, age) VALUES (1, 'Tom', 30);
-- 查询
SELECT * FROM test.users WHERE age > 25;
-- 存储过程
CREATE OR REPLACE PROCEDURE update_age(p_id IN NUMBER, p_age IN NUMBER) IS
BEGIN
UPDATE test.users SET age = p_age WHERE id = p_id;
END;
五、性能优化常用工具
工具 / 特性 | 功能说明 |
---|---|
AWR(Automatic Workload Repository) | 收集和分析数据库性能指标 |
ASH(Active Session History) | 分析活跃会话历史 |
SQL Trace / TKPROF | 追踪 SQL 性能 |
SQL Plan / Explain Plan | 查看执行计划 |
V$ 系列视图 | 如 v$sql , v$session , v$system_event |
六、事务与锁机制
1. 事务控制
sql
BEGIN;
UPDATE test.users SET age = age + 1 WHERE id = 1;
COMMIT; -- 或 ROLLBACK;
2. 锁机制
- 行级锁(Row-level Lock):大多数 DML 操作自动加锁
- 表级锁:如
LOCK TABLE
- 并发控制采用UNDO机制 + SCN 保证一致性(非死锁)
七、高可用与备份恢复
特性 | 功能 |
---|---|
RMAN(Recovery Manager) | 企业级备份与恢复工具 |
Flashback Query / Table / DB | 快速恢复到某个时间点数据状态 |
Data Guard | 主备复制容灾方案(物理/逻辑 standby) |
RAC(Real Application Clusters) | 多节点同时访问同一数据库,消除单点故障 |
八、Oracle 常见版本
版本 | 特点 |
---|---|
Oracle XE(Express Edition) | 免费版,功能有限,适合学习和小型项目 |
Oracle Standard | 中小企业使用,性价比高 |
Oracle Enterprise | 全功能,支持 RAC、加密、分区等 |
九、Oracle 与其他数据库对比
特性 | Oracle | MySQL | SQL Server | PostgreSQL |
---|---|---|---|---|
编程语言 | PL/SQL | SQL | T-SQL | PL/pgSQL |
高可用 | RAC、DG | 主从、Group Replication | AlwaysOn | Hot Standby |
企业功能 | 非常全面 | 相对较弱 | 较强 | 强大且开源 |
成本 | 高 | 低 | 中 | 低(开源) |
分区/并行 | 支持全面 | 限制较多 | 支持 | 支持 |
十、Oracle 学习建议
- 熟练掌握 SQL & PL/SQL 编程
- 理解 Oracle 架构和内存机制(SGA、PGA、进程)
- 学习事务控制与并发机制
- 掌握性能分析方法(AWR、SQL Trace)
- 掌握备份与恢复(RMAN、Flashback)
- 学习企业级部署方案(DataGuard、RAC、分区表)