转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
我的oracle笔记四(DBA管理)         ★★★★

我的oracle笔记四(DBA管理)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4060 更新时间:2009/4/22 22:03:42
t; FROM V$LIBRARYCACHE;
   SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM    V$ROWCACHE;
   SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM    V$LIBRARYCACHE;
   后者除以前者,此比率小于1%,接近0%为好。

   SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
   FROM V$ROWCACHE


60、监控 MTS
   select busy/(busy+idle) "shared servers busy" from v$dispatcher;
   此值大于0.5时,参数需加大
   select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where    type=''''dispatcher'''';
   select count(*) from v$dispatcher;
   select servers_highwater from v$mts;
   servers_highwater接近mts_max_servers时,参数需加大


61、查看碎片程度高的表?
   SELECT segment_name table_name , COUNT(*) extents
   FROM dba_segments WHERE owner NOT IN (''''SYS'''', ''''SYSTEM'''') GROUP BY segment_name
   HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY       segment_name);


62、如何知道使用CPU多的用户session?
   11是cpu used by this session

   select a.sid,spid,status,substr(a.program,1,40)       prog,a.terminal,osuser,value/60/100 value
   from v$session a,v$process b,v$sesstat c
   where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;


63.如何检查操作系统是否存在IO的问题
 使用的工具有sar,这是一个比较通用的工具。
 #sar -u 2 10
 即每隔2秒检察一次,共执行20次,当然这些都由你决定了。
    示例返回:
    HP-UX hpn2 B.11.00 U 9000/800    08/05/03
    18:26:32    %usr    %sys    %wio   %idle
    18:26:34      80       9      12       0
    18:26:36      78      11      11       0
    18:26:38      78       9      13       1
    18:26:40      81      10       9       1
    18:26:42      75      10      14       0
    18:26:44      76       8      15       0
    18:26:46      80       9      10       1
    18:26:48      78      11      11       0
    18:26:50      79      10      10       0
    18:26:52      81      10       9       0
    
    Average       79      10      11       0
 其中的%usr指的是用户进程使用的cpu资源的百分比,
 %sys指的是系统资源使用cpu资源的百分比,
 %wio指的是等待io完成的百分比,这是值得我们观注的一项,
 %idle即空闲的百分比。如果wio列的值很大,如在35%以上,说明你的系统的IO存在瓶颈,你的CPU花费了很大的时间去等待IO的完成。
 Idle很小说明系统CPU很忙。像我的这个示例,可以看到wio平均值为11说明io没什么特别的问题,而我的idle值为零,说明我的cpu已经满负荷运行了。

64.关注一下内存。
 常用的工具便是vmstat,对于hp-unix来说可以用glance,Aix来说可以用topas,当你发现vmstat中pi列非零,memory中的free列的值很小,glance,topas中内存的利用率多于80%时,这时说明你的内存方面应该调节一下了,方法大体有以下几项。
  a.划给Oracle使用的内存不要超过系统内存的1/2,一般保在系统内存的40%为益。
  b.为系统增加内存
  c.如果你的连接特别多,可以使用MTS的方式
  d.打全补丁,防止内存漏洞。

65、查找前十条性能差的sql.
 SELECT * FROM
  (
   SELECT PARSING_USER_ID
          EXECUTIONS,
          SORTS,
          COMMAND_TYPE,
          DISK_READS,
          sql_text
      FROM  v$sqlarea
     ORDER BY disk_reads DESC
   ) 
  WHERE ROWNUM<10 ;

66、查看占io较大的正在运行的session
 SELECT se.sid,
       se.serial#,
       pr.SPID,
       se.username,
       se.status,
       se.terminal,
       se.program,
       se.MODULE,
       se.sql_address,
       st.event,
       st.p1text,
       si.physical_reads,
       si.block_changes
  FROM v$session se,
       v$session_wait st,
       v$sess_io si,
       v$process pr
 WHERE st.sid=se.sid
   AND st.sid=si.sid
   AND se.PADDR=pr.ADDR
   AND se.sid>6
   AND st.wait_time=0
   AND st.event NOT LIKE ''''%SQL%''''
 ORDER BY physical_reads DESC
