ORACLE-02

  Oracle服务器包括两部分:数据库实例和数据库文件。他们构成了也就是所谓的数据管理系统(DBMS)

 

 

  物理结构:oracle的物理结构指的其实就是一些存在硬盘上的各种文件,其最终目的就是存储和获取相关数据。这些存在硬盘上的文件组成了ORACLE数据库的物理结构

  ORACLE中主要包括三种文件:

  1.数据文件

  2.控制文件

  3.重做日志文件

  参数文件和密码文件:

  参数文件:定义了数据库实例的特性,他是正文文件

  密码文件:授予用户启动和关闭数据库的实例。主要有二进制数据组成

  

  Oracle数据库的内存结构:SGA和PGA

 

  SGA:数据库实例的一部分。数据库实例的启动会首先分配系统全局区(SGA)

 

 

  1.共享池:共享sql和pl/sql代码,即把解析的sql代码在这里缓存,PL/SQL不仅缓存还共享。这样大大提高了直接访问磁盘获得sql的速度。

  1)库高速缓存:存储最近使用过的sql语句。利用LRU(最近最少使用)算法来管理缓存。最近最少使用算法是一种比较常用的算法。在这里当库高速缓存接近满的时候。它会把缓存中最近最少使用的数据清除缓存中。加入新的缓存sql。

 

  查看共享池的大小使用参数shared_pool_size

  Sql>show parameter shared_pool_size

  置共享池大小

  Sql>alter system set  shared_pool_size=16M

 

  注:在下面的的内容中。如果提到有关参数。如没有特殊说明。设置和查看参数值都是用以上类似方法。以后就不在重复了。并且这些参数必须是在以系统管理员system登陆时才能查看和修改。用类似scott用户是不能查看和修改的。

 

  Oracle提供了DB_CACHE_SIZE(数据库大小)和DB_BLOCK_BUFFERS(数据库块个数)设置库高速缓存的大小,即为两者的成绩。

 

 

  2)数据字典高速缓存

  存储数据文件、表、索引、列、用户、权限信息和其他一些数据库对象的定义。把相关的数据字典信息放入缓存来提高查询的响应时间。其大小取决于共享池的大小。

 

  2.数据库高速缓存

  存储了最近从数据文件读入的数据块信息或用户更改后需要写回数据库的数据信息。内存读取比磁盘读取的速度快的多。提高了访问速度。这里的存取也采用了LRU(最近最少使用)算法。

 

  Oracle数据库引入了缓冲区顾问参数(Buffer cache advisory parameter)用于启动和关闭统计信息。这些信息用于预测不同缓冲区的大小导致的不同行为特性。三种状态:OFF:ON:READY

  设置顾问缓存为开启状态后。可以通过动态性能视图:v$db_cache_advice查看缓冲区的建议信息

 

  3.重做日志缓存

  在执行insert、update等操作后。数据发生了改变。这些变化的数据在写入数据库高速缓存前会先写入重做日志缓冲区。包括变化之前的数据。可以通过初始化参数log_buffer查看它的大小。此参数为静态参数,不能修改。

 

  4.大池和java池

  大型池(Large Pool)  

  在SGA中大型池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供象数据库的备份与恢复等操作。

  在以下几种情形下会启用:  

  一,backup 和 restore 操作的时候  

  二,当启动UGA, I/O slaves的时候  

  三,设置MTS服务器的时候,用户信息的存放也使用到Large Pool

  可以使用以下命令进行更改Large Pool的大小:  

  ALTER SYSTEM SET Large_Pool_Size = 64m;

 

  Java池用于编译java语言编写的指令。通过java_pool_size查看和修改大小。大小由数据库在SGA自动分配和管理。所以查看的时候值为0;

  Oracle的连接和会话

 

  连接 (connection)与会话 (session)这两个概念均与用户进程 (user process)紧密相关,但二者又具有不同的含义。

 

  连接 :用户进程和 Oracle 实例间的通信通道(communication pathway)。这个通信通道是通过进程间的通信机制(interprocess communication mechanisms)(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件(network software)(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。

 

  会话 :用户通过用户进程与 Oracle 实例建立的连接[此处连接与上文中的连接含义不同 ,主要指用户和数据库间的联系 ]。例如,当用户启动 SQL*Plus 时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。

 

Oracle 数据库中的同一个用户可以同时创建多个会话。例如,用户名/密码为的SCOTT/TIGER 用户可以多次连接到同一个 Oracle 实例。

当系统没有运行在共享服务模式下时,Oracle 为每个用户会话创建一个服务进程(server process)。而当系统运行在共享服务模式下时,多个用户会话可以共享同一个服务进程。

 

posted @ 2014-11-20 18:14  雾火  阅读(107)  评论(0编辑  收藏  举报