oracle概念和术语 建表时的一些参数pctfree initrans maxtrans sto

-- Create table 
create table X_SMALL_AREA 

  SMALL_AREA_ID  NUMBER(10) not null 

tablespace TBSL_SDDQ --表段X_SMALL_AREA放在表空间TBSL_SDDQ中
  pctfree 10 --块保留10%的空间留给更新该块数据使用
  initrans 1 --初始化事务槽的个数
  maxtrans 255 --最大事务槽的个数
  storage --存储参数
  ( 
    initial 64k --区段(extent)一次扩展64k
    minextents 1 --最小区段数
    maxextents unlimited --最大区段无限制 
  ); 
web

 

oracle数据库系统是一个复杂的软件系统。若是不了解其内部的结构原理及关系,就不可能设计和编写出高质量的应用软件系统,也不可能管理好一个复杂的应用系统。为了给之后章节的打好基础,本章简要给出 ORACLE 8 /ORACLE8i数据库系统结构的描述。

§2.1  术语

l        数据库块(BLOCK)

ORACLE 数据库中的最小存储和处理单位,包含块自己的头信息数据或PL/SQL代码。
ORACLE 块的大小是能够在安装时选择“自定义安装”来指定,也能够在CREATE DATABASE建立数据库实例时指定。其最小为2K,最大可达为64K。

l        瓶颈(Bottleneck)

指限制系统性能的部件。

l        面向对象的关系数据库

具备关系数据库的所有功能,同时又支持面向对象的数据库,称做面向对象关系数据库系统。Oracle7是一种功能完备的关系数据库系统;oracle8是一种面向对象的关系数据库系统。

l        客户/服务器结构(Client/Server)

有客户机、服务器、网络三要素的结构,客户机(PC机)经过网络与服务器相连和工做。

l        胖客户机(Fat  Client)

通常的Client/Server结构中的客户机均为胖客户机。由于这些客户机须要配置较高的设备,如内存、硬盘、主频、CD_ROM等。

l        瘦客户机(Thin  Client)

也称做NC(网络计算机),是一种内存配置小(过去指通常只有4M,现没法定义),无硬盘,只有处理心片的处理机。

l        数据在线分析处理(OLAP)

是一种能以快速、交互、方便的方式洞察数据状况的技术。如Oracle Express,Cognos(加拿大)的Power Play, Business  Objects公司的Business Object  等。

l        多线程(MTS)

一个用户能够同时运行多个程序对数据库进行访问,好比Visual C/C++能够提供同时启动多个进程,而Visual Basic则不能。

l        数据仓库(Data Warehouse)

支持大量数据信息存储的叫作支持数据仓储或数据仓库。当把几个小型数据库集成为一个大型数据库,并为一个较普遍的组织服务时,若是该数据库存储历史数据,提供决策支持,提供数据汇总,提供只读数据,而且实质上充当全部向它提供数据的相关成品数据库的数据接收器,那么它一般被叫作数据仓库。

l        实例(Instance)

是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程。

l        对象(Objects)

是实现世界实体的软件表示,如表、索引、视图、同义词、过程等。

l        数据库文件(Datafile)

Oracle系统中用于存放数据(应用系统数据)的文件。(<<Oracle8初学者指南>;>14中的例子不许确,容易误导读者)。

l        控制文件(Control File)

Oracle中存放系统用的一些数据的文件。如数据文件的路径及文件名,初始化文件路径及 文件名等都存放在控制文件中。

l        日志文件(Logs File)

也叫事务记录文件,该文件记录有事物对数据库进行的一切修改操做或事务。

l        DBA(Database  administrator-数据库管理员)

      是管理数据库系统的技术工具或人员,在完备的数据库系统中都提供DBA功能。

l        灰数据块(Dirty data block)

       存放在内存中的原始数据已被修改,而修改后的数据还未写入数据库中。

l        热数据块(Hot data block)

      存放着那些常常被修改数据叫热数据块。

l        LRU(Least Recently Used-最近最少用)

      Oracle系统使用的一种算法,对于在内存中但最近又不用的数据块(内存块)叫作LRU,Oracle会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。

l        表(Table)

      存放专门数据而创建和分配的空间。

l        表空间(Tablespace)

      是一个或多个数据文件的集合,全部的数据对象都存放在指定的表空间中,但主要存放的是表, 因此称做表空间。

l        回滚(Rollback)

       将用户(或者说事务)改变的数据恢复到上一次所处的状态。