对检索出的结果的几点说明:
 <1> 我是按每个正在等待的session已经发生的物理读排的序,因为它与实际的IO相关。
 <2> 你可以看一下这些等待的进程都在忙什么,语句是否合理?
  Select sql_address from v$session where sid=<sid>;
  Select * from v$sqltext where address=<sql_address>;
 执行以上两个语句便可以得到这个session的语句。
 你也以用alter system kill session ''''sid,serial#'''';把这个session杀掉。
 <3> 应观注一下event这列,这是我们调优的关键一列,下面对常出现的event做以简要的说明:
    a、buffer busy waits,free buffer waits这两个参数所标识是dbwr是否够用的问题,与IO很大相关的,当v$session_wait中的free buffer wait的条目很小或没有的时侯,说明你的系统的dbwr进程决对够用,不用调整;free buffer wait的条目很多,你的系统感觉起来一定很慢,这时说明你的dbwr已经不够用了,它产生的wio已经成为你的数据库性能的瓶颈,这时的解决办法如下:
 a.1增加写进程,同时要调整db_block_lru_latches参数
     示例:修改或添加如下两个参数
      db_writer_processes=4
    db_block_lru_latches=8
 a.2开异步IO,IBM这方面简单得多,hp则麻烦一些,可以与Hp工程师联系。
    b、db file sequential read,指的是顺序读,即全表扫描,这也是我们应该尽量减少的部分,解决方法就是使用索引、sql调优,同时可以增大db_file_multiblock_read_count这个参数。
    c、db file scattered read,这个参数指的是通过索引来读取,同样可以通过增加db_file_multiblock_read_count这个参数来提高性能。
    d、latch free,与栓相关的了,需要专门调节。
    e、其他参数可以不特别观注。

67. 文件说明
 <1>监听器日志文件
   以8I为例
   $ORACLE_HOME/NETWORK/LOG/LISTENER.LOG

 <2>. 监听器参数文件
   以8I为例
   $ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA

 <3>. TNS 连接文件
   以8I为例
   $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA

 <4>. Sql*Net 环境文件
   以8I为例
   $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA

 <5>. 警告日志文件
   以8I为例
   $ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG

 <6>. 基本结构
   以8I为例
   $ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL

 <7>. 建立数据字典视图
   以8I为例
   $ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL

 <8>.建立审计用数据字典视图
   以8I为例
   $ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL

 <9>. 建立快照用数据字典视图
   以8I为例
   $ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL

68、oracle 安全与审计
   user_sys_privs,user_tab_privs;
配置文件
   主要参数
   session_per_user  每个用户可同时进行几个会话
   cpu_per_session   每个用户可用多少个(cpu的)百分之一秒
   cpu_per_call      语法分析、执行、取数可用多少个百分之一秒
   connect_time      用户连接数据库的时间(分钟)
   idle_time         用户不调用数据库的时间(分钟)
   logical_reads_per_session  整个会话过程中用户访问oracle的块数
   logical_reads_per_call     一次调用用户访问oracle的块数
   private_SGA       一个用户进程所用SGA的内存数量
   composite_limit   复合限制数
   failed_login_attempts 连续多次注册失败引起一个帐户死锁
   password_life_time    一个口令在其终止前可用的天数
   password_reuse_time    一个口令在其n天才能重新使用
   password_reuse_max    一个口令在重新使用之前必须改变多少次
   password_lock_time    一个口令帐户被锁住的天数
69、管理初始化文件
   show parameters
   经常修改的项目有  v$parameter
   shared_pool_size  分配给共享的字节数
   rollback_segments 回滚段的个数
   sessions          会话个数
   processes   &n

上一页  [1] [2] [3] [4] [5] [6]  下一页


[网页制作]为 DBA 推荐几个邮件列表  [SyBase][推荐]对 Sybase ASE DBA 的建议!你能做到吗?
[ORACLE]ORACLE DBA常用SQL脚本工具-管理篇(1)  [ORACLE]Oracle DBA Interview Questions
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台