Oracle认证 百分网手机站

Oracle基本术语(4)

时间:2017-09-11 18:02:30 Oracle认证 我要投稿

Oracle基本术语大全

  1) 脏的区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。

  2) 自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块该区。

  3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用的区。

  Oracle8i以后将缓冲池分为三个区(使用多个缓冲池特性时):1) KEEP 缓冲池(KEEP buffer pool):在内存中保留数据块,它们不会被从内存中挤掉;2) RECYCLE缓冲池从不需要的内存将数据移掉;3) DEFAULT缓冲池包含有被分配的块。

  重做日志缓冲区(Rado Log Buffer)

  任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中。然后由日志写入进程(LGWR)定期将此缓冲区的内容写入重做日志中。

  共享池(Shared Pool)

  共享池是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有:1) 库高速缓存(Library Cache);2) 字典高速缓冲区(Dictionary Cache )。

  库高速缓存(Library Cache)

  该区包含有:1) 共享SQL区(Shared Pool Area);2) 私有SQL区(Private SQL Area);3) PL/SQL存储过程及包(PL/SQL Procedure and Package);4) 控制结构(Control Structure)。也就是说该区存放有经过语法分析并且正确的SQL语句,并随时都准备被执行。

  字典高速缓冲区(Data Dictionary Cache)

  用于存放Oracle系统管理自身需要的所有信息,这些信息是登录到Oracle的用户名,这些用户有那些数据库对象以及这些数据库对象的位置等。

  SVRMGR>; Show SGA Total System Global Area 35544188 bytes Fixed Size 22208 bytes Variable Size 3376332 bytes Database Buffer 122880 bytes Redo Buffer 32768 bytes

  后四项相加等于前一项。也可以使用 select * from v$SGA; 查询当前实例的SGA.

  大的池(Large Pool)

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

  程序全局区(PGA)

  PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。

  §2.7.2

  程序全局区PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。

  §2.8

  Oracle实例一个Oracle 实例(Instance) 是由SGA,后台进程以及数据文件组成,每个数据库有自己的SGA和独立的Oracle进程集。

  在分布情况下,为使不同的数据库系统的名字不致混淆,Oracle使用了一个SID(System Identifer)来标识每个Oracle Server的名字,在UNIX环境中以变量Oracle_Sid来区分。

  §2.9 多线程服务器 (MTS)

  Oracle多线程服务器(Multithreader Server )允许对数据库进行多个连接以充分共享内存和资源,这使得可以用较少的内存来支持较多的用户。连接到Oracle数据库的进程都需要占用一定的内存空间,这样如果有过多的进程连接到Oracle,则出现了一个性能瓶颈。

  Oracle8可以允许一万个以上用户同时连接到Oracle,但并不是所有的用户都使用MTS.目前的一些4GL工具并不支持MTS,象VB,PB等不支持MTS,象VC/C++可以支持MTS. Oracle多线程服务器有自己的连接池(即共享服务器进程)。由于用户共享开放连接,这比原来的专用方法快的多(消除瓶颈)。

  多线程对于一些专用的应用系统来说是非常合适的,比如订单登记系统,顾客提交订单,录入员该订单的数据;另外的录入员在与顾客交涉,并不都在录入数据(专用服务器进程闲着)。单这些终端被迫与系统连着,占据了其他用户的资源。

  多线程服务器则消除这些缺点。多线程服务器只维护一个连接池,当某个终端需和系统对话则给其分配一个连接即可。不需要则可以去掉。这样系统的资源被多个用户平摊。

  改变参数文件中的相关参数来达到使系统成为多线程服务器配置(重新启动即可有效)。另外,数据库实例必须提供用户数目与所放置的一样才行。

  §2.10 Oracle事务处理流程银行取款业务处理流程:

  1. 发出查询余款的SQL语句,如:Select account_balance From banktable Where account_number=’111222333’ And account_type=’SAVINGS’;

  SQL语句通过SGA得到服务器进程;服务器进程检查共享池中有无该条语句,无该条语句则将放置共享池中并准备运行;执行SQL语句,把存放有余款的数据块从数据文件中读到SGA的数据高速缓冲区;显示结果,比如余款为$325.

  2. 取款$25:SQL语句为:Update Bank_table set account_balanct=300 Where account_number=’111222333’ And account_type=’SAVINGS’;

  客户进程通过SGA把SQL语句传给服务器进程;服务器进程查找有无该条语句,有执行;分析SQL语句并存入共享池;执行SQL语句;

  要处理的数据在数据高速缓冲区吗?是转7;l 从数据文件中读数据块到数据高速缓冲区;在回滚段中记录原来的数值($325);在重做日志中生成该事务的一个拷贝;将数据高速缓冲区中的余额改为$300;银行柜员机通过SGA发出工作完成信号(提交):在重做日志中记录已完成事务;清除回滚段中的恢复信息(Undo Information);顾客取钱完成。

  §2.11

  ORACLE系统的SYS和SYSTEM模式SYS和SYSTEM 是每个ORACLE 数据库系统缺省安装的两个帐户。SYS 是所有内部数据库表、结构、过程包、等拥有者,此外它还拥有 V$ 和数据字典视图,并创建所有封装的数据库角色(DBA,CONNECT,RESOURCE)。 Sys是一个唯一能访问特定内部数据字典的用户。 System 也是在安装ORACLE 时创建的用户,用于 DBA 任务的管理。

  SYS 安装后的缺省口令为 change_on_install; SYSTEM 缺省口令为 manager. 为了安全,可在安装完成后。 用 ALTER USER sys IDENTIFIED BY password; 命令修改这两个特权帐户的口令。