l        恢复信息(Undo Information)

      记录用于恢复的信息称做恢复信息。回滚就是根据恢复信息内容进行恢复的。

§2.2  Oracle数据库结构
Oracle数据库结构是Oracle数据库系统的主要部分,它是一些能够看得见的软件,包括:

l        Oracle 数据字典
l        表空间与数据文件
l        Oracle实例(Instance)

§2.2.1  Oracle 数据字典
Oracle数据库的重要部分是数据字典。它存放有Oracle数据库所用的有关信息,对用户来讲是一组只读的表。数据字典内容包括:

l         数据库中全部模式对象的信息,如表、视图、簇、及索引等。
l         分配多少空间,当前使用了多少空间等。
l          列的缺省值。
l          约束信息的完整性。
l          Oracle用户的名字。
l          用户及角色被授予的权限。
l          用户访问或使用的审计信息。
l          其它产生的数据库信息。

数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不只是每一个数据库的中心。并且对每一个用户也是很是重要的信息。用户能够用SQL语句访问数据库数据字典。

§2.2.2  表空间与数据文件
简单说,表空间就是一个或多个数据文件(物理文件)的集合(逻辑文件)。通常有下面的表空间:

1)系统表空间(System tablespace)
是各类不一样版本的Oracle必备的部分,存放Oracle系统的一些信息,通常只有一个SYSTEM表空间。

2)临时表空间(Temporary  tablespace )
因为Oracle工做时常常须要一些临时的磁盘空间,这些空间主要用做查询时带有排序(Group by,Order by等)等算法所用,当用完后就当即释放,对记录在磁盘区的信息再也不使用,所以叫临时表空间。通常安装以后只有一个TEMP临时表空间。

3)工具表空间(Tools tablespace)
用于保存Oracle数据库工具所需的数据库对象,这些工具表空间存放在工做时所用的专用表。旧的Oracle版本无此表空间。安装以后的工具表空间是Tools。

4)用户表空间(Users tablespace)
用于存放一些实验例子用的空间,固然也能够用于存放应用系统的数据。旧版本无Users表空间。如今的用户表空间为 USERS 。

5)数据及索引表空间
存放数据及索引的表空间,Oracle7之后都提倡在应用系统中,特别是具备大量数据的系统,要把数据和索引分开存放在不一样的分区中,以便提升查询速度。在安装后索引表空间多是INDX。数据表空间就是USERS。

6)回滚段表空间(Rollback Segment)
Oracle数据库系统在运行Insert、Update、Delete时都须要一个磁盘空间来存放恢复信息(Undo Information),以便在进行恢复时能将原来信息读出来。安装后的回滚段表空间是RBS表空间。数据库管理员也可根据应用的须要创建另外的回滚段表空间。


Oracle 以表空间来存储逻辑数据并 以物理数据相连。如图:


           Tablespace  1                                                           Tablespace 2


数据库被分红一个或多个逻辑部件称做表空间。而表空间又被分红称做段(segment)的逻辑部件。这些段再细分就叫扩展(extents)。

§2.2.3  Oracle实例
Oracle实例(Instance)是由一组后台进程和内存结构组成。每一个运行的数据库系统都与实例有关。因此,有时称Oracle实例为数据库操做系统。下面是Oracle实例的解释。

Oracle 进程
Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes)。

服务器进程
Oracle 服务器进程是处理用户与实例链接的事务。任务是:

l        分析和执行应用所发出的SQL语句。
l        从数据文件读必要的数据到SGA区的共享数据区。
l        返回必要信息给应用。

后台进程
Oracle系统使用一些附加的进程来处理系统的必须的工做。这些进程叫后台进程:

l        数据库写 (DBW0 或DBWn)
l        日志写 (LGWR)
l        检测点 (CKPT)
l        系统监视 (SMON)
l        进程监视 (PMON)
l        归档 (ARCn)
l        恢复 (RECO)
l        锁(LCK0)
l        工做队列 (SNPn)
l        队列监视 (QMNn)
l        发布(Dispatcher) (Dnnn)
l        服务器 (Snnn)


Oracle 的内存结构(SGA)

SGA 结构为:

l        数据高速缓冲区
l        重作日志缓冲区
l        共享池
l        大的共享池(可选)
l        数据字典缓冲区
l        其它数据缓冲区

