Oracle 19c入门学习教程,从入门到精通,Oracle管理工具 —— 知识点详解(3)

Oracle管理工具

一、需求理解

基于Oracle 19c第3章"Oracle管理工具"的核心内容(涵盖SQL*Plus、SQL Developer、OEM、DBCA),整理一份包含工具安装/配置过程、核心使用语法及案例的教程,每个知识点配套带详细注释的实操代码,并补充综合性案例,确保内容具体、全面且可直接落地。

二、核心知识点及实操指南

前置:Oracle 19c 基础安装(Linux环境,支撑工具使用)
bash 复制代码
# 1. Root用户配置依赖(简化版,完整安装见前序章节)
yum install -y binutils gcc libaio-devel ksh
groupadd oinstall && useradd -g oinstall oracle && passwd oracle
mkdir -p /u01/app/oracle/product/19c/dbhome_1 && chown -R oracle:oinstall /u01

# 2. Oracle用户静默安装(仅安装软件+创建数据库)
su - oracle
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/dbhome_1/
cat > /u01/app/oracle/product/19c/dbhome_1/response/dbca.rsp << EOF
[GENERAL]
RESPONSEFILE_VERSION = "19.0.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "Sys123456"
SYSTEMPASSWORD = "System123456"
SYSMANPASSWORD = "Sysman123456"
DBSNMPPASSWORD = "Dbsnmp123456"
DATAFILEDESTINATION = "/u01/app/oracle/oradata"
RECOVERYAREADESTINATION = "/u01/app/oracle/fast_recovery_area"
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "2048"
EOF
# 执行安装+建库
/u01/app/oracle/product/19c/dbhome_1/runInstaller -silent -responseFile /u01/app/oracle/product/19c/dbhome_1/response/db_install.rsp -ignorePrereq
/u01/app/oracle/product/19c/dbhome_1/bin/dbca -silent -responseFile /u01/app/oracle/product/19c/dbhome_1/response/dbca.rsp
# 配置环境变量
echo "export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1; export PATH=\$ORACLE_HOME/bin:\$PATH; export ORACLE_SID=orcl" >> ~/.bash_profile
source ~/.bash_profile
知识点1:SQL*Plus 工具(核心命令行工具)
1.1 核心语法:启动/连接/操作/退出
操作类型 语法格式 说明
启动SQL*Plus sqlplus [用户名/密码@实例名] [AS SYSDBA] 本地/远程连接,SYSDBA为管理员权限
切换用户 CONNECT 用户名/密码[@实例名] [AS SYSDBA] 无需退出,直接切换连接用户
执行SQL SELECT/INSERT/UPDATE/DELETE 语句; 以分号结尾执行,支持所有SQL语法
格式化输出 SET LINESIZE 行数; SET PAGESIZE 页数; 调整查询结果显示格式
保存执行结果 SPOOL 文件名; 执行SQL; SPOOL OFF; 将查询结果保存到文件
退出SQL*Plus EXIT; / QUIT; 两种命令等效,退出工具
1.2 实操案例(带详细注释)
bash 复制代码
# ==================== 方式1:本地启动SQL*Plus(分步输入密码) ====================
sqlplus /nolog  # 启动SQL*Plus但不登录
sql 复制代码
-- 1. 连接SCOTT用户(需先解锁SCOTT,默认密码tiger)
-- 先以SYSDBA身份解锁SCOTT
CONNECT sys/Sys123456@orcl AS SYSDBA;
ALTER USER SCOTT ACCOUNT UNLOCK;  -- 解锁SCOTT用户
ALTER USER SCOTT IDENTIFIED BY tiger;  -- 重置密码为tiger

-- 2. 切换到SCOTT用户
CONNECT SCOTT/tiger@orcl;

-- 3. 格式化输出(避免查询结果换行)
SET LINESIZE 120;  -- 设置行宽120字符
SET PAGESIZE 50;   -- 设置每页显示50行
SET FEEDBACK ON;   -- 显示执行结果行数

