自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

47522341的专栏

在去dba的路上

  • 博客(15)
  • 资源 (29)
  • 收藏
  • 关注

原创 dba 监控脚本

    一直以来都希望能有一个合适的监控脚本,在每晚固定的时候搜集整理oracle的运行状态(比如, 日志异常, tablespace剩余空间, 运行过程中的alert信息, 以及某个时间段内的io, cpu, memory等的使用情况. 有兴趣的哥们还可以随便往里添加一些你觉得重要的内容), 并自动发送邮件给哥们.    原因无他, 首先哥们懒, 其次, 就算不懒, 每日执行重复但还颇为

2009-07-27 17:07:00 2663

原创 五, 监控oracle的等待事件

五, 监控oracle的等待事件select event,       sum(decode(wait_Time, 0, 0, 1)) "Prev",       sum(decode(wait_Time, 0, 1, 0)) "Curr",       count(*) "Tot"  from v$session_Wait group by event order by 4;5.1 等待

2009-07-22 14:49:00 15885 4

原创 六, 监控当前数据库的活动session

六, 监控当前数据库的活动session6.1 监控session的执行语句6.1.1 通过动态性能视图查找活动session的执行语句select a.SID,a.USERNAME,a.machine,a.TERMINAL,b.PIECE,b.SQL_TEXTfrom v$session a,     v$sqltext bwhere b.ADDRESS = decode(a.SQL

2009-07-22 14:47:00 4104

原创 AIX进程监控与管理

AIX进程监控与管理... 2一, PS命令... 21.1 显示10个消耗cpu最多的进程... 21.2 显示10个消耗存储空间最多的进程... 31.3 按顺序显示系统中受罚的进程: 31.4 按照优先级顺序显示系统中的进程... 51.5 按处理时间为顺序显示系统中的前十个进程... 51.6 按实际内存使用的多少顺序显示系统中的前十个进程... 61.7

2009-07-18 11:20:00 7531 2

原创 AIX系统Memory性能评估

AIX系统Memory性能评估... 2一, VMM的管理简介... 21.1 空闲列表维护... 21.2 文件占用内存的比率维护... 21.3 vmstat命令显示内存中的数据页数... 3二, 使用vmstat确定内存的使用情况... 32.1 faults故障... 42.2 memory(内存) 42.3 page磁盘交换... 4三, svmon命

2009-07-18 11:18:00 3228

原创 四, 监控使用系统资源较多的用户信息

四, 监控使用系统资源较多的用户信息下述语句监控当前活动用户中, 使用cpu,逻辑读, 物理读, 解析次数较多的session的相关信息. 报表结果包括, session id, 系统pid, session状态, 正在执行的sql语句等.select se.r1,       se.sid,       se.spid,       se.status,       se.name,  

2009-07-18 11:15:00 1633

原创 三, 监控用户锁

三, 监控用户锁数据库的锁有时候是比较耗费资源的, 特别是发生锁等待的时候, 我们必须找到发生等待的锁, 有可能的话, 杀掉该进程. 下面的语句将找到数据库中所有的DML语句产生的锁, 还可以发现, 任何DML语句其实产生了两个锁, 一个是表锁, 一个是行锁. 可以通过alter system kill session ‘sid, serial#’来杀掉会话.SELECT /*+ rule

2009-07-17 17:32:00 2331

原创 监控sql语句的重载率

二, 监控sql语句的重载率Sql的重载率, 就是相同的语句, 由于无法使用共享池里已经保存的执行计划而不得不重新将代码载入后执行分析,建立查询树后再进行执行的一个过程. 极端糟糕的情况下, 重载率可能接近于1 , 就是说,每一个语句都需要载入后重新执行.2.1 oracle库缓存Oracle的库缓存是内存的一个区域, 是共享池里的三个组成部分之一. 库缓存由共享SQL工作区, P

2009-07-17 15:01:00 1737

原创 一, 监控缓冲区的命中率

一, 监控缓冲区的命中率1.1 oracle的内存结构内存结构(SGA system global area)是oracle为一个实例分配的一组共享内存缓冲区, 它包含该实例的数据和控制信息. SGA在实例启动时被自动分配, 当实例关闭时被收回. 数据库的所有数据操作都通过SGA来进行. SGA中内存根据存放信息的不同, 可以分为如下几个区域.数据库缓冲区(Buffer Cac

2009-07-16 14:41:00 4542 1

原创 AIX进程监控与管理

AIX进程监控与管理... 2一, PS命令... 21.1 显示10个消耗cpu最多的进程... 21.2 显示10个消耗存储空间最多的进程... 31.3 按顺序显示系统中受罚的进程: 31.4 按照优先级顺序显示系统中的进程... 51.5 按处理时间为顺序显示系统中的前十个进程... 51.6 按实际内存使用的多少顺序显示系统中的前十个进程... 61.7

2009-07-15 16:35:00 2426

原创 AIX系统Memory性能评估

AIX系统Memory性能评估 2一, VMM的管理简介 21.1 空闲列表维护 21.2 文件占用内存的比率维护 21.3 vmstat命令显示内存中的数据页数 3二, 使用vmstat确定内存的使用情况 32.1 faults故障 42.2 memory(内存) 42.3 page磁盘交换 4三, svmon命令 53.1 memory段 63.2

2009-07-15 16:33:00 1697 1

原创 AIX系统CPU监控与评估

AIX系统CPU监控与评估... 2一, VMSTAT命令(CPU) 21.1 cpu. 31.2 kthr(内核等待) 31.3 faults故障... 41.4 memory(内存) 41.5 page磁盘交换... 5二, iostat命令... 5三, Sar命令... 53.1 实时采样和显示... 63.2 sar –P(报告每个处理器的信息)

2009-07-15 16:29:00 4469

原创 AIX交换磁盘空间

AIX交换空间管理与查看... 2一, 交换磁盘空间概念... 21.1 虚拟内存... 21.2 虚拟内存管理器(VMM) 21.3 交换(分页)空间概念... 31.4请求分页... 3二, 查看交换磁盘空间... 42.1 lsps命令... 42.2 使用vmo命令检查AIX如何处理分页空间分配... 42.3 vmstat监视分页控件的颠簸... 5

2009-07-13 14:36:00 6780

原创 oracle口令管理

1, 口令文件信息查询口令文件中存储着拥有sysdba或者sysoper权限的用户. 这里我们首先检查一下每个系统中有哪些用户拥有管理权限. 使用语句select * from v$pwfile_users可以完成这步操作.USERNAME SYSDBA SYSOPERSYS TRUE TRUECTLKF TRUE FALSE2, 查询用户的资源信息select du.us

2009-07-13 10:47:00 6997

原创 AIX系统磁盘IO性能评估

AIX系统磁盘IO性能评估... 2一, 对磁盘IO的性能考虑, 裸设备优缺点分析... 21.1 对磁盘IO的性能考虑... 21.2 裸设备的优点... 21.3 裸设备的缺点... 2二, IOSTAT工具使用... 32.1 参数与用法... 32.2 iostat报告解析... 6三, sar –d看... 7四, 使用lslv –l  lvname估

2009-07-10 14:18:00 5925

oracle的sql脚本优化实例

oracle的sql statement优化调整实例 分析了两种可行的优化方式及优化结果。 统计信息收集

2010-10-15

使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g

VMware Server 允许您在一台物理计算机上运行多个操作系统。每个虚拟机都是一个独立的操作环境,并带有一组自己的虚拟组件,如磁盘、处理器和内存。虚拟技术在计算环境中十分有用,它允许您在同一物理主机上独立地开发和测试软件以防止数据或软件损坏。VMware 软件广泛地用于服务器整合,以降低总拥有成本并加快应用程序开发和测试周期。

2010-03-17

使用VMWare server在Oracle Enterprise Linux上安装Oracle RAC 10g(RAW磁盘管理方式)

VMware Server允许用户在一台物理计算机上运行过个操作系统。每个虚拟机都是一个独立的操作环境,并带有一组自己的虚拟组件,如磁盘,处理器和内存。虚拟技术在计算环境中十分有用,它允许用户在同一物理主机上独立地开发和测试软件以防止数据或软件损坏。VMware软件广泛地用户服务器整合,以降低总成本并加快应用程序开发和测试周期。 在本指南中,您将了解如何安装和配置两个在Enterprise Linux和VMware Server上运行Oracle RAC 10g第二版的节点。注意,本指南仅用于教学和评估的目的,oracle和其他供应商不会为本指南提供支持。

2010-03-17

statspack完整使用手册

statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.

2009-12-11

oracle数据库迁移实例01

windows环境下, db_name和instance_name都不相同的情况下的数据库迁移. 通过镜像文件实现.

2009-09-22

oracle性能监控

随着应用的深入, oracle数据库的表对象, 过程sql等往往不再按照开发人员设计时的思路运行. 所以, DBA的一个重要工作就是定期监控, 分析评价oracle数据库的性能是否依然满足客户的应用需求. 分析评价oracle数据库性能主要有数据库吞吐量, 数据库用户响应时间两项指标. 数据库用户响应时间又可以分为系统服务时间和用户等待时间两项. 因此, 获得满意的用户响应时间有两个途径: 一个是减少系统服务时间, 即提高数据库的吞吐量; 二是减少用户等待时间, 即减少用户访问同一数据库资源的冲突率. Oracle数据库性能恶化的表现基本上都是用户响应时间比较长, 需要用户长时间的等待. 而性能恶化的原因却是多种多样, 下面我们就详细描述查找出影响性能的各种可能原因的方法.

2009-08-15

oracle DBA 的职责

ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: (1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据 库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。 (2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。 (3). 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。

2009-08-15

Oracle.Wait.Interface 性能调整与优化指导

Oracle.Wait.Interface 性能调整与优化指导

2009-08-15

cache buffers chain形成原因分析

当一个数据块被读入SGA. 这些数据块所在缓冲区的头地址(buffer headers)被挂载到链列表上(LRU, LRUW).这些连列表被挂载在hash buckets上. Oracle定义了一些cache buffer chains latches来保护这种内存结构的数据一致性读取.如下表所示. 一个进程在对数据块执行add, remove, search, inspect, read 或者modify之前需要首先获得cache buffers chains latch. 有两条规则跟oracle访问数据块时的cache buffers chains相关.  每一个logical read都会造成一个latch和cpu时间.  Oracle必须获得期望的latch才能执行下一个步骤.

2009-08-15

AIX系统CPU监控与评估

中央处理器是系统最快的组件之一. 在某一个时间单位内对单个程序来说保持100%的CPU占用率(也就是说空闲0%, 等待0%)超过几秒钟是很少见的. 如果监视器长时间地显示CPU占用率为100%, 则很有可能是某个程序陷入了死循环. 即使程序仅仅是占用较多资源而不是崩溃了, 也需要将他们识别出来并进行处理.

2009-08-14

AIX 系统交换磁盘空间的监控与管理

系统究竟需要多大的交换空间? 首先, 我们认为将分页空间的大小设置为RAM的两倍(以前的基本原则). 通常来说, 如果我的系统拥有超过4GB的内存, 我会按照RAM的大小来创建分页空间.在投入运行之后, 要经常监视系统, 如果看到分页空间的利用率从来都没有接近过百分之五十, 就不需要添加额外的空间. Oracle为AIX提供的文档推荐设置交换空间为RAM大小的一半加上4GB, 但是上限为32GB.

2009-08-14

AIX系统磁盘IO监控与评估

一般来说, 高的%iowait表明系统存在一个应用程序问题, 缺少内存问题或低效的IO子系统配置. 例如, 应用程序的问题可能是由于过多的IO请求而不是处理许多数据. 理解IO瓶颈并且要清楚解决瓶颈问题的关键在于提高IO子系统的效率.

2009-08-14

一个释放临时表空间实例

Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。 网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。 临时表空间的主要作用: 索引create或rebuild Order by 或 group by Distinct 操作 Union 或 intersect 或 minus Sort-merge joins analyze

2009-02-11

一个回滚段清理的实例

日前在整理数据库表空间的是否,发现最大的数据文件来自回滚段。回滚段文件undotbs1的数据文件已经达到23G。 希望清理这部分数据,但一时又无从下手。于是决定深入了解一下这部分内容。

2009-02-11

Oracle的回滚段存储内容分析

事务在执行DML操作时,会首先将相关的数据块写入数据缓冲区中,数据缓冲区中存储的是DML操作相关的完整数据块,比如我们对表中的某一个记录执行update操作,oracle会将记录所在的数据块读入数据缓冲区中。 在执行update操作之后,oracle后台进程会首先将修改前的内容(包括数据块中其他记录内容)以及scn,块信息等写入回滚段中,但这里写的时候不仅仅只是简单的块复制,而是将原来的数据块顺序写入回滚段的数据块。测试表明,在源表数据块占用空间较少的情况下(比如设置pctfree为99),对源表两个数据块中记录的修改只占用一个回滚段中的数据块(因为这时回滚段的数据块pctfree值是默认的,相对较小,一个回滚块可以存储更多的源数据块)。但如果设置源表占用空间较大,比如设置默认或者设pctfree为1,则对源表的两个数据块内容修改时,会占用回滚段中的两个数据块。 同时会将修改记录的前后内容都写入重做日志文件中(这里只写入修改前后的该记录的信息,数据块中的其他记录将不会写入重做日志)。 一旦用户对该操作执行了commit或rollback操作,回滚段内容会理解清空。 现在我们来作个测试验证上面的说法。

2009-02-11

深入解析oracle的回滚段

  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。

2009-02-11

Oracle的列转行问题

Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。 日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久没有发现很合适的方法。网络一般推荐使用union all实现。这样的一个重要问题在于会造成对数据表的重复访问,性能是个重要问题。 基于此,作者设想了另外一种实现可能性。实践证明,这种方法有效提供了查询性能。

2009-02-11

Oracle数据文件收缩实例

近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。 缩略语: ASSM:auto segement space management HWM:high water mark DBA:data block address OLTP:online transaction process OPS:oracle parallel server

2009-02-11

Logminer应用实例

Oracle logminer是oracle从8i之后提供的一个非常有用的分析工具,使用该工具可以轻松获得oracle重做日志文件中的具体内容。该工具可以分析出所有对于数据库的DML语句,9i后可以分析DDL语句,另外还可以分析得到一些必要的回滚SQL语句。 其中一个最重要的用途就是不用全部恢复数据库就可以恢复数据库的某个变化。特别适用于调试、审计或者回退某个特定的事务。

2009-02-11

从三个方面讲解如何适当优化sql

许多人在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我将从这三个方面分别进行总结:

2008-12-03

索引监控设置及查看所有用户的unused indexes

首先,详细描述了索引监控的设置方法; 然后,给出了一种可以同时查看所有用户没有使用过的索引的方法。 信息全部来自metalink

2008-12-03

使用over函数实现递归汇总计算

Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。

2008-11-25

oracle的tuning技术总结

关于Oracle的性能调整,一般包括两个方面,一是指Oracle数据库本身的调整,比如SGA、PGA的优化设置,二是连接Oracle的应用程序以及SQL语句的优化。做好这两个方面的优化,就可以使一套完整的Oracle应用系统处于良好的运行状态。

2008-11-24

oracle的10053事件

Oracle 为RDBMS 提供了多种的诊断工具,诊断事件(Event)是其中一种常用、好用的方法,它使DBA 可以方便的转储数据库各种结构及跟踪特定事件的发生.

2008-11-24

trunc函数应用实例

trunc函数在日期比较和事务执行中是经常要使用到的一个函数,以前使用比较多的是忽略参数fmt的应用,这时默认返回的是距离当前最近的上一个整数日期.比如语句select trunc(sysdate) from dual;就可以返回当天的整数时间. 日前系统中有个业务处理,需要定时每小时执行一次预定义事务,开始时定义下一个执行时间为 sysdate +1/24,后来发现下一次的执行时间,oracle是在事务执行完成之后才进行计算的.本来我设想是在每个整点执行过程,结果由于事务需要执行1分钟,这样每次执行时间间隔就变成了一个小时零一分钟,顺延. 有点不爽,于是找了下资料,发现原来我们还可以使用带fmt参数的trunc函数解决这个问题,于是将执行时间修改为trunc(sysdate,'HH')+1/24于是问题解决. 下面顺便整理一下oracle文档中关于这个函数的解释.

2008-11-24

从执行计划和索引结构优化查询语句

我们知道,一般在查询语句出现性能瓶颈,需要对其进行优化时,一个比较有效的手段就是DBA通过调整sql语句的执行计划,或者建立有效索引以达到数据执行时间最短的效果.

2008-11-24

使用hint强制基于规则的查询优化

Oracle从9i开始默认的优化规则设置为choose,这时,如果对关键数据表的analyze数据不准确或者数据不存在,则可能导致oracle选择错误的执行路径,导致执行效率低下.笔者所参与的系统中,曾碰到在几个数百万条记录的表进行关联时,结果集在1000条记录之内时,执行时间超过20分钟.这种检索速度是灾难性的. 其中一个可以选择的优化方式是dba通过分析表的结构,数据量,索引结构等信息,通过hint/*ordered*/和索引hint/*index(table_name index_name)*/强制oracle的执行路径.极端情况下,这种优化可以提高的查询速度是非常可观的. 下面我们根据具体的查询来给出两种查询方式的异同.

2008-11-24

Oracle中的package对象

Oracle中的package对象是其他数据库中所不存在的特性之一,这是oracle面向对象编程的一种体现.我们可以像定义面向对象语言的对象一样定义oracle的package.并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用这个特性定义带参数的视图,以增加特定情况下(无法通过普通视图完成数据的筛选过程)程序的可维护性. 本文利用几个测试简单描述package的全局变量特性和用法.

2008-11-24

Oracle数据库业务优化心得

做了一大半年的业务数据库优化了,有一点感想,写出来自励一下。

2008-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除