§2.3  Oracle数据库文件
ORACLE 数据库是一个复杂的数据库操做系统,由一系列部件组成,主要有:1)初始化参数文件、2)数据文件、3)控制文件、4)日志文件等。

§2.3.1  初始化参数文件
初始化参数文件(initialization parameter file) INITsid.ORA,是 ORALE RDBMS 主要的配置点,它是配置参数和数值的集合。每个参数值都控制或修改数据库和实例的某个方面。 早期的版本把参数都写在 initsid.ora 文件中,但在ORACLE8 以后,多数参数已不在该文件中出现,需修改这些参数时只能在SQL>;下用 SET SESSION 或 SET SYSTEM 来进行。 查看系统参数可用。例如:

SQL>;select * from v$parameter; 

来列出。
Oracle初始化参数文件是一个能够编辑的文本文件。它是在数据库实例启动时被访问,从而获得数据文件、日志文件、控制文件等的路径,此外,初始化参数文件还提供实例所用的参数等。

初始化参数文件 INITsid.ORA 参见 附录 。

§2.3.2  数据文件
    用于存放全部数据库的数据文件,Oracle安装过程当中自动创建多个必要的数据文件。这些数据文件用于存放Oracle系统的基本数据。在应用系统开发过程当中,咱们可根据须要另创建一些数据文件。
若是数据文件按它们存放的数据类型来分的话,能够分为:
l        用户数据

  存放应用系统的数据为用户数据。

l        系统数据

    管理用户数据和数据库系统自己的数据,如数据字典,用户创建的表的名字,类型等都记录在系统数据中。

§2.3.3  控制文件
控制文件是由Oracle数据库实例在启动时被访问的内部二进制文件,它们所存放的路径由参数文件的control_files=参数来肯定。
    Oracle通常有两个或更多的控制文件,每一个控制文件记录有相同的信息,在数据库运行中若是某个控制文件出错时,Oracle会自动使用另一个控制文件。当全部的控制文件都损坏时系统将不能工做。

l        Oracle数据库至少有一个控制文件;
l        通常数据库系统安装完成后,自动建立两个以上控制文件;
l        为了安全通常建议建立多个控制文件;
l        控制文件可用下面命令查到:

select name,value from v$parameter where name like 'control_files';

§2.3.4  重作日志文件
重作日志文件是Oracle系统中一个很重要的文件。特色是:

l        重作日志是Oracle的日记账,负责记录全部用户对象或系统变动的信息;
l        安装完成后有多个重作日志文件,它们是几个分为一组,组内的重作日志文件大小要同样;
l        为了使系统性能更好能够在建立多重作日志文件组;
l        重作日志文件能够名下面命令查到:

select * from v$logfile;

§2.3.5  其它支持文件
除了上面的三类文件外,还有:
l        Sqlnet.ora文件;
l        Tnsnames.ora文件;
l        Listener.ora文件等。


§2.4  重作日志和重作日志工做模式
重作日志、日志文件及重作日工做模式是Oracle系统中很重要的概念,管理员要彻底理解它们的原理和使用方法。下面只给简单的概念,有关的管理在另外章节给出。
§2.4.1  重作日志
    Oracle所做的一切操做都记录在日志文件中,Oracle系统在工做当中并非每做一条记录的修改就当即存盘(写入数据文件),而是只做修改记录,联机重作日志就保存全部这些改变的信息。当全部的修改最后写入数据文件时,全部的修改仍记录在联机重作日志中,这将有利于对这些事务记录进行恢复操做。但若是不是联机重作日志,则只能恢复部分近期的操做。

§2.4.2  重作日志工做模式
    Oracle能够在两种模式之一来工做:
1)ARCHIVELOG模式(可恢复)
Oracle 通常至少有两个日志文件。它们轮流交替地被写入所做的一切修改信息。当系统设置为可恢复模式,Oracle自动将每次即将被覆盖(冲掉)的日志信息先做备份,而后再其上记录所修改的信息。这样的方式,就能够利用备份与恢复工做进行某时期的数据恢复。

2)NOARCHIVELOG模式(有限的恢复)
缺省状况下为NOARCHIVELOG,Oracle不保留旧的重作日志信息(能够在原来基础覆盖写入)。所以通常状况下不可恢复的。

