Oracle数据库学习知识点(终)

简介: 教程来源 https://app-ag9255nx2k8x.appmiaoda.com 介绍Oracle数据库安全管理(用户/权限/审计)、性能诊断工具(AWR/ADDM/SQL调优)及常见问题排查方法(性能瓶颈、空间不足等),涵盖创建用户、配置Profile、细粒度审计、自动生成AWR报告、SQL优化任务及表空间监控等核心实践,助力高效运维与深度调优。

十、安全管理

10.1 用户管理

-- 创建用户
CREATE USER app_user IDENTIFIED BY password
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE temp
    QUOTA UNLIMITED ON users;

-- 创建profile
CREATE PROFILE app_profile LIMIT
    SESSIONS_PER_USER 10
    IDLE_TIME 30
    CONNECT_TIME 480
    FAILED_LOGIN_ATTEMPTS 5
    PASSWORD_LOCK_TIME 1
    PASSWORD_LIFE_TIME 90
    PASSWORD_REUSE_TIME 180
    PASSWORD_REUSE_MAX 5;

-- 应用profile
ALTER USER app_user PROFILE app_profile;

-- 修改用户
ALTER USER app_user IDENTIFIED BY new_password;
ALTER USER app_user ACCOUNT LOCK;
ALTER USER app_user ACCOUNT UNLOCK;
ALTER USER app_user QUOTA 500M ON users;

-- 删除用户
DROP USER app_user CASCADE;

10.2 权限管理

-- 系统权限
GRANT CREATE SESSION TO app_user;
GRANT CREATE TABLE TO app_user;
GRANT CREATE VIEW TO app_user;
GRANT CREATE PROCEDURE TO app_user;
GRANT UNLIMITED TABLESPACE TO app_user;

-- 对象权限
GRANT SELECT, INSERT, UPDATE, DELETE ON employees TO app_user;
GRANT EXECUTE ON emp_pkg TO app_user;
GRANT SELECT ON employees TO app_user WITH GRANT OPTION;

-- 角色
CREATE ROLE app_role;
GRANT SELECT ON employees TO app_role;
GRANT CREATE SESSION TO app_role;
GRANT app_role TO app_user;

-- 查看权限
SELECT * FROM user_sys_privs;
SELECT * FROM user_tab_privs;
SELECT * FROM user_role_privs;

-- 撤销权限
REVOKE DELETE ON employees FROM app_user;
REVOKE app_role FROM app_user;

10.3 审计

-- 启用审计
ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
-- 重启数据库

-- 标准审计
AUDIT SELECT, INSERT, UPDATE, DELETE ON employees BY ACCESS;
AUDIT CREATE TABLE BY app_user BY ACCESS;
AUDIT SESSION BY app_user;

-- 细粒度审计(FGA)
BEGIN
    DBMS_FGA.ADD_POLICY(
        object_schema => 'SCOTT',
        object_name => 'EMPLOYEES',
        policy_name => 'EMP_SALARY_AUDIT',
        audit_condition => 'salary > 10000',
        audit_column => 'SALARY',
        handler_schema => 'SCOTT',
        handler_module => 'LOG_SALARY_ACCESS',
        enable => TRUE
    );
END;
/

-- 查看审计记录
SELECT * FROM dba_audit_trail;
SELECT * FROM dba_fga_audit_trail;

-- 关闭审计
NOAUDIT SELECT ON employees;

十一、性能诊断工具

11.1 AWR(自动工作负载库)

-- 手动生成快照
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

-- 生成AWR报告
@$ORACLE_HOME/rdbms/admin/awrrpt.sql

-- 查看AWR配置
SELECT * FROM dba_hist_wr_control;

-- 修改快照间隔
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
    retention => 43200,  -- 30天
    interval => 60       -- 60分钟
);

11.2 ADDM(自动数据库诊断监视器)

-- 运行ADDM
DECLARE
    v_task_name VARCHAR2(30);
BEGIN
    v_task_name := DBMS_ADDM.ANALYZE_DB(
        begin_snapshot => 100,
        end_snapshot => 110,
        dbid => (SELECT dbid FROM v$database)
    );
END;
/

-- 查看ADDM报告
SELECT DBMS_ADDM.GET_REPORT(v_task_name) FROM dual;

11.3 SQL Tuning Advisor

-- 创建优化任务
DECLARE
    v_task_name VARCHAR2(30);
BEGIN
    v_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
        sql_id => 'xxxxxx',
        scope => 'COMPREHENSIVE',
        time_limit => 120,
        task_name => 'tune_emp_query'
    );
    DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'tune_emp_query');
END;
/

-- 查看优化建议
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tune_emp_query') FROM dual;

-- 删除任务
EXEC DBMS_SQLTUNE.DROP_TUNING_TASK('tune_emp_query');

十二、常见问题排查

12.1 性能问题

-- 查询当前最耗时的SQL
SELECT 
    sql_id,
    sql_text,
    elapsed_time/1000000 AS elapsed_seconds,
    cpu_time/1000000 AS cpu_seconds,
    buffer_gets,
    disk_reads,
    executions
FROM v$sql
WHERE elapsed_time > 10000000  -- 超过10秒
ORDER BY elapsed_time DESC
FETCH FIRST 10 ROWS ONLY;

-- 查询等待事件
SELECT 
    event,
    total_waits,
    time_waited/100 AS time_waited_seconds,
    average_wait/100 AS avg_wait_seconds
FROM v$system_event
WHERE wait_class != 'Idle'
ORDER BY time_waited DESC;

