« November 2004 | 首页

1 2 3 4 5 6 7 8 9 10 11 12 13 (Page 7 of 13)



| January 2005 »

Oracle Wait Interface: V$EVENT_NAME

什么是 OWI (Oracle Wait Interface)? 在 Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning 这本书中是这么定义的:

Oracle Wait Interface is a collection of a few dynamic performance views and an extended SQL trace file.

这本书几乎覆盖了 OWI 的所有内容。是一本不错的Oracle数据库性能调整参考书。

从 7.0.12 版本开始,Oracle就有如下几个 OWI 视图:

  • V$EVENT_NAME
  • V$SESSION_WAIT
  • V$SESSION_EVENT
  • V$SYSTEM_EVENT

先分析一下这个 V$EVENT_NAME,看看在 10g 中有什么变化:

SQL> desc v$event_name;
 Name                       Null?    Type
 -------------------------- -------- ------------------
 EVENT#                              NUMBER
 NAME                                VARCHAR2(64)
 PARAMETER1                          VARCHAR2(64)
 PARAMETER2                          VARCHAR2(64)
 PARAMETER3                          VARCHAR2(64)

10g中新增了几列(注意字体加重的字段):

SQL> desc v$event_name
 Name                       Null?    Type
 -------------------------- -------- ------------------
 EVENT#                              NUMBER
 EVENT_ID                            NUMBER
 NAME                                VARCHAR2(64)
 PARAMETER1                          VARCHAR2(64)
 PARAMETER2                          VARCHAR2(64)
 PARAMETER3                          VARCHAR2(64)
 WAIT_CLASS_ID                       NUMBER
 WAIT_CLASS#                         NUMBER
 WAIT_CLASS                          VARCHAR2(64)

其中,PARAMETER1、PARAMETER2 PARAMETER3 对应 V$SESSION_WAIT 中的 P1、P2、P3,这是非常重要的几列。

基本用法:

SQL> SELECT   wait_class#, wait_class_id, wait_class
  2      FROM v$event_name
  3  GROUP BY wait_class#, wait_class_id, wait_class;

WAIT_CLASS# WAIT_CLASS_ID WAIT_CLASS
----------- ------------- ------------------------------
          0    1893977003 Other
          1    4217450380 Application
          2    3290255840 Configuration
          3    4166625743 Administrative
          4    3875070507 Concurrency
          5    3386400367 Commit
          6    2723168908 Idle
          7    2000153315 Network
          8    1740759767 User I/O
          9    4108307767 System I/O
         10    2396326234 Scheduler
         11    3871361733 Cluster

12 rows selected.

与 v$system_event 视图联合使用:

SQL> SELECT   n.wait_class, SUM (e.time_waited) / 1000000 time_waited
  2      FROM v$event_name n, v$system_event e
  3     WHERE n.NAME = e.event
  4  GROUP BY n.wait_class;

WAIT_CLASS                     TIME_WAITED
------------------------------ -----------
Application                              0
Commit                             .000024
Concurrency                        .000022
Configuration                      .000015
Idle                              3.669178
Network                                  0
Other                              .002454
System I/O                         .000393
User I/O                           .004079

9 rows selected.

v$event_name 从 X$ 表 X$ksled(Kernel Service Latch Event Descriptors) 而来(感谢 Rudolf Lu 友情提供的方便而实用的脚本!),创建语句类似如下:

SELECT inst_id, indx, ksledhash, kslednam, ksledp1, ksledp2, ksledp3,
       ksledclassid, ksledclass#, ksledclass
  FROM x$ksled;

对应的列:

MEANINGFUL NAME              X$ TABLE COLUMN NAME
=====================        ======================
event#                        indx
event_id                      ksledhash
name                          kslednam
parameter1                    ksledp1
parameter2                    ksledp2
parameter3                    ksledp3
wait_class_id                 ksledclassid
wait_class#                   ksledclass#
wait_class                    ksledclass

而 V$SESSION_WAIT 视图是基于 x$ksusecst 、x$ksled这两个固定表的,所以上文中提到的 v$event_name 的 PARAMETER1、PARAMETER2 PARAMETER3 对应 V$SESSION_WAIT 中的 P1、P2、P3 列也不足为奇了。

Buffer Cache Flushing

Oracle 10g 提供了一条命令,不用关闭实例即可清空 Buffer Cache 区。

