Oracle统计信息自动收集
Oracle提供了统计数据自动收集功能。在部署安装软件过程中,其中有一个步骤便是提示是否启用这个功能(默认是启用这个功能)。这个功能貌似带来了统计数据采集上的便捷,但是其中却隐藏着性能隐患。在7*24小时的系统中这种自动运行的任务很有可能对系统性能带来冲击。因此,我们酌情需要修改或是禁掉这项功能。10g和11g的...
AWR、ASH、ADDM和顾问程序
一、自动工作负荷知识库(AWR) Oracle收集大量有关性能和活动的统计信息,这些信息在内存中累积,并定期写入到称之为自动工作负荷知识库(AWR)的表中。AWR作为数据库SYSAUX表空间的一组表和其他对象而存在,并存在于SYSMAN模式中。 统计信息的收集级别由实例参数statistics_level控制,该参...
Oracle邮件发送
10G之前,如果要从oracle中发送email,必须借助oracle的utl_smtp和utl_tcp功能包,自己包装一个email发送程序,然后使用。自从10G后,这个流程将变得非常简单。因为oracle给我们提供了一个utl_mail包,我们可以直接调用发送email。其实这个包底层也是调用了utl_smtp、utl_tcp的相关api。 不过utl_mail只能用于无安全验证...
Oracle锁机制和锁争用问题
一、Oracle数据库的锁类型 根据保护对象的不同,Oracle数据库锁可以分为以下几大类: 1、DML锁数据锁,用于保护并发情况下的数据完整性。insert、update、delete操作时锁定表中数据,可以是表级别的或行级别的,是隐含的(implicit)、DML操作时Oracle自动添加的。 2、DD...
Oracle直方图统计信息的应用
Oracle直方图统计信息说明了表中数据的分布情况,用于在表中数据分布十分不均衡的情况下,指导CBO优化器选择最优的执行计划。以下例子说明了这一应用。 创建表createtable scott.t(id number); 创建索引createindex scott.idx_t_id on scott.t(id) compute statistics parallel;...
dump数据块
一、dump数据文件 dump数据文件需要知道表的存储信息:数据文件号(file#)和数据块号(block#)。以下查询表所在的表空间、文件号、区段分布、块分布信息col segment_name for a20col tablespace_name fora20selectsegment_name, segment_type, tablespace_name, extent_id, file_id, bl...
ITL与事务处理
一、ITL与事务的关系 ITL(interested transaction list)事务槽是Oracle数据块内部的一个组成部分,位于数据块头(block header)。ITL由xid、uba、flag、lck和SCN/fsc组成,用来记录在该数据块上所有发生的事务。一个ITL槽位可以看作是一条事务记录,它是Oracle中事务处理的关键组件,如果事务已经提交,...
Oracle警报系统
一、警报条件监视和通知 警报系统在空间管理方面,默认的配置是在考虑自动扩展和内容本质的情况下,当表空间达到全满的85%时,将引发警告性报警。当表空间达到全满的97%时,将发出严重报警。 警报有两种形式,有状态警报基于持久保存且可以修复的条件。如表空间的使用、挂起的会话数量,或执行...
AWR报告阅读提要
AWR(Automatic WorkloadRepository,自动工作负荷知识库)是Oracle 10g开始推出的特性,它通过对比两次快照(snapshot)收集的统计信息,生成有关实例和数据库性能及健康状况的统计报表。 选择报表时间段很关键,要选择能够代表性能问题的时间段。如果快照周期不在这一段时间内,或者快照周期跨度太长而包...
Oracle临时表
临时表建立在全局上,所有会话都可以访问,但其中的行数据是被插入行的会话所持有的,开发人员可将它们做为私有存储区来操纵数据,不同用户只能操纵自己的行数据,谁都看不到其他人的行。 临时表的创建语法如下:create globaltemporary table (columndatatype[, column datatyp...
使用RMAN还原和恢复数据库
Oracle对数据库的还原和恢复使用了非常精准的术语:还原就是从之前所做的备份中提取文件,而恢复是指应用重做日志流提取变更向量,使数据库保持最新。恢复可以是完整的,即没有任何数据丢失,也可以是不完整的,即故意的丢失部分数据。利用恢复管理器RMAN可以自动化数据库的还原和恢复过程,比手工操作更快更安全。&n...
Oracle外部表
可以像对其他表一样,使用SELECT语句查询外部表,但不能对外部表执行DML操作。这是因为它不是以段的形式存在于数据库中,而是以数据字典构造存在,指向外部的操作系统文件。外部表的操作系统文件通过Oracle目录对象定位。 1、目录对象 Oracle目录是指向物理路径的数据库对象。任何用户要创建目...
验证LOCK请求的FIFO机制
在多并发的会话场景中,需要先获取资源的X锁定才能对该资源进行修改。与此同时,当其他会话也同样请求修改该资源时,则必须按照先进先服务的方式(FIFO)进入请求队列排队等候。以下实验可以验证这一机制。 创建表create table t1(c1number, c2 number);insert into t1values(101, 5000);comm...
手工管理的备份和恢复
物理备份和逻辑备份 物理备份:对数据库物理文件如数据文件、控制文件、重做日志文件进行备份,包括两种实现方式:1)通过操作系统工具备份和管理;2)使用RMAN工具备份和管理。 逻辑备份:使用Oracle提供的数据迁移工具如EXP、EXPDP等导出数据库对象的逻辑结构定义和数据。...
用SQL*Loader加载外部数据
SQL*Loader可用于批量上载某些第三方系统生成的数据集。DBA配置一个能够解释输入数据文件内容的SQL*Loader控制文件,SQL*Loader就可以读取输入文件,将数据插入到Oracle数据库表中。 SQL*Loader是一个客户端-服务器进程,可采用两种技术导入数据:常规方式或直接路径。 常规方式使用普通的INSE...
Oracle FGA审核
FGA审核(fine-grained auditing)即细粒度审核。标准的数据库审核可以捕获对某个表的所有访问,但是可能只有某些行包含了用户关心的敏感信息,为了查找少量的重要信息,我们可能需要筛选大量的审核记录。而细粒度审核可以配置只在访问特定行或特定行的特定列时生成审核记录,并可配置审核条件满足时运行一个PL/SQL代码,...
Oracle基于值的审核
Oracle通过使用触发器,可以实现基于值的审核。 基于值的审核实验: 1、用户scott有一张员工表emp,其中字段sal记录了每位员工的工资信息 2、创建一个审核表用来记录审核结果create tablescott.emp_sal_audit (host varchar2(50), ip_address varchar2(20), emp_n...
Oracle标准数据库审核
Oracle标准数据库审核可以对一般用户(不包括SYS)的各种权限操作进行审核和跟踪。 一、标准数据库审核的基本方法 1、开启标准数据库审核 初始化参数audit_trail是一个静态参数,该参数确定如何启用审核,不同的值表示是否开启审核以及如何记录审核。该参数可以设定为如下的...
Oracle SYSDBA审核
OracleSYSDBA审核受初始化参数audit_sys_operations的控制,它是一个静态参数,默认为false,若将其设为true,则SYSDBA审核功能被打开。 启用sysdba审核alter systemset audit_sys_operations=true scope=spfile; 重启数据库实例生效shutdownimmediatestartup 此...
Oracle系统默认的审核
Oracle数据库在默认情况下审核可能都没有开启的,但无论是否开启了审核功能,对于以下几种操作,系统会强制记录:1、用SYS管理员用户连接实例,记录在Windows应用程序日志中;2、启动和关闭数据库,记录在Windows应用程序日志和数据库警告日志中。 Windows应用程序日志可打开Windows事件查看器来查...