Oracle数据库基础知识.pdf
目录第 1 章 ORACLE数据库基础知识.11.1 产品概述.11.1.1 产品简介.11.1.2 基本概念.11.2 ORACLE系统结构.21.2.1 ORACLE 物理结构.21.2.2 系统全局区.41.2.3 进程.61.3 存储管理.71.3.1 逻辑结构.81.3.2 表(Table).12133 视 图(View).151.3.4 索弓I(Index).161.3.5 同义词(Synonym).161.3.6 序歹ij(Sequence).171.3.7 数据库链(Database Link).17第 2 章 管 理 ORACLE数据库.192.1 启动与关闭.192.1.1 权限.192.1.2 ORACLE的四中状态.202.1.3 启动数据库.202.1.4 关闭数据库.222.2 应用开发工具(SQL*Plus).242.2.1 SQL.242.2.2 PL/SQL.262.2.3 数据库管理工具.292.3 备份及恢复.292.3.1 备 份(转 入).292.3.2 恢复.312.4 ORACLE数据库的网络应用.332.4.1 SQL*Net 产品介绍.332.4.2 配置客户机/服务器结构.35第 3 章常用任务.393.1 如何恢复被误删的数据文件.393.2 如何杀掉吊死session.393.3 如何修改字符集.393.4 如何追加表空间.393.5 如何力 大表的 maxextents值.403.6 如何查询无效对象.403.7 怎样分析SQL语句是否用到索引.403.8 如何将Oracle8数据导入Oracle7数据库.413.9 怎样判断是否存在回滚段竞争.413.10 怎样手工跟踪函数/存储过程执行情况.423.11 多种业务使用同一数据库如何分配回滚段.423.12 怎样远程用SqPLoad倒入数据.433.13 怎样倒出、倒入文本数据.433.13.1 倒出.433.13.2 倒入.433.14 如何更新当前数据库日志备份方式为archive.443.15 如何修改ORACLE数据库的SID.443.16 Unix环境下如何实现自动备份.443.16.1 设置运行环境.453.16.2 倒出数据.453.16.3 异地备份.463.16.4 启动备份进程.473.17 怎样分析Oracle故障.483.18 如何设置 ORACLE PARALLEL SERVER.493.18.1 HOSTS 文件.503.18.2 OGMS 的 LST 文件.513.18.3 LISTENER.ORA 文件.513.18.4 INITORA8.ORA 文件.52第 4 章常见问题处理.544.1 增大Processes参数后数据库不能启动.544.2 误将datable删除导致数据库无法启动.544.3 rollback segment 状态为Needs recovery如何处理.544.4 ORACLE8 DOWN 机如何处理.554.4.1 大量trace文件导致DOWN机处理方法.554.4.2 动态锁参数配置不适当导致DOWN机.564.5 创建或追加表空间操作不成功处理方法.564.6 Job不能执行处理方法.564.7 temp表空间溢出处理办法.574.8 还有一定表空间为何不能建新表.574.9不带参数建立表发现表空间迅速变小.57第5章ORACLE数据字典与视图.585.1 常用数据字典与视图.585.1.1 dba_tablespaces(user_tablespaces).585.1.2 dba_data_files(user_data_files).585.1.3 dba_segments(user_segments).585.1.4 dba_rollback_segs.595.1.5 dba_extents.595.1.6 dba_free_spaces.595.2 数据字典与视图表.59第6章SQL语言运算符与函数.656.1 各种运算符列表.656.2 字符函数列表.666.3 数值函数列表.676.4 日期函数列表.676.5 聚组函数列表.68Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识第1章ORACLE数据库基础知识1.1 产品概述1.1.1 产品简介数据库技术产生于60年代末70年代初,到现在比较知名的大型数据库系统有 ORACLE、Sybase Informix,DB2(旧M 公司的)、Ingress、RDB SQLServer等。在所有这些数据库中,ORACLE公司的ORACLE数据库以其卓越的性能占据龙头位置,是数据库行业的巨无霸。ORACLE公司于1979年,首先推出基于SQL标准的关系数据库产品,可在100多种硬件平台上运行(包括微机、工作站、小型机、中型机和大型机),支持很多种操作系统;1986年,ORACLE推出具有分布式结构的版本5,可将数据和应用驻留在多台计算机上,而相互间的通信是透明的;1988年,推出版本6(V6.0)可带事务处理选项,提高了事务处理的速度;1992年推出了版本7,可带过程数据库选项、分布式数据库选项和并行服务器选项,称为ORACLE7数据库管理系统,它释放出了开放的关系型系统的真正潜力。目前,最新版本为ORACLE。,通用版本为ORACLE8L ORACLE8i是一种通用叫法,它包括许多更细版本,如 ORACLE8.1.5、ORACLE8.1.6,ORACLE8.1.7,建议使用版本为ORACLE8.1.7序列。1.1.2 基本概念要了解ORACLE数据库,需要先了解以下基本概念:数据库:是一个数据集合,我们大多数情况下讲的数据库概念不仅是指物理数据,还指内存、进程对象的组合。ORACLE数据库都将数据存储在文件中,在其内部,数据库结构提供了数据对文件的逻辑映射,允许不同类型的数据分开存放。这些逻辑划分称为表空间。关于表空间的概念将在下文中介绍。表 空 间(Tablespace):是数据库的逻辑划分,每个数据库至少有一个表 空 间(system表空间)。数据文件(DataFile):卷个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件。建立新表空间需要建立新的数据文件。1Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识 实 例(Instance):也称为服务器server,是存取和控制数据库的软件机制,它由系统全局区SGA和后台进程组成。ORACLE数据库启动时:实际是启动ORACLE实例,(安装并打开数据库)。M说明:一个数据库可以有多个实例。决定实例组成及大小的参数存储在init.ora例如:irdtora8.o ra,表示实例名为ora8的配置文件。1.2 ORACLE系统结构任何硬件平台或操作系统下的ORACLE体系结构是相同的,包括如下三个方面:(1)物理结构:数据文件,日志文件,控制文件,参数文件(2)系统全局区:共享池,数据缓冲区,日志缓冲区,字典缓冲区(3)进程:用户进程,服务器进程,后台进程具体结构如图1-1所示。1.2.1 ORACLE物理结构一 个 ORACLE数据库是数据的集合,被处理成一个单位。一 个 ORACLE数据库有一个物理结构和一个逻辑结构。物理数据库结构是由构成数据库的操作系统文件所决定。每一个ORACLE数据库是由三种类型的文件组成:数据2Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识文件、FI志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。ORACLE数据库的物理结构由四类文件组成1.数据文件数据文件是物理存储ORACLE数据库数据的文件,每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征:每一个数据文件只与一个数据库联系。一个表空间可包含一个或多个数据文件。图 1-2给出数据库、表空间及数据文件之间关系。图1-2数据库、表空间及数据文件之间关系2.日志文件每一个数据库有两个或多个日志文件(red。log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所做的修改,所以对数据库作的全部修改是记录在日志中。日志文件主要是保护数据库以防止故障。为了防止连日志文件本身的故障.ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。日志文件中的信息仅在系统故障或介质故障恢复数据库时使用。3.控制文件每一个ORACLE数据库有一个控制文件(controlfile),它记录数据库的物理结构,包含下列信息类型:3Oracle数据库基础知识第1章ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识 数据库名 数据库数据文件和日志文件的名字和位置 数据库建立日期为了安全起见,允许控制文件被镜象。每一个ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时;也要使用控制文件。4.参数文件是一个文本文件,可直接使用文本编辑器对其内容进行修改,该文件只在建立数据库和启动实例时被访问,修改该文件后必须重启实例才生效。系统初始参数文件:init.ora生成的参数文件为:initSID.ora参数文件作用如下:设置SGA的大小 设置数据库的全部缺省值 设置数据库的范围 在数据库建立时定义数据库的物理属性 指定控制文件名和路径 通过调整内存结构,优化数据库性能1.2.2 系统全局区SGA(System Global A rea)是 ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作,图 1-3给出实例与SGA及数据库关系。图1-3实例与SGA及数据库关系4Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识SGA分为以下几个部分:(1)共享池(2)数据块缓冲区(3)日志缓冲区(4)字典缓冲区下面分别介绍注意:SGA的尺寸应小于物理内存的一半.在 ORACLE系统中,所有用户与ORACLE数据库系统的数据交换都要经过SGA 区。2.共 享 池(Shared Pool)由共享SQL区和数据字典区组成,参数shared_pool_size确定共享池大小,共享SQL区包括:(1)SQL或 PL/SQL语句的文本(2)SQL或 PL/SQL语句的语法分析形式(3)SQL或 PL/SQL语句的执行方案c a 说明:shared_pool_size=物理内存 x(1520)%对于OPS取下限。3.数据块缓冲区用于存储从数据文件中读出的数据,其大小由以下两个参数决定:DB_BLOCK_SIZE确定数据块的大小,一般为2K或 4K。DB_BLOCK_BUFFERS确定数据块的数目。DB_BUFFERS=DB_BLOCK_BUFFERS X。8_3!_0(:1_$忆=物理内存 X(1525)%,对于OPS取上限。该值应尽量大。4.日志缓冲区以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录项将被写到日志文件中。日志缓冲区大小由参数LOG_BUFFER确定5Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识5.字典缓冲区用于存放数据字典信息行。6.SGA设置大小总原则在设置各参数调整SGA大小时,应保证其小于物理内存的一半。SGA的计算方法如下:SGA=DB_BLOCK_BUFFERS XDB_BLOCK_SIZE+SHARE_POOL_SIZE+SORT_AREA_SIZE+1M+3XDB_BLOCK_SIZEX(CPUs+2)X PARALELL_MAX_SREVERS由说明:OPS才有最后一项。SORT_AREA_SIZE:排序区,并发用户数较多,需要排序时该值宜大。PARALELL_MAX_SREVERS:2 x CPU 个 数 并 发 用 户 数。对单 CPU不能修改此值。1.2.3进程ORACLE实例分为单进程和多进程实例,通常用的是多进程系统。多进程系统:分为ORACLE系统进程和用户进程,当用户运行一个应用一个程序时,系统就为它建立一个用户进程。ORACLE系统进程又分为服务器进程和后台进程。1.服务器进程用于处理用户请求的进程。处理过程:(1)分析SQL命令并生成执行方案(2)从数据缓冲区或磁盘中读取数据(3)将执行结果返回给用户。2.后台进程为所有数据库用户异步完成各种任务,主要包括如下进程:DBWR:数据库写进程。6华为产品维护资料汇编TELLIN智能网维护资料 Oracle数据库基础知识数据库基础知识 第 1章 ORACLE数据库基础知识 LGWR:日志写进程。CKPT:检查点写进程。SMON:系统监控进程。PMON:进程监控进程。ARCH:归档进程。RECO:恢复进程。LCKn:封锁进程。1.3存储管理前面已经提到过,ORACLE数据库都将数据存储在文件中,在其内部,数据库结构提供了数据对文件的逻辑映射,允许不同类型的数据分开存放。这些逻辑划分称为表空间,图 1-4给出了详细的ORACLE数据库存储结构图。图1-4 ORACLE存储结构图对于用户,通常关心的是ORACLE的逻辑结构,是在逻辑上是如何组成的,是如何存储数据的,下面就进行详细介绍。7Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识1.3.1 逻辑结构ORACLE的逻辑结构是由一个或多个表空间组成,一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(tablespace)一个表空间可将相关的逻辑结构组合在一起。一个表空间由一组分类段组成。一个段由一组范围组成。一个范围由一批数据库块组成。一个数据库块对应一个或多个物理块。每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立时自动建立。在该表空间中总包含有整个数据库的系统信息数据,最小的数据库可只需要SYSTEM表空间。表空间利用增加数据文件可扩大表空间,表空间的大小为组成该表空间的数据文件的大小的和。ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间相联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初始建立后,所分配的磁盘不包含有任何数据。一个模式(schem a)为模式对象(schemaobject)的一个集合,每一个数据库用户对应一个模式。模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、同义词等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。例如:表、索引等模式对象,在指定表空间的数据文件上为该对象分配多少空间。图 1-5说明模式对象、表空间和数据文件之间的关系。8Oracle数据库基础知识第1章ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识图1-5模式对象、表空间和数据文件之间的关系模式与表空间之间的关系为:一个表空间可包含不同模式的对象,而一个模式中的对象可包含在不同的表空间中。1.数据库块数据库块(databaseblock)是 Oracle逻辑分配空间的最底层,又称逻辑块、页或ORACLE块。数据库块是数据库使用和分配空间的最小单元,也可以说是使用的最小I/O单元,一个数据块与磁盘上指定的物理空间大小相一致,一个数据库块对应一个或多个物理块,块的大小由参数db_block_size确定。PCTFREE和 PCTUSED是开发人员用来控制数据块中可用插入和更新数据的空闲空间大小的参数。PCTFREE:设置数据块中保持空闲的百分比。PCTUSED:当数据块空闲空间达到PCTFREE时,此块不允许插入数据,只能修改或删除块中的行,更新时可能使数据块空闲空间变大,已用数据空间变小,当已用空间低于PCTUSED时,则可以重新插入数据。PCTFREE 及 PCTUSED 的选择:经常做查询(select)的表,应 使 PCTFREE小些,尽量减少存储空间浪费。9华为产品维护资料汇编TELLIN智能网维护资料 Oracle数据库基础知识数据库基础知识 第 1章 ORACLE数据库基础知识 经常做插入(insert)的表,应 使 PCTUSED大 些。经常做更新(update)的表,应 使 PCTFREE大一些,给更新留出更大的空间,减少行移动。C 9说明:这两个参数只能在创建、修改表和聚簇(数据段)时指定。另外,在创建、修改索引(索弓I段)时只能指定PCTFREE参数。经常做插入的表设置举例:create table COMMINFORSERIALNUMBERVARCHAR2(20)not null,ENTERHISTIMEDATE not null,ACCEPTBEGINTIMEDATEnull,ACCEPTDURATIONNUMBER(10)null,ACCEPTERNOVARCHAR2(4)null,CALLINGPHONENOVARCHAR2(20)nullACCEPTID NUMBER(10)null,OPERATIONTYPEVARCHAR2(10)null,APPELLANTNAMEVARCHAR2(16)null,CONTACTIDNUMBER(10)null,)pctfree 10pctused 90initrans 2maxtrans 255TABLESPACE SERVICE_RPT_DAT经常做查询的表设置举例:create table AUTH(AUTHID NUMBER(10)not null,10Oracle数据库基础知识第 1章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识DESCRIPTION VARCHAR2(50)nullconstraint PK_AUTH primary key(AUTHID)pctfree 10pctused 40TABLESPACE SERVICE_RPT_DAT2.范 围(Extent)数据库存储空间分配的逻辑单位,一个范围由一组数据块组成,范围是由段分配的,分配的第一个范围称初始范围,以后分配的范围称增量范围。Extent是段中分配空间的逻辑单元。它有如下特性:一个或多个范围构成一个段 当段增长时,范围自动添加到段中 DBA可以手工把范围加到一个段中 一个范围不能跨数据文件,即一个扩展只属于一个数据文件 一个范围由一片连续的Oracle block构成每个段在定义时有许多存储参数来控制范围的分配,主要是STORGAE参数,主要包括包括如下儿项:INITIAL:分配给段的第一个范围的字节数,缺省为5 个数据块。NEXT:分配给段的下一个增量范围的字节数,缺省为5 个数据块。MAXEXTENTS:最大扩展次数。PCTINCREASE:每一个增量范围都在最新分配的增量范围上增长,这个百分数,缺省为5 0%,建表时通常设置为0,建表空间时为1%。范围在分配时,遵循如下分配方式:初始创建时,分 配 INITIAL指定大小的区。空间不够时,按 NEXT大小分配第二个区。再不够时,按 NEXT+NEXT*PCTINCREASE分配。可以对表、聚集、索弓I、回滚段、表空间等实体设置存储参数。3.段是表空间中一个指定类型的逻辑存储结构,它由一个或多个Extent组成,段将占用并增长存储空间,但是一个段不能跨越表空间,ORACLE中有数据段、索引段、临时段、回滚段和自举段(包含打开数据库时要装入的数据字典表)。11O r a c l e数据库基础知识第1章O R A C L E数据库基础知识华为产品维护资料汇编T E L L I N智能网维护资料数据库基础知识当执行建表命令时,系统将自动创建一个段,若没有指定存储参数子句storage,则系统会用相应表空间的storage,当初始区用完后,系统会按next和 pctincrease的值分配新的区。在这里要讲一个比较重要的概念:回滚段。回滚段是当某事务修改一个数据块时,用以存放数据以前映像信息的数据段。回滚段中的信息用以保存读连续性,并进行事务回滚和事务恢复。例如,如果事务通过把一列的关键值从10改为20来修改数据块,则原值10要存放于回滚段中,而数据块将具有新值 20。如果事务被回滚,则值10从回滚段拷回数据块。事务产生的重做记录保证在事务提交或回滚之前保持在回滚段中,而一个事务只能用一个回滚段存放其所有的重做记录,因此,如果回滚段大小配置不恰当,当 Oracle执行一个大的事务时.,就会出现回滚段溢出的错误。所以设置回滚段大小是一个比较重要的问题,这取决于数据库应用的主要事务模式(稳定的平均事务速度、频繁大型事务、不频繁大型事务),并可通过一些测试来确定。这里还有另外一个概念:临时段。用于以下SQL操作:CREATE INDEX 带 DISTINCT,ORDER BY,GROUP BY,UNION,INTERSECT 和MINUS子句的SELECT语句 无索引的J ION语句 某些相互关联的子查询了解了逻辑结构后,下面介绍数据库中存储对象。1.3.2 表(Table)1.表的组成表是数据库的最基本的逻辑结构,一切数据都存放在表中,一个ORACLE数据库就是由若干个数据表组成。其它数据库对象都是为了用户很好地操作表中的数据。表是关系模型中反映实体与属性关系的二维表格,它由列和行组成,通过行与列的关系,表达出了实体与属性的关系,如 图 1-6所示。-行/记录.嫔号。编码。名称小电 话。地址。D D D 1 P北京市电信局。7 4 9 8 7 8 6 5 2和 平 路1 5号。财中国工商银行”8 8 D 60 47 9 r公 主 坟1号。D D D 3QDHDE邓宏然。35D 0 7 8 56P友 谊 路27号。主关键字列/字段。非空列,图1-6表(T a b l e)的组成12Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识表的组成部分有:列/域/字段:表的内容,也就是实体的各个属性,组成了表的各个列。列名:列的名称 长度:该列所能容纳的最大数据位数 类型:该列存储的数据类型,常 用 数 据 类 型 如 表 所 示 关键字:该列能唯一表示一行内容,则称该列为关键字 非空列:该列值是不能为空的表1-1常用数据类型数据类型说明串长度Char(长度)定长字符串255Varchar(长度)变长字符串2000Number(精度,比例)数字Date日期时间Long(长度)大型可变长字符串21亿行/记录:表中所有列组合在一起形成的一条信息,称之为一行或一条记录。所属表:记录一定是归属于某一张表的。行号:每条记录在数据库中的一个定位位置。在 ORACLE数据库中,每张表有一系统提供的伪列来定位每条记录。记录长度:该记录所有非空列的长度求和得出的字节数。2.建表命令建表命令如下:CREATE TABLE tablename(columnl datatype DEFAULT expression constraint,columnl datatype DEFAULT expression constraint,.)STORAGE 子句 其他子句上建表举例:create table AUTOCALLLOG13Oracle数据库基础知识第 1 章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识(ID VARCHAR2(20)not null,Cityld NUMBER(4)NULL)TABLESPACE SERVICE_HIST_DATPCTFREE 10PCTUSED 90STORAGE(INITIAL 10MNEXT 10MMINEXTENTS 2MAXEXTENTS 500pctincrease 0)3.删除表中数据删除表中数据有以下两种方式:Delete:删除数据时,数据库需要写日志,Oracle数据库还需要占用回滚段,每次事务越大,对数据库的冲击越大,所以在删除或者更新数据时,一定要注意控制事务的大小。Oracle数据库在删除或更新数据时,where条件中加rownum控制每次删除或更新的数量,如:delete from t_my_table where.and rownum create table emp(eno char(4)constraint e1 primary key,ename char(8)not null,sal number(8,2)constraint ck1check(sal between 5000 and 10000),mgr char(4),dno char(2)constraint d2references dep(dno)on delete cascade);引用完整性约束时需要注意以下几点:(1)先建主表,后从表(2)从表引用的必须是主表的主码或定义了唯性约束的列(3)从表的外来码值必须匹配与主表的引用码的值(4)当删除主表记录时,从表指定了 on delete cascade子句,连带删除从表记录,否则,若从表中有对应记录,则不能删除主表记录。1.3.3 视 图(View)视图,数据中表的窗口,在表上的查询所形成的一个数据集体。通过视图,你将看到你所需要的信息,而排除其它不关心的内容。15华为产品维护资料汇编TELLIN智能网维护资料 Oracle数据库基础知识数据库基础知识 第 1章 ORACLE数据库基础知识 将表中所需要的列和行选取出来传递给用户。不是真正将数据重新复制一遍,不占用存储空间。不仅在表的基础上建立,还可在视图的基础之上再建立视图。建立视图主要基于:保护数据安全,防止机密数据泄露。简化数据查询方式,建立有效的查询。保持数据独立性,保证程序不会随着数据的位置变化、名称变化而需要修改。1.3.4 索 引(I n d e x)索引是与表相关的一种选择结构。索引可建立在一表的一列或多列上,一旦建立,由O R A C L E自动维护和使用,对用户是完全透明的。索引是逻辑地和物理地独立于数据,它们的建立或删除对表没有影响,所有应用可继续处理。关于索引需要注意以下几点:(1)索引是一种数据库对象,并不改变表的逻辑结构,而是在物理存储结构上增加一些辅助信息,以提高查询速度。(2)当表中记录增加或删除时,索引结构均要发生变化,因此,当有大量数据装入数据库时.,应该先装入数据,后建立索引,以提高数据装入速度。(3)只有当按指定的索引列的值查找或按索引列的顺序存取表时,才可利用索引提高性能。M说明:当索引被删除后,原分配给索引的数据块将全部返回给索引所在的表空间.建立索引可以:加快查询速度 确保唯一性特征。可以为表中某一列建一个唯一性索引,那么如果有人企图向表中插入这样一行记录,即它在这个有索引的列的数值与以前已有值重复,则这个操作就会失败。1.3.5 同 义 词(S y nony m)同义词是表、视图或其它数据库实体的一个别名。可以用与存取表、视图等实体同样的方法来存取别名。16华为产品维护资料汇编TELLIN智能网维护资料 Oracle数据库基础知识数据库基础知识 第 1章 ORACLE数据库基础知识 简单性(用户名.表名一同义词名)表的独立性(只需修改同义词的定义,避免修改大量应用程序)1.3.6 序 列(Sequence)序列是一数据库对象,利用它可以生成唯一的整数,序列的值是由ORACLE程序自动生成。创建序列:SQLcreate sequence zxk increment by 10start with 10 maxvalue 1000 cycle;上例说明:increment by 10 增量值为 10 start with 10指定生成的第一个序列号为10.maxvalue 1000指定序列可生成的最大值.cycle序列上升到最大值1000后,继续由开始值10开始生成.引用序列:序列当前值:zxk.currval序列下一个值:zxk.nextval1.3.7 数 据 库 链(Database Link)数据库链是本地数据库中的一个对象,利用它可以存取远程数据库上的对象。在远程表或视图之后附加db链名,即可在SQL语句中引用远程表或视图。有专用数据库链和公用数据库链之分,专用数据库链仅为建立者使用;公用数据库链必须用关键字public定义,公用数据库链可为全部用户使用。创建数据库链:对由连接串“icd_main”指定的数据库上的用户icdmain,口令为ic d,建立一名为icdmainold的数据库链。SQLcreate database link icdmainoldconnect to icdmainidentified by icdusing icd_main;17Oracle数据库基础知识第 1章 ORACLE数据库基础知识华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识下面给出使用数据库链进行查询、插入、修改、删除举例:SQLselect*from empicdmainold;SQLinsert into empicdmainoldvalues(0001 Vzxk*,5000,00101,00);SQLupdate empicdmainoldset sal=sal+1000;SQLdelete from empicdmainoldwhere enameaaaa1;18Oracle数据库基础知识第2 章 管理ORACLE数据库华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识第2章 管理ORACLE数据库2.1 启动与关闭2.1.1 权限任何一个系统都需要一个负责管理和维护的人员,负责管理和维护Oracle数据库的人就是数据库管理员(DataBase Administrator,简称DBA)。每个Oracle数据库至少要有一名专职的数据库管理员,其职责如下:保证数据的完整性和一致性 提高执行速度,调整系统性能 管理数据库存储,减少数据冗余 安装、升级Oracle Server和应用工具 定期对数据进行备份DBA为做好上述工作,需要了解以下知识:Oracle产品结构 DBA工具 数据库备份和恢复 数据字典用途1.DBA的操作系统帐户在进行许多数据库的管理任务时,必须能够执行操作系统命令,所以需要有个操作系统帐户,以便能完成操作系统的操作,此时要求此帐户具有比一般数据库用户更多的操作系统权限或存取特权。数据库的启动(startup)和 关 闭(shutdown)是重要的管理任务,只有通过internal用户连接到Oracle数据库,才能执行启动和关闭。对于不同的操作系统,必须完成下列要求之一,才能用internal登录Oracle。你的操作系统帐户有允许你作为internal登录Oracle操作系统权限。你有权限用internal登录Oracle。若数据库用internal登录Oracle时需要口令。你必须知道口令。19华为产品维护资料汇编TELLIN智能网维护资料 Oracle数据库基础知识数据库基础知识 第 2 章 管理ORACLE数据库2.DBA角色和用户每个数据库总是自动创建一个预先定义的角色“DBA”,该角色包括所有数据库系统权限,具有很强的特权,只应授予数据库管理员。在数据库创建时,自动创建了两个用户,并授予DBA角色,具体如下:SYS:初始口令为“CHANGE_ONNSTALL,所有数据字典基表和视图被存储在SYS用户中。SYSTEM:初始口令为“MANAGER,附加的表和视图(一些Oracle选择件使用)以及被Oracle工具使用的表和视图存放在SYSTEM用户中。安装完毕后,建议立即修改初始口令。DBA用户通常工具如下:Sql*DBA Sql*Loader EXP和 IMP2.1.2 ORACLE的四中状态Oracle数据库任何时候可以处于四种状态之一:SHUTDOWN:数据库关闭 NOMOUNT:例程启动 MOUNT:例程启动,控制文件打开 OPEN:例程启动,所有数据文件打开数据库可以在几种状态之间转变:NOMOUNT至 U MOUNTALTER DATABASE MOUNT MOUNT 至 IJ OPENALTER DATABASE OPENALTER SYSTEM ENABLE RESTRICTED SESSION2.1.3 启动数据库打开和关闭数据库的各个阶段如下图所示:20Oracle数据库基础知识第2 章 管理ORACLE数据库华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识前提条件:首先执行su-Oracle命令进入Oracle目 录($提示符)执行 svrmgrl执行 connect internal(如有口令需要输入口令,即 connect internal/口令)1.启动例程不装载数据库命令:startup nomount启动一个实例而没有安装(mount)数据库,这步操作一般在创建数据库和重新创建控制文件时才会用到,到这一步为止,数据库做的操作有:读初始化参数文件iEtSID.ora 创建SGA 启动后台进程 打开告警文件和跟踪文件2.启动例程并装载数据库,但不带开命令:startup mount为执行一些特定的维护操作,经常需要启动一个实例并安装(mount)数据库,但不打开数据库。例如,如下操作就需要启动数据库到这一步:为数据文件改名 增加、删除或改名重做日志文件 启动或停止数据库到归档模式 进行完整的数据库恢复mount一个数据库包括如下几步:把数据库与已经启动(nomount)的实例联系起来定位并打开初始化参数CONTROL_FILE指定的控制文件(获取实例锁)读控制文件获取数据文件和重做日志文件的名字和状态(此时,数据库并不检查这些数据文件和联机重做日志文件是否存在)3.启动例程,装载并打开数据库命令:startup open21Oracle数据库基础知识第2 章 管理ORACLE数据库华为产品维护资料汇编TELLIN智能网维护资料数据库基础知识数据库正常表明实例已经启动,并且数据库已经安装(mount)和打开,这时所有合法的数据库用户才可连到数据库,并执行典型的数据访问操作。打开一个数据库包括:打开联机数据文件打开联机重做日志文件用此种方式打开数据库,则允许所有合法用户对数据库做联接并执行各种数据库存取操作。这 步 中,ORACLE检查所有的数据文件和联机重做日志文件是否可以被打开,并检查数据库的一致性。对于一些可以自动恢复的错误,后台进程SMON在数据库打开之前将执行恢复操作,对于那些不能自动恢复的错误,打开数据库将失败并报错。4.启动例程并限制对数据库访问命令:startup restrict用此种方式打开数据库,只允许管理员使用,而不允许一般用户访问,即只有具有create session权限和restricted session系统权限的用户才可以联接到数据库上(只有管理员才有此权限),利用该种方式启动,通常用于执行如下操作:进行结构维护,例如重建索引 进行数据库exp或 imp 进行数据装入(sql*loader)5.强制数据库启动命令:startup force在用Normal和 Immediate选项无法成功关闭数据库,或启动时出错,通常用此种方式打开数据库。2.1.4 关闭数据