文章目录
- 一、从实际场景说起
- [二、Oracle 是什么](#二、Oracle 是什么)
-
- [2.1 基本定位](#2.1 基本定位)
- [2.2 它擅长什么](#2.2 它擅长什么)
- [2.3 代价是什么](#2.3 代价是什么)
- [三、与 MySQL 的定位区别](#三、与 MySQL 的定位区别)
-
- [3.1 对照表](#3.1 对照表)
- [3.2 怎么理解这个差异](#3.2 怎么理解这个差异)
- [3.3 从 MySQL 迁移过来容易踩的点](#3.3 从 MySQL 迁移过来容易踩的点)
- 四、版本演进要点
-
- [4.1 9i / 10g / 11g:经典时代](#4.1 9i / 10g / 11g:经典时代)
- [4.2 12c:多租户架构](#4.2 12c:多租户架构)
- [4.3 18c / 19c:长期支持的主力](#4.3 18c / 19c:长期支持的主力)
- [4.4 21c 与 23ai](#4.4 21c 与 23ai)
- [4.5 版本速查表](#4.5 版本速查表)
- 五、学习路线
-
- [5.1 入门阶段:能熟练用](#5.1 入门阶段:能熟练用)
- [5.2 管理阶段:能独立管](#5.2 管理阶段:能独立管)
- [5.3 调优阶段:能定位与解决](#5.3 调优阶段:能定位与解决)
- [5.4 高可用阶段:能设计架构](#5.4 高可用阶段:能设计架构)
- [5.5 路线图](#5.5 路线图)
- [六、DBA 与开发两种视角](#六、DBA 与开发两种视角)
-
- [6.1 DBA 视角](#6.1 DBA 视角)
- [6.2 开发视角](#6.2 开发视角)
- [6.3 两个视角的交集](#6.3 两个视角的交集)
- 七、本系列的路线
- 八、入门阶段的常见疑问
-
- [学 Oracle 必须买许可吗](#学 Oracle 必须买许可吗)
- [该装 19c 还是 23ai](#该装 19c 还是 23ai)
- [已经会 MySQL 的 SQL,还要补什么](#已经会 MySQL 的 SQL,还要补什么)
- 没有生产环境,经验从哪来
- [有必要搭 RAC 练习吗](#有必要搭 RAC 练习吗)
- 英文文档看不动怎么办
- 每天学多久,多久能上手管理
- 九、要点总结
一、从实际场景说起
接手企业级项目时,技术选型会上常出现这样的讨论:数据量会到什么规模、峰值事务有多高、可接受的停机窗口有多短、预算能覆盖哪些商业软件。把这些约束摆在一起,Oracle 经常留在最终名单里。它不是唯一的选择,但在金融、电信、能源、政务这类对事务一致性和可用性要求苛刻的行业,存量极大。
刚接触 Oracle 时,第一个问题通常不是"SQL 怎么写"------各家数据库的 SQL 大同小异------而是:版本怎么选、从哪里开始学、要学到多深。这篇先把这两个问题说清楚,后面的文章再逐层展开。
二、Oracle 是什么
2.1 基本定位
Oracle Database 是甲骨文公司推出的商业关系型数据库管理系统(RDBMS),1979 年发布第一版,是最早商业化的 SQL 数据库之一。它的核心标签是:强事务、高并发、完整的高可用体系、功能密集的管理工具链。四十多年迭代下来,功能越来越多,但核心概念(实例、数据库、表空间、redo/undo)一直稳定,这也是先学体系结构很值得的原因。
2.2 它擅长什么
- 高并发交易:银行核心、电信计费这类"每秒几千笔、一笔都不能丢"的场景,是它的传统阵地
- 高可用:RAC 多实例共享存储、Data Guard 远程容灾、GoldenGate 双活复制,可以组合出同城加异地的多层保护
- 大规模数据:分区表、多种压缩、并行查询、In-Memory 列存,面向 TB 到 PB 级数据
- 安全合规:TDE 透明加密、Database Vault、细粒度审计、VPD 虚拟专用数据库,满足金融监管要求
- 工具链成熟:RMAN 备份恢复、AWR 性能报告、Data Pump 导入导出,配套完整
2.3 代价是什么
商业 License 按 CPU 核数或命名用户数计费,价格不低;体系庞大,安装、管理、调优的学习曲线比 MySQL 陡;对硬件和运维人力都有更高要求。很多互联网公司选 MySQL,一半是开源生态的原因,另一半就是成本考量。
资料方面,Oracle 的官方文档体系非常完整, Concepts、SQL Reference、Administrator's Guide 三册覆盖了入门到管理的主要问题,遇到问题优先查官方文档。
三、与 MySQL 的定位区别
3.1 对照表
| 对比维度 | Oracle | MySQL |
|---|---|---|
| 授权模式 | 商业收费(有免费 XE/Free 版) | 开源 GPL,企业版收费 |
| 典型场景 | 金融核心、ERP、计费、政务 | 互联网业务、中小系统、日志类 |
| 事务与锁 | 行级锁,Undo 多版本,一致性模型精细 | InnoDB 行级锁,功能够用但精细度较低 |
| 优化器 | CBO 功能强大,执行计划管理丰富 | 相对简单,更依赖索引与写法 |
| 高可用 | RAC / Data Guard / GoldenGate | 主从复制 / MGR / ProxySQL 等社区方案 |
| SQL 方言 | PL/SQL,功能全面 | 存储过程方言相对简单 |
| 体积与部署 | 重,安装配置复杂 | 轻,几分钟可拉起 |
| 运维复杂度 | 高,常有专职 DBA | 低,开发常兼管 |
3.2 怎么理解这个差异
MySQL 的哲学是"够用、轻快、易部署",配合开源生态,适合快速迭代的业务系统;Oracle 的哲学是"不惜成本保一致、保可用",适合停机一分钟都心疼的核心系统。两者更多是并存关系:不少公司的核心账务跑 Oracle,外围业务跑 MySQL,中间用 GoldenGate 或 DataX 做同步。
3.3 从 MySQL 迁移过来容易踩的点
- 空字符串:Oracle 里
''与 NULL 等价,和 MySQL 行为不同 - 分页:MySQL 用
LIMIT,Oracle 用ROWNUM或FETCH FIRST N ROWS ONLY(12c 及以后) - 自增:MySQL 的 AUTO_INCREMENT 对应 Oracle 的 IDENTITY 列(12c 及以后)或序列
- 标识符:Oracle 默认把未加引号的标识符存为大写,双引号括起来才保留小写
- DDL:Oracle 的 DDL 会隐式提交当前事务,事务里混用 DDL 要当心
- 隐式转换:数字与字符比较时 MySQL 和 Oracle 的规则不同,索引失效的场景也不同
- 日期:MySQL 的 NOW()/DATE_FORMAT 对应 Oracle 的 SYSDATE/TO_CHAR,格式化模板写法完全不同
- 拼接:Oracle 用
||连接字符串,CONCAT 只收两个参数,和 MySQL 的 CONCAT 行为不一样
四、版本演进要点
4.1 9i / 10g / 11g:经典时代
- 9i(2001):RAC 架构定型,XML 支持增强
- 10g(2003):"g"代表网格计算,引入 ASM 自动存储管理、AWR 自动工作负载仓库、ADDM 诊断顾问,自动化程度大幅提升
- 11g(2007):引入间隔分区、虚拟列、结果缓存、Health Monitor,是存量仍然很大的版本,很多传统行业的库还跑在 11.2.0.4
- 11g 的扩展支持早已结束,新项目不建议再选
4.2 12c:多租户架构
2013 年发布,最大的变化是 CDB/PDB 多租户架构:一个容器数据库(CDB)里可以插入多个可插拔数据库(PDB),类似"数据库里的虚拟机", consolidation、快速克隆、统一补丁都靠它。12.1.0.2 还引入了 In-Memory 列存。从 20c 起非多租户架构不再被支持,所以 CDB/PDB 是绕不开的概念。
4.3 18c / 19c:长期支持的主力
- 18c(2018):版本号改为年份,属于年度过渡版,支持周期短
- 19c(2019):本质是 12.2 的长期支持版,稳定,扩展支持到 2032 年前后,是当前新项目的主流选择
- 19c 面向 18c 完全兼容,生产系统基本都直接上 19c
4.4 21c 与 23ai
- 21c(2021):创新版,短期支持,主要用来尝鲜,特性有原生 JSON 关系二元性、布尔数据类型等
- 23ai(2024):原名 23c,改名 23ai 突出 AI 能力,并提供了免费的 23ai Free 版本。关键特性:
- AI Vector Search:向量数据类型与相似度搜索,可以直接在库里做 RAG 检索
- 布尔类型、Schema-less 开发体验、注解(Annotations)
- JavaScript 存储过程、微服务与 API 支持增强
- 23ai 的长期支持版本适合有 AI 检索需求的新架构项目评估
4.5 版本速查表
| 版本 | 年份 | 关键词 | 支持情况 | 建议 |
|---|---|---|---|---|
| 11g | 2007 | 存量巨大 | 扩展支持已结束 | 只维护存量,不新建 |
| 12c | 2013 | CDB/PDB | 已停止 | 了解概念即可 |
| 18c | 2018 | 年度过渡 | 已停止 | 跳过 |
| 19c | 2019 | 长期支持 | 至 2032 年左右 | 新项目首选 |
| 21c | 2021 | 创新版 | 短期支持 | 实验特性用 |
| 23ai | 2024 | AI 向量 | 持续迭代 | 新架构可评估 |
五、学习路线
5.1 入门阶段:能熟练用
目标是熟练使用 SQL 与 PL/SQL:多表连接、分组聚合、分析函数(窗口函数)、存储过程与函数、包、异常处理、事务与锁的基本行为、常用数据字典。练习环境推荐本地装 19c 或 23ai Free,客户端用 SQL*Plus 加 SQL Developer 就够了。
SQL*Plus 虽然界面朴素,但随软件自带、到处都在,先熟悉它再换图形工具不迟。
5.2 管理阶段:能独立管
目标是独立管一套库:体系结构(实例、数据库、表空间、文件)、参数文件管理、用户与权限、表空间与数据文件扩容、监听与 tnsnames 配置、RMAN 备份恢复、日常巡检。本系列的安装、建库、参数管理几篇正对应这个阶段。
5.3 调优阶段:能定位与解决
目标是定位并解决性能问题:看懂执行计划、索引原理与失效场景、统计信息管理、AWR/ASH 报告解读、等待事件分析、SQL Profile 与执行计划基线、内存与 IO 调优。调优是经验密集型工作,靠真实案例积累,急不来。
前期把执行计划和统计信息这两件事吃透,大部分慢 SQL 问题就有了抓手。
5.4 高可用阶段:能设计架构
目标是设计容灾架构:RMAN 与恢复演练、Data Guard 主备与切换、RAC 原理与运维、GoldenGate 同步、滚动升级。建议在管理阶段扎实之后再进入。
5.5 路线图
入门(2~3 个月)
SQL / PLSQL / 事务与锁
|
v
管理(3~6 个月)
体系结构 / 安装建库 / 备份权限 / 网络
|
v
调优(持续积累)
执行计划 / 索引统计 / AWR / 等待事件
|
v
高可用(按需深入)
RMAN / Data Guard / RAC / OGG
六、DBA 与开发两种视角
6.1 DBA 视角
关注点在"稳":可用性、备份的可恢复性、空间增长趋势、性能基线、变更管理、安全合规。典型日常工作是巡检告警、处理慢 SQL 工单、扩容、打补丁、容灾演练。看问题的单位是整个实例和数据库的运行状态,常用工具是 AWR、alert 日志、OEM。
6.2 开发视角
关注点在"用":表结构设计、SQL 写法与执行计划、索引设计、事务边界控制、锁等待规避、分页与批量处理。好的 Oracle 开发要理解优化器的基本行为,知道 CBO 什么时候选索引、什么时候走全表扫描,避免写出让生产库抖动的 SQL。
6.3 两个视角的交集
慢 SQL 出现时,DBA 从等待事件和 AWR 定位到具体 SQL,开发从写法、索引、统计信息角度改造它。两边都懂一点,沟通成本会低很多------这也是很多团队让开发学一点体系结构、让 DBA 学一点业务 SQL 的原因。
七、本系列的路线
- 01 篇(本篇):全景与版本选择
- 02 篇:体系结构,实例、内存、进程
- 03 篇:Linux 安装前环境准备
- 05 篇:静默安装常见报错
- 06 篇:卸载与重装
- 07 篇:DBCA 建库
- 08 篇:参数文件 pfile 与 spfile
读完这七篇,可以独立完成一次"裸机到可用数据库"的全流程,并为后续的管理、调优内容打底。
八、入门阶段的常见疑问
学 Oracle 必须买许可吗
个人学习不需要。Oracle 官方提供免费的 23ai Free(核心功能完整,仅内存与数据量有限制),19c 也可以在官网以学习用途下载。桌面虚拟机里装一套练习环境是零成本的。
该装 19c 还是 23ai
目标是求职或对接存量系统,19c 权重更高,市面生产库最多;想接触向量检索、JSON 新特性,再加一套 23ai Free。两者基础操作一致,学会一个再迁移成本很低。
已经会 MySQL 的 SQL,还要补什么
重点补 Oracle 特有的部分:分析函数、层次查询、MERGE 语句、PL/SQL、事务隔离与锁的细节、执行计划的读法。基础 SQL 语法本身可以直接迁移过去用。
没有生产环境,经验从哪来
刻意练习加公开资料:官方文档的 Concepts 手册过一遍,体系结构章节值得精读;在自己搭的环境上做破坏性实验------改错参数、模拟文件损坏、kill 后台进程------恢复过程就是最好的实战;AWR 报告解读可以从模拟压测入手。
有必要搭 RAC 练习吗
入门阶段没有必要。RAC 对存储和网络模拟的要求高,占资源、排错点多,性价比低。先把单实例的管理与备份恢复练扎实,RAC 的概念(集群、SCAN、脑裂)通过文档理解即可,工作需要时再上手。
英文文档看不动怎么办
Oracle 核心术语数量有限(SGA、checkpoint、undo 这类),先记术语再看原文,比读二手翻译准确。报错信息的官方解释也以英文文档为准。
每天学多久,多久能上手管理
按每天 1~2 小时,三个月可以覆盖入门加基础管理,独立完成安装建库、用户权限、备份策略这些日常。调优没有固定时间表,靠案例一点点攒。
九、要点总结
- Oracle 的强项是高并发事务、高可用体系和企业级管理能力,代价是商业授权和较陡的学习曲线
- 与 MySQL 不是替代关系,核心系统与外围业务经常并存
- 版本选择:新项目主流是 19c,需要 AI 向量特性可评估 23ai,11g 只维护不新建
- 学习路径:SQL/PLSQL → 管理 → 调优 → 高可用,体系结构是管理阶段的基石
- DBA 看稳定性,开发看 SQL 质量,两种视角互补,能对上话问题就解决了一半
- 版本演进的主线:自动化(10g)、多租户(12c)、长期稳定(19c)、AI(23ai)