-- 4. 查询SCOTT默认表(EMP员工表)
-- 查询部门编号为20的员工信息
SELECT EMPNO, ENAME, JOB, SAL, DEPTNO 
FROM EMP 
WHERE DEPTNO = 20;
-- 输出结果示例:
--      EMPNO ENAME      JOB              SAL     DEPTNO
-- ---------- ---------- --------- ---------- ----------
--       7369 SMITH      CLERK            800         20
--       7876 ADAMS      CLERK           1100         20
--       7902 FORD       ANALYST         3000         20

-- 5. 插入数据(SCOTT用户权限内)
INSERT INTO EMP (EMPNO, ENAME, JOB, SAL, DEPTNO)
VALUES (9999, 'TEST', 'CLERK', 2000, 20);
COMMIT;  -- 提交事务

-- 6. 保存查询结果到文件
SPOOL /home/oracle/emp_query.txt;  -- 开启输出到文件
SELECT * FROM EMP WHERE DEPTNO = 20;
SPOOL OFF;  -- 关闭输出,文件保存完成

-- 7. 退出SQL*Plus
EXIT;
bash 复制代码
# ==================== 方式2:一键登录SQL*Plus(命令行直接带密码) ====================
sqlplus SCOTT/tiger@orcl << EOF
SET LINESIZE 120;
SELECT ENAME, SAL FROM EMP WHERE SAL > 2000;
EXIT;
EOF
知识点2:SQL Developer 工具(图形化工具)
2.1 安装与配置(Windows/Linux通用)
2.1.1 下载与安装
  1. 下载地址:Oracle官网(https://www.oracle.com/database/sqldeveloper/technologies/download/);
  2. 安装要求:需JDK 8+(SQL Developer 21+内置JDK,无需单独安装);
  3. 安装步骤:
    • Windows:解压zip包,双击 sqldeveloper.exe 启动;
    • Linux:解压zip包,执行 ./sqldeveloper.sh 启动。
2.1.2 创建数据库连接
plaintext 复制代码
【操作步骤】
1. 启动SQL Developer,左侧点击「连接」→「新建连接」;
2. 填写连接信息(核心字段):
   - 连接名称:SCOTT_ORCL(自定义);
   - 用户名:SCOTT;
   - 密码:tiger(勾选「保存密码」);
   - 主机名:localhost(远程数据库填IP);
   - 端口:1521(Oracle默认端口);
   - SID:orcl(实例名);
3. 点击「测试」→ 显示「状态:成功」→ 点击「连接」,完成创建。
2.2 核心操作案例(图形化+SQL结合)
sql 复制代码
-- ==================== 案例1:在SQL Developer中执行查询(带注释) ====================
-- 1. 打开「工作表」,输入以下SQL(查询SCOTT.EMP表并按薪资排序)
-- 格式化查询:查询员工编号、姓名、职位、薪资,按薪资降序排列
SELECT 
    EMPNO AS "员工编号",
    ENAME AS "员工姓名",
    JOB AS "职位",
    SAL AS "月薪",
    DEPTNO AS "部门编号"
FROM SCOTT.EMP
WHERE SAL IS NOT NULL
ORDER BY SAL DESC;

-- 执行方式:点击工具栏「运行」(绿色三角)或按F9,结果显示在「查询结果」标签页。

-- ==================== 案例2:可视化管理表结构 ====================
-- 1. 左侧「连接」→ 展开SCOTT → 「表」→ 右键EMP → 「查看」→ 「列」:
--    可可视化查看EMP表的列名、数据类型、是否非空、默认值等;
-- 2. 右键EMP → 「编辑」:可直接修改表结构(如新增列、修改数据类型),无需写ALTER语句;
-- 示例:新增「入职日期」列(可视化操作等效SQL)
ALTER TABLE SCOTT.EMP ADD (HIREDATE_NEW DATE);

-- ==================== 案例3:导出数据 ====================
-- 1. 查询结果标签页 → 右键结果集 → 「导出」;
-- 2. 选择导出格式(Excel/CSV/XML)→ 选择保存路径 → 确认,完成数据导出。
知识点3:企业管理器(OEM)与数据库配置助手(DBCA)
3.1 数据库配置助手(DBCA):创建/删除数据库(命令行+图形化)
3.1.1 核心语法(命令行静默操作)
bash 复制代码
# ==================== 1. 静默创建数据库 ====================
su - oracle
# 编写DBCA响应文件
cat > /home/oracle/dbca_create.rsp << EOF
RESPONSEFILE_VERSION = "19.0.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "testdb"  # 全局数据库名
SID = "testdb"      # 实例名
SYSPASSWORD = "Sys123456"
SYSTEMPASSWORD = "System123456"
DATAFILEDESTINATION = "/u01/app/oracle/oradata"  # 数据文件目录
RECOVERYAREADESTINATION = "/u01/app/oracle/fast_recovery_area"  # 恢复区
CHARACTERSET = "AL32UTF8"  # 字符集
TOTALMEMORY = "2048"       # 分配内存(MB)
EOF
# 执行静默创建
dbca -silent -responseFile /home/oracle/dbca_create.rsp

# ==================== 2. 静默删除数据库 ====================
dbca -silent -deleteDatabase -sourceDB testdb -sysDBAUserName sys -sysDBAPassword Sys123456

# ==================== 3. 图形化启动DBCA(Linux) ====================
dbca  # 需配置图形化环境(如Xmanager),Windows直接双击dbca.exe
3.1.2 DBCA图形化操作步骤
plaintext 复制代码
【创建数据库步骤】
1. 启动DBCA → 选择「创建数据库」→ 下一步;
2. 选择「高级配置」→ 下一步;
3. 选择数据库模板(如「一般用途或事务处理」)→ 下一步;
4. 填写全局数据库名(如orcl)、SID(如orcl)→ 下一步;
5. 配置管理选项(启用OEM本地管理)→ 下一步;
6. 设置SYS/SYSTEM密码 → 下一步;
7. 指定数据文件存储位置 → 下一步;
8. 配置恢复区 → 下一步;
9. 选择字符集(如AL32UTF8)→ 下一步;
10. 配置内存(自动分配/手动分配)→ 下一步;
11. 配置进程数、连接数 → 下一步;
12. 确认配置 → 点击「完成」,开始创建数据库。
3.2 企业管理器(OEM):Web版数据库管理工具
3.2.1 OEM启动与访问
bash 复制代码
# 1. 启动OEM(19c默认启用,依赖EMCDB服务)
su - oracle
emctl start dbconsole  # 11g/12c命令,19c使用EM Express
# 19c EM Express访问方式:
# 1. 查看EM Express端口(默认5500)
sqlplus / as sysdba
SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM DUAL;
# 2. 访问地址:https://<主机IP>:5500/em
# 3. 登录:用户名sys,密码Sys123456,选择「SYSDBA」身份
3.2.2 OEM核心操作案例
plaintext 复制代码
【操作1:监控数据库状态】
1. 登录EM Express → 首页显示数据库实例状态、CPU使用率、内存使用率、存储使用率;
2. 点击「性能」标签,查看实时SQL执行情况、等待事件,定位性能瓶颈。

【操作2:管理SCOTT用户】
1. 点击「安全」→ 「用户」→ 搜索「SCOTT」;
2. 可可视化解锁用户、修改密码、授予/撤销权限(如授予CREATE TABLE权限)。

【操作3:执行SQL语句】
1. 点击「SQL工作室」→ 「SQL工作表」;
2. 输入SQL语句(如SELECT * FROM SCOTT.EMP;)→ 点击「执行」,查看结果。

三、综合性案例:多工具协同管理SCOTT用户数据

案例目标

通过SQL*Plus、SQL Developer、DBCA、OEM四种工具,完成"创建测试数据库→解锁SCOTT→查询/修改数据→监控状态"的全流程。

完整实操步骤
bash 复制代码
# ==================== 阶段1:DBCA创建测试数据库 ====================
su - oracle
# 1. 编写DBCA响应文件
cat > /home/oracle/testdb.rsp << EOF
RESPONSEFILE_VERSION = "19.0.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "testdb"
SID = "testdb"
SYSPASSWORD = "Sys123456"
SYSTEMPASSWORD = "System123456"
DATAFILEDESTINATION = "/u01/app/oracle/oradata"
RECOVERYAREADESTINATION = "/u01/app/oracle/fast_recovery_area"
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "2048"
EOF
# 2. 静默创建数据库
dbca -silent -responseFile /home/oracle/testdb.rsp

# ==================== 阶段2:SQL*Plus解锁SCOTT并初始化数据 ====================
sqlplus sys/Sys123456@testdb AS SYSDBA << EOF
-- 1. 解锁并重置SCOTT密码
ALTER USER SCOTT ACCOUNT UNLOCK;
ALTER USER SCOTT IDENTIFIED BY tiger;
-- 2. 切换到SCOTT,插入测试数据
CONNECT SCOTT/tiger@testdb;
INSERT INTO EMP (EMPNO, ENAME, JOB, SAL, DEPTNO) VALUES (8888, 'ZHANGSAN', 'ENGINEER', 5000, 30);
COMMIT;
-- 3. 查询验证
SELECT ENAME, SAL FROM EMP WHERE EMPNO = 8888;
EXIT;
EOF

# ==================== 阶段3:SQL Developer可视化管理 ====================
# 1. 启动SQL Developer,创建连接:
#    连接名:TESTDB_SCOTT,用户名SCOTT,密码tiger,主机localhost,端口1521,SID testdb;
# 2. 在工作表执行:
#    UPDATE EMP SET SAL = 5500 WHERE EMPNO = 8888;
#    COMMIT;
# 3. 导出EMP表数据为Excel文件,保存到本地。

# ==================== 阶段4:OEM监控与管理 ====================
# 1. 访问EM Express:https://<主机IP>:5500/em;
# 2. 登录sys/Sys123456(SYSDBA身份);
# 3. 查看testdb实例状态,确认CPU/内存使用率;
# 4. 进入「SQL工作表」,执行:
#    SELECT EMPNO, ENAME, SAL FROM SCOTT.EMP WHERE DEPTNO = 30;
# 5. 验证数据修改结果(ZHANGSAN薪资为5500)。

# ==================== 阶段5:清理测试环境(可选) ====================
# 1. SQL*Plus删除测试数据
sqlplus SCOTT/tiger@testdb << EOF
DELETE FROM EMP WHERE EMPNO = 8888;
COMMIT;
EXIT;
EOF
# 2. DBCA删除测试数据库
dbca -silent -deleteDatabase -sourceDB testdb -sysDBAUserName sys -sysDBAPassword Sys123456

四、总结

  1. SQL*Plus核心 :Oracle原生命令行工具,支持启动/连接/执行SQL/格式化输出,是运维基础,需掌握CONNECTSETSPOOL等核心命令;
  2. SQL Developer优势:图形化工具,无需记忆复杂语法,支持可视化建表、导出数据、编辑表结构,适合开发人员;
  3. DBCA/OEM定位:DBCA用于数据库的创建/删除(命令行+图形化),OEM是Web版管理工具,支持监控、用户管理、SQL执行,适合运维人员;
  4. 工具协同:SQL*Plus适合批量脚本执行,SQL Developer适合开发调试,DBCA/OEM适合数据库生命周期管理,需根据场景选择。
相关推荐
科技林总2 小时前
【系统分析师】4.1 计算机网络基础
学习
天天睡大觉2 小时前
Python学习9
开发语言·python·学习
aigcapi2 小时前
中转API哪家好?2026主流服务商横向测评+全场景选型指南
数据库·api
2301_797312262 小时前
学习Java39天
开发语言·python·学习
Reenrr2 小时前
C++学习
开发语言·c++·学习
悟道|养家2 小时前
批量处理与向量化计算(8)
数据库·oracle·性能优化
陈天伟教授2 小时前
关系数据库-03. 关系的完整性-实体完整性
数据库·达梦数据库·国产数据库
望忆2 小时前
关于《SaviorRec: Semantic-Behavior Alignment for Cold-StartRecommendation》的学习
学习
什么都不会的Tristan2 小时前
redis-原理篇-ZipList(压缩列表)
数据库·redis·缓存