1、Oracle 10g管理及应用,第十章 审计与优化,2018年4月12日星期四,Oracle 10g管理及应用,第十章 审计与优化,10.1 审计 10.2 优化 实训8 审计与优化,2018年4月12日星期四,Oracle 10g管理及应用,10.1 审计,10.1.1 准备审计 10.1.2 登录审计 10.1.3 操作审计 10.1.4 对象审计,2018年4月12日星期四,Oracle 10g管理及应用,10.1 审计,Oracle能够对数据库里发生的一切进行审计。审计的记录可以记录到操作系中,也可以保存到SYS.AUD$表中。利用审计信息,可以审查可疑的数据库活动,发现非法操作。 O
2、racle中值得审计的操作行为主要有三大类:登录尝试、对象存取以及数据库动作。在默认设置中,Oracle审计功能激活后,Oracle的审计功能把成功和不成功的命令都记录,但实际应用中,常常不需要对两种行为都进行跟踪。,2018年4月12日星期四,Oracle 10g管理及应用,10.1.1 准备审计,由于在默认情况下,Oracle系统关闭了审计功能,所以在审计前必须先激活审计功能,为进行审计做好准备。 由于部分对象或动作被审计后,可能将影响Oracle系统的性能,同时由于审计日志的迅速增大,将占用许多的存储空间,所以在开始审计前,必须先对被审计的内容进行设计和规划。 要想激活数据库的审计功能,
3、需要在这个数据库的初始化参数文件中设置audit_trail参数的值:,2018年4月12日星期四,Oracle 10g管理及应用,10.1.2 登录审计,数据库攻击者往往采用猜测口令的方法来尝试登录到各种账户上,为了提高数据库的安全性,可以对数据库的每一次登录尝试都进行审计。 审计的语法格式如下所示:AUDIT 语句选项 | 对象选项BY SESSION | ACCESSWHENEVER NOT SUCCESSFUL 开始审计所有的登录尝试:AUDIT SESSION; 关闭审计功能的指令为:NOAUDIT SESSION;,2018年4月12日星期四,Oracle 10g管理及应用,10.
4、1.3 操作审计,对影响数据库的对象(表、表空间、同义词、回退段、用户等)的操作也可以进行审计。 系统级命令也是可以审计的操作,但为这些命令的数量比较多,所以把多个命令组合在一组进行审计可以减少审计记录的数量、减少需要设置的审计参数、简化审计工作的管理负担。 审计影响到角色的一切命令:AUDIT ROLE; 结束影响到角色的审计:NOAUDIT ROLE;,演示 DBA_AUDIT_OBJECT视图查询操作行为对数据库对象所产生的影响,2018年4月12日星期四,Oracle 10g管理及应用,10.1.4 对象审计,Oracle不仅能对数据库对象上的系统级操作行为进行审计,还可以对数据库对象
5、上的数据操作行为进行审计。数据操作行为主要指对表的SELECT、INSERT、UPDATE和DELETE操作。 对用户scott和systerm查询表和更新表的操作进行审计:AUDIT SELECT TABLE, UPDATE TABLE BY SCOTT, SYSTERM; 对表中的删除操作进行审计:AUDIT DELETE ANY TABLE; 对数据库中新建对象的ALTER、GRANT、INSERT、UPDATE和DELETE操作停止审计的命令为:NOAUDIT ALTER, GRANT, INSERT, UPDATE, DELETE ON DEFAULT; 保护SYS.AUD$表中的审
6、计记录可以使用以下指令:AUDIT ALL ON SYS.AUD$ BY ACCESS;,2018年4月12日星期四,Oracle 10g管理及应用,10.1.4 对象审计,Oracle主要对象上可进行审计的操作,2018年4月12日星期四,Oracle 10g管理及应用,10.2 优化,10.2.1 优化的基本概念 10.2.2 性能问题的常见原因 10.2.3 Oracle SQL优化,2018年4月12日星期四,Oracle 10g管理及应用,10.2 优化,作为数据库的设计和开发人员,为了确保系统运行的性能,必须注意数据库的性能,作为DBA,也迟早需要面对系统的性能问题,数据库的性能是
7、评价数据库的重要指标。Oracle中常见的性能状况有:(1)DBA发现CPU、I/O、Memory越来越繁忙(2)应用系统响应变慢或者不稳定,例如报表生成时间大大增长(3)很多电话抱怨系统变慢(4)报表生成时间不能满足需求(5)顾客排队越来越长(6)网上客户半途取消交易越来越频繁(7)应用程序经常报告超时错误 如果有以上的现象之一,则表示系统需要进行优化。,2018年4月12日星期四,Oracle 10g管理及应用,10.2.1 优化的基本概念,180/20法则 2响应时间 3吞吐量 4优化工作目标,2018年4月12日星期四,Oracle 10g管理及应用,10.2.2 性能问题的常见原因,
8、1应用程序和数据库设计缺陷 2低效率的数据库布局和存储配置 3应用程序的DB_BLOCK_SIZE参数设置不合适 4回退段的尺寸和数据设置不合适 5低劣的应用程序设计方案 (1)应用程序代码优化不当 (2)与共享缓冲池有关的问题 (3)初始化参数,2018年4月12日星期四,Oracle 10g管理及应用,10.2.3 Oracle SQL优化,1SELECT子句中避免使用“*” 2使用联接操作替代EXISTS、IN以及多次查询表 3尽量多地使用COMMIT 4用TRUNCATE替代DELETE 5用WHERE子句替代HAVING子句 6使用表的别名,演示 使用联接操作替代EXISTS、IN以
9、及多次查询表,演示 用WHERE子句替代HAVING子句,2018年4月12日星期四,Oracle 10g管理及应用,本章小结,Oracle能够对数据库里发生的一切进行审计。审计的记录可以记录到操作系中,也可以保存到SYS.AUD$表中。利用审计信息,可以审查可疑的数据库活动,发现非法操作。 Oracle中值得审计的操作行为主要有三大类:登录尝试、对象存取以及数据库动作。作为数据库的设计和开发人员,为了确保系统运行的性能,必须注意数据库的性能,作为DBA,也迟早需要面对系统的性能问题,数据库的性能是评价数据库的重要指标。,2018年4月12日星期四,Oracle 10g管理及应用,实训8 审计
10、与优化,目标完成本实验后,将掌握以下内容:(1)使用绑定变量(2)使用OEM中的ADDM来优化数据库,2018年4月12日星期四,Oracle 10g管理及应用,准备工作建立RisingSoft数据库。在进行本实训前,必须先建立实训用环境。请先通过执行练习前创建实训环境的脚本(实训Ch10实训练习建立实训环境.sql)创建相应实训环境。,实训8 审计与优化,2018年4月12日星期四,Oracle 10g管理及应用,场景 为了提高系统的运行性能,需要对系统进行各种优化工作。,实训8 审计与优化,2018年4月12日星期四,Oracle 10g管理及应用,实训8 审计与优化,练习1 使用绑定变量
11、 本练习中,将对使用绑定变量和不使用绑定变量的两种SQL语句进行对比,以明确使用绑定变量可以较大提高系统的性能,并学习使用绑定变量技术。 绑定变量(bind variable)是查询中的一个占位符。为了不重复解析相同的SQL语句,在第一次解析之后,Oracle将SQL语句存放在内存中,这块位于系统全局区域SGA的共享池中的内存可以被所有的数据库用户共享。因此,当执行的SQL语句与以前执行过的语句完全相同,则Oracle就能很快获得已经被解析的语句以及最好的执行效率。,2018年4月12日星期四,Oracle 10g管理及应用,实训8 审计与优化,练习1 使用绑定变量实验步骤:(1)打开计时功能,在SQL *Plus中,输入指令:SET TIMING ON。(2)创建一个测试用的临时表TimeTest。(3)创建一个使用动态创建SQL语句的过程sp_normal。(4)创建一个使用绑定变量的过程sp_shareValiable。(5)执行动态创建SQL语句的过程sp_normal。(6)执行使用绑定变量的过程。,2018年4月12日星期四,Oracle 10g管理及应用,练习2 使用OEM中的ADDM来优化数据库 本练习中,根据本章的内容,同时查询网络相关资源,练习使用OEM中的ADDM来优化数据库系统。实验步骤:本练习请利用各种网络资源,自行完成练习内容。,实训8 审计与优化,