§2.5  数据块、区间和段
§2.5.1  数据块(data block)
l        Oracle的数据块也叫Oracle块;
l        Oracle系统在建立表空间时将数据文件格式化成若干个Oracle块;
l        每一个Oracle块是Oracle系统处理的最小单位;
l        块的大小在安装系统时肯定,能够选择“自定义安装”来设置大小;
l        块的大小一旦肯定下来就不能改动;
l        块的大小能够从2k至64k不等;
l        块的大小能够用下面命令查到:

select name,value from v$parameter where name like 'db_block_size';

§2.5.2  区间(extent)
l        分配给对象(如表)的任何连续块叫区间;
l        区间也叫扩展,由于当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块);
l        区间的大小由 next 决定;
l        一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象;
l        一个对象所用去多少区间可用下命令查到:

select segment_name,tablespace_name,count(*) from dba_extents
having count(*)>;1 group by segment_name,tablespace_name;

§2.5.3  段(segment)
l        段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;
l        段能够有表段、索引段、回滚段、临时段和高速缓存段等;
l        段使用同表空间中的若干Oracle块(能够位于不一样数据文件中)。

例:
CREATE TABLE  abc ( empno number(4),ename varchar2(20),sal number(9,2))
TABLESPACE user_data storage(initial 500k next 256k pctincrease 0);

1)        段被分配=初始区间=500k;
2)        当开始的500k用完后就再分配256k; 此时段=500k+256k;
3)        若是所分配的区间又用完后,就再分配256k, …



               段(segment)、区间(extent)及块的关系(seg_ext_block)


§2.6  Oracle数据库进程
    通常状况,当数据库启动完成后(Instance 启动成功)就至少有六个后台进程在活动,这些进程根据数据库的须要而分工不一样。他们分别是:

1)数据库写入器(DBWR)
数据库写入器(Database Writer)的任务是将修改后的(在内存)数据块写回数据库文件中。在某些操做系统中,Oracle能够有两个BDWR进程。

2)校验点(CKPT)
是一个可选进程。在系统运行中当出现查找数据请求时,系统从数据库中找出这些数据并存入内存区,这样用户就能够对这些内存区数据进行修改等。当须要对被修改的数据写回数据文件时就产生重作日志的交替写(Switch),这时就出现校验点。系统要把内存中灰数据(修改过)块中的信息写回磁盘的数据文件中,此外系统还将重作日志通知控制文件。DBA能够改变参数文件中CHECKPOINT_PROCESS TRUE来使能( 使有效或无效)该进程。

3)日志写入器(LGWR)
用于将SGA区中的日志信息写入日志文件的进程。通常是用户所做的修改值先记入日志文件。等到必定时才真正将修改结果写回数据文件。

4)系统监控器(SMON)
系统监控器(System monitor)是在数据库系统启动时执行恢复工做的强制性进程。好比在并行服务器模式下(两台服务器共用一磁盘组),SMON能够恢复另外一台处于失败的数据库。使系统切换到另外一台正常的服务器上。

5)进程监控器(PMON)
进程监控器(Process Monitor)用于终止那些失败的用户,释放该用户所占用的资源等。

6)归档器(ARCH)
可选进程,当数据库系统处于归档(ARCHIVELOG)模式时使用。

7)锁(LCKn)
可选进程,当在并行服务器模式可出现多个锁定进程以利于数据库通讯。

恢复器(RDCO)
分布式数据库(不一样地点有不一样机器和不一样的Oracle系统)模式下使用的可选进程,用于数据不一致时做的恢复工做。在RECO解决恢复前,所做的修改数据的标志均标为“可疑”。

9)调度(Dnnn)
可选进程,在多线程下使用,即对每一个在用(D000,...,Dnnn)的通讯协议至少建立一个调度进程,每一个调度进程负责从所联接的用户进程到可用服务器进程的路由请求。把响应返回给合适的用户进程。

10)快照进程(SNPn)
快照进程处理数据库快照的自动刷新,并经过 DBMS_JOB 包运行预约的数据库过程. INITsid.ORA 参数 JOB_QUEUE_PROCESS 设置快照进程数, 参数 JOB_QUEUE_INTERVAL 决定快照进程在被唤醒以处理挂起的做业或事务以前休眠的秒数。

11)并行查询进程(Pnnn)
可根据数据库的活动并行查询选项的设置,ORACLE服务器起动或中止查询进程.这些进程涉及并行索引的建立,表的建立及查询。 启动的数量与参数 PARALLEL_MIN_SERVERS指定的数量相同,不能超出该参数指定的值。


