通过Oracle平台依赖性进行系统优化

通过Oracle平台依赖性进行系统优化

  本文基于Oracle对平台的依赖性,以NT平台为例,描述Oracle在NT平台上的一些特点,提供一个Oracle系统优化的思路。

  当前,Oracle作为大型数据库管理系统快速发展,如何更好的发挥其强大的数据管理功能?这成为Oracle系统优化方面一个不可忽视的问题。有专门文章从系统参数等软件内部挖掘其"潜力",本文尝试从Oracle与外部环境的特定关系,即Oracle的平台依赖性着手,主要以NT平台为例,就Oracle的平台依赖性的各个方面进行描述。

  1.Oracle在NT平台下仅仅是一个多线程(Multiple Threads)操作系统进程(Process)

  在NT平台下,Oracle的每一个后台"进程"(如LGWR、DBWR等)和专用服务"进程"都是Oracle进程的一个子线程。这种多线程结构(Muli_threaded Architecture)在NT上是非常高效的,因为所有子线程都共享同一主进程的资源。如果你添加一个Oracle实例(Instance),才会有一个新的Oracle进程,这个新的进程同样拥有。在NT平台下,操作系统并不给每个Oracle线程标志诸如LGWR、DBWR之类的名字。如果想查看有关线程信息,可以通过SQL语句来查询数据字典(Data Dictionary)中的相关表(Table)和视图(View)。

  例如,查看关于DBWR线程的内部编号信息:
引用:
select b.name , p.spid
        from v$bgpross b , v$process p
        where b.paddr=p.addr  
        and   name='DBWR'
  4.事件查看和系统性能监测

  在NT平台上,有事件查看器(Event Viewer)和系统性能监测器(Performance Monitor utilities)来监测Oracle相关信息。

  当Oracle启动或关闭时都会在时间查看器中添加一条记录,NT系统管理员可以通过查看事件查看器里的记录信息来检查是否有关于Oracle的警告信息,如果设置了Oracle审计(audit)选项,还可以在事件查看器中查看到相关审计记录。

  系统性能监测器提供了关于所有进程的详细数据,包括与Oracle有关的一些资源统计数据,如文件读出字节/秒,数据缓冲命中率等等 。

  尽管你在NT平台上运行多个Oracle实例,事件查看器和系统性能监测器只收集在注册表参数Oracle_SID中所标明的那个实例有关数据。

  5.安全性

  在第2点中也提到过,要访问一个数据库,必须首先能够以直接或间接方式访问正在运行该数据库的服务器,要使数据库安全,首先要其依赖的平台和网络安全,一旦开始执行,操作系统的安全性必须被考虑。

  Oracle使用大量用户不能直接访问到的文件。例如,数据文件和日志文件只有通过Oracle的后台处理进行读写。因此,只有要建立和删除这些文件的DBA才可以在操作系统级直接访问它们。输出文件和其他的备份文件也必须受到保护。

  一般情况下,除了数据库本身的用户名和口令帐号外,可以利用平台特性提供一个用户认证的附加级,及操作系统帐号。但在同一服务器中,一个数据库帐号可以和一个操作系统帐号配成对,仅仅是前缀不同。缺省前缀为"OPS$",但可以通过数据库的OS_AUTHENT_PREFIX参数修改其值。这个前缀也可以设置成空字符串,不用前缀。

  在NT平台上与Oracle核心相连(CONNECT INTERNAL)需要专门口令,这个密码是在安装时定义的,缺省情况下是存放在一个隐含文件pwd.ora中。该文件位于$Oracle_home/database 目录。

  如果在init.ora文件中设置:

  DBA_AUTHORIZATION=BYPASS

  或注册表中修改:

  HKEY_LOCAL_MACHINE/software/Oracle/DBA_AUTHORIZATION

  设置其值为BYPASS,那么DBA与核心相连就不需要密码了。这点也是需要特别注意的。

  系统优化是一个复杂,牵涉面很广的问题,上面几点主要是从Oracle对平台的依赖性方面来考虑如何进行系统优化,希望能给大家提供一个进行系统优化的思路。