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