§2.7  Oracle内存结构
前面提到过Oracle的数据库实例是一组后台进程和内存结构组成。而内存结构是包括:

l        系统全局区(System Global Area)
l        程序全局区(Program Global Area)

§2.7.1  系统全局区
    Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程均可以使用SGA。在SGA中含有许多组件(不一样的部分)。

l        数据高速缓冲区(Data Buffer Cache)

    在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。若是用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。数据高速缓冲区包括三个类型的区:

1) 脏的区(Dirty Buffers):包含有已经改变过并须要写回数据文件的数据块。
2) 自由区(Free Buffers):没有包含任何数据并能够再写入的区,Oracle能够从数据文件读数据块该区。
3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用做未来用的区。

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

l        重作日志缓冲区(Rado Log Buffer)

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


l        共享池(Shared Pool)

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

l        库高速缓存(Library Cache)

该区包含有:
1) 共享SQL区(Shared Pool Area);
2) 私有SQL区(Private SQL Area);
3) PL/SQL存储过程及包(PL/SQL Procedure and Package);
4) 控制结构(Control Structure)。

也就是说该区存放有通过语法分析而且正确的SQL语句,并随时都准备被执行。

l        字典高速缓冲区(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。

l        大的池(Large Pool)

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


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






                                                        SGA
                              Oracle内存结构(SGA图)



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

§2.8  Oracle实例
一个Oracle 实例(Instance) 是由SGA,后台进程以及数据文件组成,每一个数据库有本身的SGA和独立的Oracle进程集。如图所示:




                            Oracle 实例和后台进程(instance图)



    在分布状况下,为使不一样的数据库系统的名字不致混淆,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';

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


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

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

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

§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; 命令修改这两个特权账户的口令。

§2.12  ORACLE系统跟踪文件
    全部ORACLE 数据库都至少有一个文件用于记录系统信息,错误及主要事件.这个文件叫作ALERTsid.log(这里的sid 为 oracle 的系统标识),存储位置由INITsid.ORA 文件的 BACKGROUND_DUMP_DEST 参数给出。
    后台进程和用户进程均可以创建各自的跟踪文件,后台进程跟踪文件位置由BACKGROUND_DUMP_DEST 参数给出, 而用户跟踪文件位置由 USER_DUMP_DEST 参数给出. 如参数文件 initora8.ora 中给出:

# define directories to store trace and alert files
background_dump_dest=d:\oracle\admin\ora8\bdump
user_dump_dest=d:\oracle\admin\ora8\udump
后台跟踪文件被命名为 sidPROC.TRC

§2.13  ORACLE系统数据字典
    数据字典(data dictionary)是存储在数据库中的全部对象信息的知识库,ORACLE数据库系统使用数据字典获取对象信息和安全信息,而用户和DBA用它来查阅数据库信息。数据字典保存数据对象和段的信息。如表、视图、索引、包、过程以及用户、权限、角色、审计等的信息。数据字典是只读对象,不容许任何人对其进行修改。 

§2.14  其它数据对象
    ORACLE 除前面给出的数据对象外,还有包括视图,序列,同义词,触发器,数据库链及程序包,过程和函数。下面是必要介绍。

§2.14.1  视图
    视图是存储在数据库中的查询的SQL 语句,它主要出于两种主要缘由:
安全缘由, 视图能够隐藏一些数据,如:社会保险基金表,能够用视图只显示姓名,地址,而不显示社会保险号和工资数等,另外一缘由是可以使复杂的查询易于理解和使用.

§2.14.2  序列
    序列是用于产生惟一数码的数据库对象,序列建立时带有 初始值,增量值,最大值等,最大可达38 位整数。

§2.14.3  触发器
    触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,好比当对一个表进行操做( insert,delete, update)时就会激活它执行。触发器常常用于增强数据的完整性约束和业务规则等。 触发器能够从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

§2.14.4  同义词
    同义词(synonym)是指向其它数据库表的数据库指针。同义词有两种类型:私有(private)和公共(public)。私有的同义词是在指定的模式中建立而且只建立者使用的模式访问。公共同义词是由public 指定的模式访问,全部数据库模式(用户)均可以访问它。

§2.14.5  数据库链
    数据库链( database link )是与远程数据库链接的存储定义, 它们用于查询分布数据库环境的远程者。 因为存储在 DBA_DB_LINKS 数据字典中,因此能够把它们看做一种数据库对象类型。算法

相关文章
相关标签/搜索