Oracle

发布于:2025-07-27 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、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)

-- 创建表空间
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. 事务控制

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 学习建议

  1. 熟练掌握 SQL & PL/SQL 编程
  2. 理解 Oracle 架构和内存机制(SGA、PGA、进程)
  3. 学习事务控制与并发机制
  4. 掌握性能分析方法(AWR、SQL Trace)
  5. 掌握备份与恢复(RMAN、Flashback)
  6. 学习企业级部署方案(DataGuard、RAC、分区表)

网站公告

今日签到

点亮在社区的每一天
去签到