1、ORACLE 数据库管理系统介绍1.ORACLE特点:可移植性 ORACLE采取C语言开发而成,故产品和硬件和操作系统含有很强独立性。从大型机到微机上全部可运行ORACLE产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 因为采取了国际标准数据查询语言SQL,和IBMSQL/DS、DB2等均兼容。并提供读取其它数据库文件间接方法。可联结性 对于不一样通信协议,不一样机型及不一样操作系统组成网络也能够运行ORACLE数据库产品。2.ORACLE总体结构(1)ORACLE文件结构 一个ORACLE数据库系统包含以下5类文件:ORACLE RDBMS代码文件。数据文件 一个数据库
2、可有一个或多个数据文件,每个数据文件能够存有一个或多个表、视图、索引等信息。日志文件 须有两个或两个以上,用来统计全部数据库改变,用于数据库恢复。控制文件 能够有备份,采取多个备份控制文件是为了预防控制文件损坏。参数文件 含有数据库例程起时所需配置参数。(2)ORACLE内存结构 一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。SGA(System Global Area)包含数据库缓冲区、日志缓冲区及共享区域。PGA(Program Global Area)是每一个Server进程有一个。一个Server进程起动时,就为其分配一个PGA区,以存放数据及控制信息。(
3、3)ORACLE进程结构ORACLE包含三类进程:用户进程 用来实施用户应用程序。服务进程 处理和之相连一组用户进程请求。后台进程 ORACLE为每一个数据库例程创建一组后台进程,它为全部用户进程服务,其中包含:DBWR(Database Writer)进程,负责把已修改数据块从数据库缓冲区写到数据库中。LGWR(Log Writer)进程,负责把日志从SGA中缓冲区中写到日志文件中。SMON(System Moniter)进程,该进程有规律地扫描SAG进程信息,注销失败数据库例程,回收不再使用内存空间。PMON(Process Moniter)进程,当一用户进程异常结束时,该进程负责恢复未完
4、成事务,注销失败用户进程,释放用户进程占用资源。ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存放设备上。另外还包含分布式DB中事务恢复进程RECO和对服务进程和用户进程进行匹配Dnnn进程等。3.ORACLE逻辑结构组成ORACLE数据库逻辑结构包含:(1)表空间(2)5种类型段(segment)数据段;索引段;回滚(rollbock)段;临时段;自举(bootstrap)段。段分配单位叫范围(Extent)表空间(Tablespace) 一个数据库划分成若干逻辑部分称为表空间。一个数据库能够有一个或多个表空间,初始表空间命名为SYSTEM,每一个逻辑表空间对
5、应于一个或多个物理文件。DBA使用表空间做以下工作:控制数据库对象,如表、索引和临时段空间分配。为数据库用户设置空间配额。利用部分表空间在线或离线,控制数据可用性。后备或恢复数据。经过分配空间,以改善性能。在每个数据库中全部存在SYSTEM表空间,它在建立数据库时自动建立。在该表空间中,包含数据库数据字典,其中存放全部数据库对象名字和位置。SYSTEM表空间总是在线,像其它表空间一样,能够经过增加新数据库文件来扩大。一个表空间可包含很多表和索引。但一个表和索引不能跨越表空间,可跨越组成表空间文件。在DB打开情况下,DBA利用ALTER TABLESPACE语句,能够实施表空间在线或离线。SYS
6、TEM表空间必需在线。表空间离线有下列原因:通常为了使部分数据库不能使用,而许可正常存取数据库其它部分。实施表空间离线备份。一个离线表空间,不能被应用用户读或编辑。能够增加数据文件扩大已经有表空间,也可增加新表空间使数据库容量增大,或分配空间给某个应用。使用ALFER TABLESPACE ADD FILE语句将另一个数据文件加入到已存在表空间中。使用CREATE TABLESPACE语句可建立一个新表空间。段(segment) 表空间中全部数据存放在以段划分数据库空间中。一个段是分配给数据库用于数据存放范围集合。数据能够是表、索引或RDBMS所需要临时数据。段是表空间下一个逻辑存放等级。一个
7、段不能跨越一个表空间,但可跨越表空间内文件。一个数据库最多需要五种段类型:数据段 一个包含一个表(或聚集)全部数据,一个表(或聚集)总有一个单个数据段。索引段 一个索引段包含对一个表(或聚集)建立一个索引全部索引数据。一个表能够有一个、多个或没有索引段,取决于它所拥有索引个数。一个聚集必需最少有一个索引段,即在聚集码上建立聚集索引。回滚段 每个DB有一个或多个回滚段。一个回滚段是DB一部分,它统计在某一情况下被撤消动作。回滚段用于事务控制和恢复。临时段 在处理查询时,ORACLE需要临时工作空间,用于存放语句处理中间结果,这个区称为临时段。自举段 自举段在SYSTEM表空间中,在数据库建立时建
8、立。它包含数据字典定义,在数据库打开时装入。4.用户数据库对象由用户建立对象驻留在表空间中,含有真正数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。(1)聚集(Cluster) 聚集是存放数据一个可选择方法。聚集包含存放在一起一组表,它们共享公共列并常常一起使用。因为内容相关而且物理地存放在一起,存取时间得到改善,存放空间能够降低。聚集是一个优化方法。 聚集对性能改善,依靠于数据分布和SQL操作内容。尤其是使用聚集对连接很有利。能够显著地提升连接速度。建立聚集命令基础格式:SQLCREATE CLUSTER聚集名(列定义,);利用聚集建立表命令基础格式:SQLCREATE TABLE
9、新表名(列定义,CLUSTER聚集名(聚集列);在聚集码上必需建立一个聚集索引,对于每一数据块上每个聚集码值有一索引项。这个索引必需在DML语句对聚集表操作前建立。建立索引语句是:CREATE INDEX索引名ON CLUSTER聚集名;(2)序号生成器 序号(SEQUENCE)生成器为表中单列或多列生成次序号。利用序号可自动地生成唯一主码。使用SQL语句定义序号,给出部分信息(如序号名、是升序或降序、每个序号间间隔和其它信息)。全部序号存放在数据字典表中。全部序号定义存放在数据字典SEQUENCE表中。用户能够经过字典视图USER-SE-QUENCES、ALL-SEQUENCES和DBA-S
10、EQUENCES查询和存取。建立序号生成器语句是:CREATE SEQUENCE序号生成器名 其它选项。一旦序号生成器S被定义。可用S.Currval来引用S序号生成器目前值。用S.nextval产生下一个新序号并加以引用。(3)伪列 伪列行为像表一列,但不真正存在于表中,在查询时可引用伪列,但伪列不能插入、删除或修改。5.数据字典数据字典ORACLE RDBMS最关键部分之一。数据字典含有一组系统定义表,只能读,是相关数据库引用指南。它可提供以下信息:ORACLE用户用户名;每个用户被授予权限和角色;实体名字和定义;完整性约束为数据库实体分配空间;通用数据库结构;审计信息;触发子程序等存放。
11、数据字典是以表和视图组成,像其它数据库数据一样,可用SQL语言查询数据字典。数据字典在DB建立时建立。每当DB进入操作,数据字典就由ORACLE RDBMS负责修改。数据库建立时有两个默认DBA用户:SYS、SYSTEM。SYS持有基础表中数据。数据字典包含一组基表和相关视图,可分为以下几类: 类 描 述 DBA- 只有DBA可存取视图,给出数据库中定义任何实体信息 USER- 对任何用户可用视图,给出她们自己实体信息 ALL- 对任何用户可用视图,给出用户可存取全部实体信息 其中代表表名或视图名下面列出是部分常见表或视图名称。(1)DTAB 描述了组或数据字典全部表。(2)TAB 用户建全部
12、基础表、视图和同义词。(3)COL 用户创建基础表全部列信息。(4)SYNONYMS 用户可存取同义名词、专用名和公用名。(5)CATALOG 用户可存取表、视图、同义词、序列。(6)CONSTRAINTS 用户可存取约束。(7)INDEXES 用户可存取表和聚集序列。(8)OBJECTS 用户可存取对象。(9)TABLES 用户可存取表。(10)USERS 查看目前全部用户。(11)VIEWS 查看用户可存取视图。(12)SYSTABAUTH 用户对数据对象使用权限。能够用SQLSELECT*FROM字典表名或视图名WHERE条件来读取相关信息。能够用SQLDESCRIBE表名来查看表结构定
13、义。不过数据库字典结构不可改。用DESCRIBE命令还能够查看视图及过程定义。6.ORACLESQL、PL/SQL和SQL*PLUS作为ORACLE数据库关键SQL语言是ANSI和ISO标准SQL扩充。用来存放、检索和维护数据库中信息,并控制对数据库存取事务。因为RDBMS实施SQL语句时,是一次只实施一条语句,它是非过程化。这就使得单条SQL语句使用方便,功效强大。用户只需说明操作目标,无须关心具体操作实现方法。但在实际数据库应用开发中,往往要依据前一步对数据库操作结果或上一个事务提交情况来确定下一步操作。故ORACLE推出了一个PL/SQL工具,它扩充了SQL语句,使之含有可进行过程化编程
14、能力,如循环、分支功效。PL/SQL可支持变量和常量使用。比如在SELECT查询语句where子句中能够使用变量来书写条件表示式。SQL*PLUS是ORACLE用来存放、查询、操纵、控制和汇报数据库中信息一个交互式工具。它是一个集编辑、调试、运行于一体开发环境。在SQL*PLUS这种运行环境下,既能够使用SQL命令、PL/SQL语句、及SQL*PLUS自己提供命令,又能够运行由上述三类命令(或语句)编辑而成命令文件。SQL*PLUS提供附加命令关键用来编辑、运行上述三类命令及命令文件和对查询结果进行格式化输出等功效。7.数据库系统管理ORACLE作为一个大型数据系统,通常包含很多用户数据。在应
15、用开发过程中,有许很多多各类人员进行开发和应用。所以必需要求有些人对数据库系统进行临时管理,并进行数据备份等工作。这种人被称为数据库管理员(Data Base Administrator)。她们必需了解数据库系统管理,清楚数据库包含数据内容、运行情况等。通常说来,DBA不是指具体人,而是指对数据库能够行使DBA特权用户。DBA含有以下责任:(1)ORACLE服务器和用户工作站软件安装和升级;(2)创建基础数据库存放结构(表空间);(3)创建基础数据库客体(表、视图、索引);(4)修改数据库结构;(5)给用户授权,维护系统安全;(6)控制和管理用户对数据库访问;(7)监视和优化数据库性能;(8)
16、计算数据库信息后备和恢复;(9)后备和恢复数据库;(10)结构ORACLE服务器,如创建数据库链、客体同义词等。而应用开发人员须完成:(1)应用程序设计;(2)应用数据库结构设计和修改;(3)为DBA提供必需信息;(4)完成应用程序开发。 接下来就DBA具体工作及所使用工具、命令作一下介绍。8.数据库安装安装ORACLE之前,必需首先要确定拟安装ORACLE DBMS计算机系统是否已满足了该机型、版本ORACLE关键所要求硬件、软件及网络协议条件。确保有足够外存空间和RAM空间。比如在SUN工作站,Solaris操作系统,通常有16M内存空间,200300MB外存空间就可装载ORACLE关键及
17、多种字符或图形开发工具,并可满足以后用户对资源需求。ORACLE安装分三步进行:安装前准备工作,准备外存空间,建立ORACLE用户及用户组,创建修改必需系统文本文件;安装使用ORACLE安装程序进行安装,回复安装程序提出问题,选择特定ORACLE产品;安装后参数调整和测试。9.启停数据库(1)初始ORACLE数据库:初始ORACLE数据库命令为ORACLE,由两个表空间组成:SYSTEM表空间,存放数据字典全部表和视图;USERS表空间,存放全部自动生成样本表,如EMP、DEPT等等。ORACLE初始数据库应有下列文件;DBS1.ORA、DBS2.ORA,为SYSTEM表空间数据库文件;USE
18、RS1.ORA、USERS2.ORA,为USERS表空间数据文件;LOG1.ORA、LOG2.ORA,为数据库重做日志(Redo Log)文件;CONTROL1.ORA,为数据库控制文件。初始数据库自动生成四个用户名:用户名为SYS,口令为CHNGE-ON-INSTALL;SYS拥有数据字典中全部基础表和视图。为维护数据字典完整性,SYS表既不能修改,也不能创建。SYS是有DBA权限用户。用户名为SYSTEM,口令为MANAGER,是DBA权限用户。SCOTT,含有CONNECT和RESOURCE权限,使用USERS表空间,口令为TIGER,拥有全部样本表。PUBLIC,用于对表和视图公共存取
19、。当用户为一数据库客体授权给用户PUBLIC时,则任意用户全部能访问该客体数据。(2)初始化和结构文件:在ORACLE数据库中,存在两个关键文件:初始化文件INIT.ORA,当数据库开启时用于对ORACLE服务器进行初始设置,该文件存于实施SQL*DBA机器上;配置文件CONFIG.ORA,在很多场所由用户机上工具使用,如用于建立和ORACLE服务器正确连接。该文件存于实施用户工具机器上。在ORACLE服务器上也有CONFIG.ORA,也相当有用,如正确标识特定程序文件所在子目录。(3)SQL*DBA进入和退出进入SQL*DBA过程随系统不一样而不一样,也依靠于在哪进入SQL*DBA,细节参见
20、相关手册。一旦进入了SQL*DBA,则屏幕显示SQL*DBA提醒符:SQLDBACRSQLDBA它提醒你健入SQL*DBA命令。它可接收SQL语句及数据库管理命令,前者必需以“;”结束,后者不需后缀“;”。要退出SQL*DBA则键入EXIT命令:SQLDBAEXITCR(4)数据库开启和停止只有在数据库被开启以后,用户才能够访问数据库。用户要正常结束对数据库操作也必需实施停止数据库命令,方便正确保留缓冲区中数据。非正常结束可能造成数据丢失。开启ORACLE数据库,需要完成开启数据库例程、安装数据库和打开数据库三个任务。停止数据库是逆序三个任务,即关闭数据库、卸载数据库和停止数据库例程。开启步骤
21、为:进入SQL*DBA,这在上面已介绍过。以internal身份连到数据库上,方便对数据库进行起、停操作。SQLDBACONNECT INTERNALSQLDBASTARTUP至于实施带参数STARTUP可用于数据库备份。停止数据库命令为:SQLDBASHUTDOWNABORTIMMEDIATENORMAL其中:使用ABORT参数,则立即停止数据库;使用IMMEDIATE则回滚未完成事务,停止数据库;使用NORMAL则直到全部数据库用户全部撤去在数据库上登录以后,再停止数据库。10.数据库管理ORACLE关键在安装过程中,已经建一个数据库,DBA也能够再建立其它数据库或修改已经有数据库定义。(
22、1)创建数据库数据库创建就是准备若干个操作系统文件,使其能够作为一个ORACLE数据库运转,用于数据存放。然而,对于一个数据库系统来说,不管其数据库由多少个数据库文件组成或被多少个例程所存取,数据库需要被创建一次。针对一个现存数据库进行创建工作,将毁坏先前数据库文件中已经存在任何数据。 (2)修改数据库配置ORACLE数据库能够处于三种不一样状态,决定了其可用性:卸载状态 数据库目前不和任何例程相联络,DBA用户和一般用户均不能存取。装载且关闭状态 数据库目前已和一个例程相联络,仅DBA用户能够存取(进行系统维护)。 装载且打开状态 数据库目前能够用于正常数据库操作,DBA用户和一般用户均能够
23、存取。DBA能够利用SQL*DBA命令将数据库置成其中任何一个状态,然后利用SQL语句ALTER DATABASE改变数据库状态。DBA能够修改数据库配置多个方法是:按共享或排斥方法装载或卸载数据库;打开或关闭数据库;添加或取消重做日志文件;重新命名重做日志文件或数据库文件;设置重做日志文件使用模式。11.表空间管理ORACLE数据库是一个或多个表空间(Tablespace)逻辑地组成,表空间又是若干空间区段逻辑地组成,而空间区段则是若干连续地址ORACLE块组成(ORACLE块大小依靠于操作系统)。表空间是数据库逻辑划分,从其物理形式来看,对应着一个或多个操作系统文件。这些操作系统文件能够分
24、布在系统任何外部存放设备上,ORACLE则管理着这些数据库文件存放空间,而操作系统对数据库存放空间分配不作任何干预。表空间容纳着很多数据库实体,诸如表、视图、索引、聚簇、滚回段和临时段等。当用户创建某种数据库实体时,ORACLE RDBMS按ORACLE命令所给出“存放配置参数”分配对应存放空间。12.安全管理数据库安全管理是为了保护数据库以预防非法使用数据库而造成数据泄露和破坏。ORACLE经过检验用户权力来限制各类用户对数据库操作权力;再经过对用户相关某一数据库实体操作权限验证来确保每一个数据库实体不被非法访问或修改。(1)建立用户命令 能够在SQL*PLUS下用SQL命令来建立数据库用户
25、,命令要各式以下:SQLCREATE USER用户名IDENTIFIED BY口令;(2)用户权力 一个新用户被建立,不意味着她就能够存取数据库中数据,必需由DBA对它进行授权。相关对数据库操作有三种权力,下面就介绍一下用户权力及其含义:CONNECT权力 用户为访问ORACLE数据库和任何实用程序,全部需要含有CONNECT权力,含有CONNECT权力用户含有唯一用户名称和口令。含有CONNECT权力用户能够做以下工作:访问ORACLE;查询(SELECT)别用户建立表或视图,前提是表或视图全部者(别用户)已授和该用户对该表进行SELECT权力;建立视图和同义词RESOURCE权力 若同时含
26、有CONNECT及RESOURE权力,除含有CONNECT中权力外还有:建立(CREATE)表、索引、聚集;您对自己拥有客体或其它用户授予您对其客体所拥有权力(必需含有传输权)能够授和(GRANT)别用户或收回(REVOKE)这些权力,即有传输和收回权。DBA经过ORACLESQL*PlusGRANT语句来为用户授权,其格式为:SQLGRANTCONNECT|RESOURCE|DBA|TOINENTIFIEDBY口令;SQLREVOKECONNECT|RESOURCE|DBAFROM;当用户被取消了DBA权力,还拥有RESTORE和CONNECT权力。取消了RESTORE权力,还拥有CONNE
27、CT权力。取消了CONNECT权力,用户对数据库不能进行任何操作。假如一个用户已被取消了CONNECT权力,但属于这个用户表继续存在,当它重新取得数据库访问权时,能够重新使用这些表。(3)数据库实体授权 当一个用户用ORACLE命令创建了一个实体,即表、视图或序号生成器以后,她就成为该实体全部者,能够就该实体向其它用户授权,方便其它用户也可对该实体进行授权所许可操作。(4)经过查看数据字典表SYSTABAUTH能够了解相关表权限。SQLSELECT*from systabauth;(5)ORACLE还提供了一个审计机制,来统计对数据库操作,方便监视用户对数据库施加动作。利用审计功效,DBA能够
28、:监视成功或失败注册或注销;监视GRANT和REVOKE;严禁或许可写入审计追踪表;为数据库设置缺省审计选择项。比如:DBA能够审计:存取数据库不成功企图;存取未授权表多种企图;任何用户GRANT和REVOKE语句使用情况。13.完整性约束数据库完整性是指数据正确性和相容性。DBMS必需提供一个机制来确保数据库中数据完整性,这种功效称为完整性检验。数据完整性是为了预防数据库存在不符合语义数据,预防错误信息输入和输出。通常数据库系统经过定义完整性约束条件来要求数据完整性。数据约束条件是语义表现,这些完整性约束将作为模式一部分存到数据字典中。14.ORACLE实用程序ORACLE产品关键,包含数据管理关键模块及帮助数据库管理员(DBA)和用户维护、监视、数据输入和输出(实用程序),关键有:Imp/Exp数据备份及恢复工具、ODL将外部文件转换成ORACLE数据库数据工具及SQL*DBA管理ORACLE服务器及其上数据库交互式工具。