提交如下命令即可:

SQL>Alter system flush buffer_cache;

该命令的用处,嗯,唯一的用处可能在于给 DBA 一个一致的 SQL 优化环境,而不需要重新启动数据库。产品库上会有人用么?

Oracle 10g 上类似的没什么大用处的“新特性”着实不少。

December 19, 2004

Oracle 10gR2 会有什么新特性?

从 Oracle OpenWorld 的信息来看,10g 第二版将在 2005 年中面世。10g 的版本类似 9i 的路线--在 R2 版才能获得大多数用户的肯定。但是,第二版会有什么更吸引人的特性呢?

Oracle 发布了一个新特性文档,我感兴趣的 10gR2 的新特性如下:

  • ASM 功能的扩展,支持多磁盘操作,新增迁移到 ASM 的工具
  • 数据移动能力加强,更加适应 Grid 环境
  • 提供 CRS 的 API
  • 集成的磁带备份与恢复功能
  • 安全能力的加强

不过想对这些"大"功能改进来说,我更喜欢 Oracle 能提供如下几个小的(不限于如这些)改进或功能:

  • Schema 更名能力。通过 exp/imp 的办法可以变通的做到,不过显得不那么地道
  • 命令行提示功能。太多复杂的 SQL 语句,不是每个人记忆力都那么好的
  • 官方发布的脚本集合,便于快速抽取数据库信息。
  • "只读"用户(Schema/Role),以前遇到过类似的问题,最近在邮件列表里看见也有讨论。

[Oracle] UNIX与Windows 2000上Oracle的差异(III)

ORACLE 的安装

ORACLE8i 通过新的基于 Java 的 ORACLE Universal Installer (OUI) 来安装,在所有的平台上都有一样的界面 [1 M Cyran, 1999] 。上面这句话是对的,不过一些小的差异要注明。在 Unix 上需要 X 兼容的显示能力, 或者是在 客户机的工作站上 有一个象 Exceed 这样的应用。在 Windows2000 上安装器可以直接运行。

在 Unix 中有许多手工设定的任务,在 Windows 2000 是不需要的。尤其是你不必手工设定环境变量。你不必生成 一个管理数据库的 Unix dba 组,不必设定一个 UNIX 来为用户运行 ORACLE Universal Installer 或者是一个叫 oracle 的用户来安装或者升级 ORACLE 。在 Unix 中 ORACLE 可以重联接而在 Windows 2000 则不能。

在 Windows 2000 中,用户必须是管理员( administrator )组的成员才可以安装数据库。在 ORACLE 8i 数据 库安装后自动的创建 ORA_DBA 一个本地组。这个组的成员自动接受 SYSDBA 的权限。推荐在定制安装的时候选择 安装 Administration Assistant for Windows ,要注意每个服务器只能安装这个软件的一个版本。

ORACLE 8.1.7 for Solaris 是 2CD 的。切换到第二张 CD 不象手册上说的那么容易。察看 [10 Metalink, 2001] 可以得到具体内容。

Windows 上的安装指导可以看 [3 Kennedy, 2000] 。《ORACLE Universal Installer 概念指导》没包括在 ORACLE8i 服务器联机文档中,不过在 ORACLE Universal Installer 安装的过程中自动的安装在你的硬盘中了。

Windows 上的数据库管理助手

Windows 上的 ORACLE 管理助手是个 GUI 工具,从 Windows 内建的 MMC (微软管理控制台)中运行 。 ORACLE 的 Windows 管理助手把几个常用的数据库管理工作集合到了一个工具中。可以使你在 Windows 中简单 进行创建数据库管理员、操作员、用户和角色的工作。还可以用来管理 ORACLE 数据库服务和 ORACLE 数据库的启 动与关闭的设置,编辑注册表参数设定,并察看 ORACLE 进程信息。

自动任务

