oracelDB基础

分類 database, oracleDB

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 系统要求

  • 内存:1GB
  • SWAP:1.5GB
  • 硬盘空间
    • 最小 1GB
    • 一般需要 6.1GB

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 并设置环境变量 (oraenvcoraenv),指定 dbstartdbshut 脚本

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

  1. 启动监听进程
  2. 初始化 DISPATCHERS 参数(设置 PROTOCOL=TCP):
    1
    dispatchers="(PROTOCOL=TCP)(SERVICE=<sid>XDB)"
  3. 设置端口(需 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 连接方式

  1. 运行 oraenv 设置环境变量:
    1
    . oraenv
  2. 启动 SQL*Plus(/nolog 表示不登录数据库):
    1
    sqlplus /nolog
  3. 连接数据库:
    1
    CONNECT <用户名>/<密码> [AS SYSDBA | AS SYSOPER]
  4. 其他功能:
    • 执行 SQL 脚本:
      1
      @<sql文件名>
    • 执行操作系统命令:
      1
      HOST <命令>  # 例如:HOST ls

4.4.2 SQL Developer 连接方式

  1. 运行 oraenv 设置环境变量:
    1
    . oraenv
  2. 启动 SQL Developer:
    1
    2
    cd $ORACLE_HOME/sqldeveloper
    sh sqldeveloper.sh
  3. 功能:
    • 普通模式:查看、创建、编辑、删除表、视图等对象
    • 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 监听进程

  • 自动安装:通过 OUI 初始化 DB 时,NetCA 会默认安装监听进程

  • 作用:处理客户端连接请求(连接建立后不再参与通信)

  • 关键命令

    命令 功能
    lsnrctl start <监听进程名> 启动监听进程
    lsnrctl stop <监听进程名> 停止监听进程
    lsnrctl status <监听进程名> 查看状态
    lsnrctl services <监听进程名> 查看支持的服务
    LSNRCTL> set current_listener <名称> 切换监听进程(需交互模式)

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
netca  # 启动图形化配置工具

简易连接示例

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 停止流程

  1. 关闭数据库(OPEN → CLOSED)
    • 执行 Checkpoint,写入数据文件和 REDO 日志
    • 关闭数据文件和 REDO 日志(控制文件仍打开)
  2. 卸载数据库(CLOSED → DISMOUNT)
    • 实例与数据库分离
  3. 停止实例(DISMOUNT → SHUTDOWN)
    • 终止后台进程,释放 SGA 内存

7.5 停止模式对比

行为 NORMAL TRANSACTIONAL IMMEDIATE ABORT
接受新连接 × × × ×
等待当前会话结束 × ×
等待当前事务结束 ×
执行 Checkpoint 后关闭 ×

7.6 初始化参数文件

类型 名称 特点
静态 PFILE(文本文件) 手动编辑,需重启生效
动态 SPFILE(二进制文件) 支持在线修改(ALTER SYSTEM),优先使用

留言與分享

  • 第 1 頁 共 1 頁
作者的圖片

Kein Chan

這是獨立全棧工程師Kein Chan的技術博客
分享一些技術教程,命令備忘(cheat-sheet)等


全棧工程師
資深技術顧問
數據科學家
Hit廣島觀光大使


Tokyo/Macau