OracleDB 笔记整理
1. SQL 分类
分类 |
说明 |
关键字 |
DML (Data Manipulation Language) |
数据操作语言 |
SELECT , INSERT , UPDATE , DELETE , MERGE |
DDL (Data Definition Language) |
数据定义语言 |
CREATE , ALTER , DROP , RENAME , TRUNCATE , COMMENT |
DCL (Data Control Language) |
数据控制语言 |
GRANT , REVOKE |
事务 (Transaction) |
事务控制 |
COMMIT , ROLLBACK , SAVEPOINT |
2. OracleDB 构成
2.1 基本构成
OracleDB 由 Oracle实例(instance) 和 Database 构成:
- 实例(Instance) 由:
- SGA(System Global Area):内存区域
- Background Process:后台进程
- Database 由:
- 控制文件(制御ファイル)
- REDO 文件(REDO ログ)
- 数据文件(データファイル)
2.2 进程视角
除了实例中的 Background Process,还包括:
2.3 工具列表
安装和升级相关工具
工具名 |
用途 |
Oracle Universal Installer (OUI) |
安装 Oracle 软件 |
Oracle Database Configuration Assistant (DBCA) |
创建数据库 |
Oracle Database Upgrade Assistant (DBUA) |
升级现有数据库到新版本 |
网络相关工具
工具名 |
用途 |
Oracle Net Manager (netmgr) |
配置 Oracle 网络 |
Oracle Net Configuration Assistant (netca) |
配置 Oracle 网络 |
实例和数据库管理工具
工具名 |
用途 |
Oracle Enterprise Manager (EM) |
管理 Oracle DB |
SQL*Plus |
SQL 命令行工具 |
SQL Developer |
图形化数据库管理工具 |
Recovery Manager (RMAN) |
数据库备份、恢复、复原 |
Oracle Secure Backup |
备份管理 |
Data Pump |
数据库间高速数据传输 |
SQL*Loader |
外部文件数据批量导入 |
3. 安装
3.1 OUI 功能
- 显示已安装的 Oracle 软件
- 安装新软件
- 删除软件
- 查看在线帮助
- 检查安装需求
3.2 系统要求
3.3 创建用户和组
- 软件所有者:Oracle 用户
- Oracle Inventory Group:用于管理 Oracle 软件
- DB 管理组:
OSDBA
:数据库管理员组
OSOPER
:受限制的数据库管理员组
3.4 环境变量
变量名 |
说明 |
ORACLE_BASE |
Oracle 主目录 |
ORACLE_HOME |
Oracle 软件安装位置 |
ORACLE_SID |
系统标识(实例名) |
LD_LIBRARY_PATH |
共享库路径(如 $ORACLE_HOME/lib ) |
3.5 安装脚本
脚本名 |
用途 |
orainstRoot.sh |
生成 inventory pointer 文件 |
root.sh |
生成 oratab 并设置环境变量 (oraenv 和 coraenv ),指定 dbstart 和 dbshut 脚本 |
3.6 创建数据库(DBCA)
3.6.1 指定 Global DB 名
格式:database_name.domain_name
3.6.2 Enterprise Manager 选项
- Database Express:单数据库管理
- Cloud Control:集中管理多个数据库(需预先安装 Cloud Control)
3.6.3 存储类型
类型 |
说明 |
文件系统 |
使用操作系统文件 |
ASM (Automatic Storage Management) |
文件存储在 ASM 磁盘组,需额外实例 |
3.6.4 数据库文件位置
- 使用模板的文件位置
- 所有数据库文件共享文件夹
- Oracle Managed Files:由 Oracle 直接管理文件
3.6.5 模板
模板包含以下信息:
- 数据库选项
- 初始化参数
- 存储属性(数据文件、表空间、控制文件、REDO 日志属性)
模板分类
模板类型 |
说明 |
通用事务处理(默认) |
适用于 OLTP 场景 |
数据仓库 (Data Warehouse) |
适用于复杂查询和大数据处理 |
自定义模板 |
用户自定义配置 |
模板形式
形式 |
说明 |
Sheet Template |
包含现有数据库结构和物理文件 |
Non-Sheet Template |
仅包含数据库特性 |
4. EM Express
4.1 功能
- 提供数据库管理功能(不包括启动/停止数据库)
- 如需启动/停止数据库,需使用 Oracle Enterprise Manager Cloud Control
4.2 手动配置 EM Express
- 启动监听进程
- 初始化
DISPATCHERS
参数(设置 PROTOCOL=TCP
):1
| dispatchers="(PROTOCOL=TCP)(SERVICE=<sid>XDB)"
|
- 设置端口(需
SYSDBA
权限):1
| EXEC DBMS_XDB_CONFIG.setHTTPSPORT(5500);
|
4.3 使用 EM Express
4.3.1 查询 EM Express 端口
1
| SELECT DBMS_XDB_CONFIG.getHTTPSPort FROM DUAL;
|
4.3.2 权限分配
权限 |
说明 |
EM_EXPRESS_BASIC |
只读模式 |
EM_EXPRESS_ALL |
完全权限 |
4.4 连接数据库
4.4.1 SQL*Plus 连接方式
- 运行
oraenv
设置环境变量:
- 启动 SQL*Plus(
/nolog
表示不登录数据库):
- 连接数据库:
1
| CONNECT <用户名>/<密码> [AS SYSDBA | AS SYSOPER]
|
- 其他功能:
4.4.2 SQL Developer 连接方式
- 运行
oraenv
设置环境变量:
- 启动 SQL Developer:
1 2
| cd $ORACLE_HOME/sqldeveloper sh sqldeveloper.sh
|
- 功能:
- 普通模式:查看、创建、编辑、删除表、视图等对象
- DBA Navigator:连接 DBA 用户后可启动/停止数据库
5. Oracle 网络构成
5.1 Oracle Net 概述
- 功能:提供网络服务
- 安装方式:随 Oracle 数据库软件或客户端一同安装
- 通信模式:
- 客户端-服务端模式:两端均需安装 Oracle Net
- 客户端-Web 服务器-DB 服务器模式:客户端和 Web 服务器需安装 Oracle Net
5.2 通信条件
角色 |
要求 |
DB 服务端 |
1. 网络服务器在线 2. 已安装 Oracle DB 3. 支持 TCP/IP 协议 4. 监听进程已启动 |
客户端 |
1. 网络服务器在线 2. 已安装 Oracle 客户端 3. 支持 TCP/IP 协议 |
5.3 监听进程
5.4 客户端构成
- 数据库连接示例:
1 2 3
| CONNECT hr@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = proj1-sv)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = sales.edifist.com)))
|
5.5 命名方法
类型 |
存储位置 |
说明 |
本地命名 |
客户端 tnsnames.ora |
网络服务名映射存储在本地文件 |
LDAP 基准 |
LDAP 服务器 |
集中管理服务名映射 |
简易连接命名 |
无 |
直接使用 TCP/IP 连接字符串(如 connect scott@host名/服务名 ) |
外部命名 |
第三方命名服务(如 NIS) |
依赖非 Oracle 服务 |
本地命名配置方法
简易连接示例
1 2
| sqlplus /nolog SQL> CONNECT hr/hr@oracle_sv/orcl.edifist.com
|
6. 数据库服务器架构概要
6.1 核心组件
- Oracle 实例:内存结构(SGA) + 后台进程
- Oracle 数据库:物理文件集合
6.2 SGA (System Global Area) 构成
组件 |
功能 |
数据库缓存 |
存储数据块(Buffer Cache) |
REDO 日志 Buffer |
记录数据变更历史 |
共享池 |
缓存 SQL/PLSQL 解析结果、执行计划、数据字典 |
Large Pool |
可选,用于共享服务器模式、并行查询、RMAN 备份等 |
Java Pool |
支持 Java 虚拟机(JVM) |
Stream Pool |
支持 Oracle Stream 数据复制 |
6.3 关键后台进程
进程 |
名称 |
功能 |
SMON |
System Monitor |
实例恢复(如崩溃后自动修复) |
PMON |
Process Monitor |
清理异常终止的用户进程资源 |
DBWn |
Database Writer |
将脏缓冲区写入数据文件 |
CKPT |
Checkpoint |
触发 DBWn 写入,更新控制文件(用于灾难恢复) |
LGWR |
Log Writer |
将 REDO 日志缓冲区写入磁盘 |
ARCn |
Archiver |
归档 REDO 日志 |
MMON |
Manageability Monitor |
执行 AWR(自动工作负载仓库)相关任务 |
6.4 用户与服务器进程
- 用户进程:运行应用程序(如 SQL*Plus)
- 服务器进程:处理用户提交的 SQL 查询
6.5 PGA (Program Global Area)
- 特点:非共享内存,仅限单个进程访问
- 用途:存储 SQL 执行时的排序区、会话信息等
7. 实例启停
7.1 启动方法
- SQL*Plus(
STARTUP
命令)
- Windows 服务管理器
- SQL Developer
- Enterprise Manager Cloud Control
7.2 启动状态迁移
状态 |
描述 |
NOMOUNT |
读取参数文件,分配 SGA,启动后台进程(控制文件未打开) |
MOUNT |
打开控制文件(获知数据文件/日志文件路径,但未打开文件) |
OPEN |
打开所有数据文件和 REDO 日志,数据库可用 |
7.3 权限要求
权限 |
能力 |
SYSDBA |
完全控制(包括启停实例、用户授权) |
SYSOPER |
仅限启停实例(无权管理用户对象) |
连接示例
1 2 3 4
| CONNECT 用户名/密码 AS {SYSOPER | SYSDBA} sqlplus /nolog CONNECT sys AS sysdba STARTUP
|
7.4 停止流程
- 关闭数据库(OPEN → CLOSED)
- 执行 Checkpoint,写入数据文件和 REDO 日志
- 关闭数据文件和 REDO 日志(控制文件仍打开)
- 卸载数据库(CLOSED → DISMOUNT)
- 停止实例(DISMOUNT → SHUTDOWN)
7.5 停止模式对比
行为 |
NORMAL |
TRANSACTIONAL |
IMMEDIATE |
ABORT |
接受新连接 |
× |
× |
× |
× |
等待当前会话结束 |
✓ |
✓ |
× |
× |
等待当前事务结束 |
✓ |
✓ |
✓ |
× |
执行 Checkpoint 后关闭 |
✓ |
✓ |
✓ |
× |
7.6 初始化参数文件
类型 |
名称 |
特点 |
静态 |
PFILE(文本文件) |
手动编辑,需重启生效 |
动态 |
SPFILE(二进制文件) |
支持在线修改(ALTER SYSTEM ),优先使用 |