在 Unix 上,象备份这样的自动任务是通过 cron 运行 Shell 脚本来做到的。在 Windows2000 上使用调度任务来 定期运行批处理文件。这个调度要比以前的 Windows NT 上的 AT 调度命令要更有弹性。它允许一个带有用户上下 文( context )而不是系统用户的任务运行,并且它允许对任务赋予权限。批处理脚本语言限制性很大,所以值得好 好的弄一下 Perl [9 O'Reilly, 2000] 。在 Windows 2000 中当手工运行热备份的时候,ORACLE 提供了一个命 令叫做 OCOPY ,用来拷贝文件到另一个磁盘位置,也可以备份到磁带上面。标准的 Windows 命令(如 COPY ) 不拷贝一个打开的文件 ( 数据库的数据文件都是打开的 ) 。

调整与诊断

在 Windows 2000 上面可用来调试操作系统的工具很少,不过我们也要说点可以做的事情。

交互的前台应用程序在 Windows2000 的安装过程中就指定了默认的优先级。为了阻止前台应用程序占用了额外的 处理器时间,影响 ORACLE8i 数据库 , 去掉它的优先级,这可以通过系统控制面版的高级选项来做到。

在 Unix 中,共享内存和信号量的设定通常需要通过 /etc/system来更改。在 Windows 2000上这样做没有必要, 而且也不容易改动。

针对 Windows 的 ORACLE 性能监视器是 Windows 2000 性能监视器预载入的 ORACLE8i 数据库性能元件。如 果你没看到这些东西,试着这个命令来改变性能监视器的设定 :

operfcfg -u system -p manager -d atei 

Windows NT 的 ORACLE 性能监视器允许你一次只监视一个数据库实例。上述的命令可以在数据库间切换。在 Windows 2000 中, ORACLE 和对待通常的 alert 和 trace 文件一样把信息写到事件日志中,这些信息可以通过标准的事件查看器读取。在 Windows 2000 中 dbverify (dbv) 可以用来检查联机数据文件,和 Unix 中的功能一样。而在以前的 Windows 中, dbv 只对关闭的数据库或是备份文件起作用。

总结

对于一个熟悉 Unix 上的 ORACLE DBA 来说,这篇文章描述了 ORACLE 在 Windows 2000 上的的主要的差别。 可以看到 ORACLE 已经作了很多的努力使这两个平台上的 ORACLE 尽可能的相似,不过还没有完全的去除差别。 这篇文章还是值得一看的。

关于作者

David Stien and Ian Adam are both ORACLE8i Certified Database Administrators working for SAIC's Database Management Practice. They are both based in Aberdeen, Scotland. They are practising DBAs who provide ORACLE database support and development Services for customer databases on several different platforms.

Ian is a Chartered Engineer and Microsoft Certified Database Administrator with over ten years experience of ORACLE products. Ian can be reached by email at Ian.Adam@saic.com

David is a Chemistry Graduate with an MSc in Information Systems, Linux is his desktop operating system of choice. David can be reached by email at David.Stien@saic.com

参考信息

[1] Cyran M, "Getting to Know ORACLE8i , Release 2 (8.1.6)",
ORACLE Corporation December 1999, Part No. A76962-01

[2] Kelly H III, Kennedy M, Rothenberg T, Slattery H,
"ORACLE8i Administrator's Guide, Release 2 (8.1.6) for Windows NT" ORACLE Corporation 2000, Part No. A73008-01

[3] Kennedy M, "ORACLE8i Installation Guide, Release 3 (8.1.7) for Windows NT"
ORACLE Corporation November 2000, Part No. A85302-01

[4] Leverenz L, Rehfield D, Baird C "ORACLE 8i Concepts Release 2 (8.1.6)"
ORACLE Corporation December 1999, Part No. A76965-01

[5] Metalink, "ORACLE Database Server product support Matrix for Windows 2000",
ORACLE Corporation, http://metalink.oracle.com Note:77627.1

[6] Metalink, "LKdbname - The MOUNT Lock File",
ORACLE Corporation 2000, http://metalink.oracle.com Note:50594.1

[7] Metalink, "WARNING: "dbstart" does not work with 8.1.6 Instances",
ORACLE Corporation 2000, http://metalink.oracle.com Note:98418.1

[8] Microsoft, "Windows 2000 Datacenter Server",
Microsoft Corporation 2000
Http://www.microsoft.com/windows2000/datacenter/default.asp

[9] O'Reilly, "The Source for Perl", O'Reilly & Associates Inc 2000,
http://www.perl.com/pub/

[10] Metalink, "ALERT: Cannot Mount Second CD During 8.1.7 Installation", ORACLE Corporation, http://metalink.oracle.com Note: 120801.1

本站相关标签|Tags Cloud