-- 查询会话等待
SELECT 
    s.sid,
    s.serial#,
    s.username,
    w.event,
    w.wait_time_micro/1000000 AS wait_seconds,
    w.state
FROM v$session s
JOIN v$session_wait w ON s.sid = w.sid
WHERE w.event NOT LIKE '%Idle%'
ORDER BY wait_seconds DESC;

12.2 空间问题

-- 查看表空间使用率
SELECT 
    tablespace_name,
    ROUND(SUM(bytes)/1024/1024, 2) AS total_mb,
    ROUND(SUM(SUM(bytes)) OVER ()/1024/1024, 2) AS total_db_mb,
    ROUND(SUM(CASE WHEN autoextensible = 'YES' THEN maxbytes ELSE bytes END)/1024/1024, 2) AS max_mb,
    ROUND(SUM(bytes)/1024/1024, 2) AS used_mb,
    ROUND((SUM(bytes)/SUM(CASE WHEN autoextensible = 'YES' THEN maxbytes ELSE bytes END))*100, 2) AS usage_pct
FROM dba_data_files
GROUP BY tablespace_name
ORDER BY usage_pct DESC;

-- 添加数据文件
ALTER TABLESPACE users ADD DATAFILE '/u01/app/oracle/oradata/orcl/users02.dbf' SIZE 10G AUTOEXTEND ON NEXT 100M MAXSIZE 32G;

-- 收缩表
ALTER TABLE employees ENABLE ROW MOVEMENT;
ALTER TABLE employees SHRINK SPACE CASCADE;

-- 重建索引
ALTER INDEX idx_emp_name REBUILD ONLINE;

Oracle数据库作为企业级数据库的标杆,其功能之强大、体系之完善令人叹为观止。从基础概念到高级特性,从日常操作到性能调优,系统性地梳理了Oracle数据库的核心知识点。掌握这些内容,你不仅能熟练使用Oracle数据库,更能深入理解其内部原理,应对各种复杂的企业级应用场景。
来源:https://app-ag9255nx2k8x.appmiaoda.com

相关文章
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库学习知识点(三)
教程来源 https://app-agejuptkc5q9.appmiaoda.com/ 本指南涵盖Oracle数据库核心运维技术:性能优化(执行计划分析、索引调优、SQL绑定变量与提示、内存参数调整)、RMAN物理备份恢复、Data Pump逻辑导出导入、高可用架构(Data Guard主备切换、RAC集群管理)及分区表设计与维护,助力DBA提升系统稳定性与效率。
|
6月前
|
缓存 算法 Java
程序员算法圣经-LeetCode Hot100上
本资料系统整理LeetCode高频算法题,涵盖哈希、双指针、滑动窗口、子串、普通数组、矩阵、链表、二叉树八大主题,含140+道经典题目及C++/Java双语言代码实现,适合算法面试高效复习。
|
6月前
|
人工智能 自然语言处理 算法
AI驱动的产品设计文档规范:designdoc
在AI编程中,代码逻辑的严密性严重的依赖于设计文档的质量。因此规范性的设计文档对于AI编程来说变的必不可少了。为了帮助产品经理、架构师、研发人员有效的通过AI来编写、维护、追踪可靠的设计文档。特定设计了这个专用于辅助维护设计文档的技能。
834 0
|
10月前
|
人工智能 边缘计算 安全
云栖发布深度解读|以边缘原生定义 AI 时代的开发与交付
阿里云 ESA 「函数和Pages」云栖大会发布会
云栖发布深度解读|以边缘原生定义 AI 时代的开发与交付
|
6月前
|
存储 缓存 自然语言处理
大模型应用:大模型内存与显存深度解析:我们该如何组合匹配模型与显卡.63
本文深入解析大模型本地部署中内存与显存的核心逻辑,涵盖参数-显存精准计算公式、INT4/FP16等精度占用对比、RTX 4090/5090专属部署代码及多卡分片实践,破除“显存需等于内存”等常见误区,助你科学选型、高效落地。
3787 11
|
6月前
|
关系型数据库 MySQL Linux
MySQL下载安装教程:从零开始搭建数据库环境(附安装包,2026最新)
MySQL是开源、高性能的关系型数据库,支持多线程与跨平台(Windows/Linux/macOS),广泛用于Web开发(LAMP/WAMP核心)、数据分析及学习。本文详述MySQL 8.0.41安装配置与环境变量设置,并提供验证方法。(239字)
|
缓存 数据安全/隐私保护 JavaScript
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
496 0
|
8月前
|
人工智能 运维 数据可视化
告别繁琐巡检:AR智能眼镜打造工业&电力运维闭环体系|阿法龙XR云平台
本方案以AR眼镜为核心,融合蓝牙定位、AI识别与多模态感知技术,构建智能巡检体系。通过精准定位触发、AI实时识别仪表状态、数据自动上传与可视化管理,实现电力、化工、智能制造等场景下巡检效率提升60%、故障率降低40%,推动工业运维数字化、标准化、闭环化转型。(238字)
|
10月前
|
数据采集 人工智能 算法
美团 LongCat 团队发布全模态一站式评测基准UNO-Bench:揭示单模态与全模态能力的组合规律
美团LongCat团队推出一站式全模态大模型评测基准UNO-Bench,首创“组合定律”揭示多模态能力协同增益,支持中文场景,以98%跨模态问题占比和创新多步开放式题型,科学评估模型真实融合能力。
915 5
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口的开发、应用与收益
小红书(RED)作为国内领先的生活方式分享平台,汇聚了大量用户生成内容(UGC),尤其是“种草”笔记。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可以构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文详细介绍API的开发流程、应用场景及潜在收益,并附上Python代码示例。
1275 62