Oracle数据库基础知识.docx

上传人:b****2 文档编号:17692306 上传时间:2023-08-03 格式:DOCX 页数:81 大小:112.34KB
下载 相关 举报
Oracle数据库基础知识.docx_第1页
第1页 / 共81页
Oracle数据库基础知识.docx_第2页
第2页 / 共81页
Oracle数据库基础知识.docx_第3页
第3页 / 共81页
Oracle数据库基础知识.docx_第4页
第4页 / 共81页
Oracle数据库基础知识.docx_第5页
第5页 / 共81页
Oracle数据库基础知识.docx_第6页
第6页 / 共81页
Oracle数据库基础知识.docx_第7页
第7页 / 共81页
Oracle数据库基础知识.docx_第8页
第8页 / 共81页
Oracle数据库基础知识.docx_第9页
第9页 / 共81页
Oracle数据库基础知识.docx_第10页
第10页 / 共81页
Oracle数据库基础知识.docx_第11页
第11页 / 共81页
Oracle数据库基础知识.docx_第12页
第12页 / 共81页
Oracle数据库基础知识.docx_第13页
第13页 / 共81页
Oracle数据库基础知识.docx_第14页
第14页 / 共81页
Oracle数据库基础知识.docx_第15页
第15页 / 共81页
Oracle数据库基础知识.docx_第16页
第16页 / 共81页
Oracle数据库基础知识.docx_第17页
第17页 / 共81页
Oracle数据库基础知识.docx_第18页
第18页 / 共81页
Oracle数据库基础知识.docx_第19页
第19页 / 共81页
Oracle数据库基础知识.docx_第20页
第20页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Oracle数据库基础知识.docx

《Oracle数据库基础知识.docx》由会员分享,可在线阅读,更多相关《Oracle数据库基础知识.docx(81页珍藏版)》请在冰点文库上搜索。

Oracle数据库基础知识.docx

Oracle数据库基础知识

目录

第1章ORACLE数据库基础知识1

1.1产品概述1

1.1.1产品简介1

1.1.2基本概念1

1.2ORACLE系统结构2

1.2.1ORACLE物理结构2

1.2.2系统全局区4

1.2.3进程6

1.3存储管理7

1.3.1逻辑结构8

1.3.2表(Table)12

1.3.3视图(View)15

1.3.4索引(Index)16

1.3.5同义词(Synonym)16

1.3.6序列(Sequence)17

1.3.7数据库链(DatabaseLink)17

第2章管理ORACLE数据库19

2.1启动与关闭19

2.1.1权限19

2.1.2ORACLE的四中状态20

2.1.3启动数据库20

2.1.4关闭数据库22

2.2应用开发工具(SQL*Plus)24

2.2.1SQL24

2.2.2PL/SQL26

2.2.3数据库管理工具29

2.3备份及恢复29

2.3.1备份(转入)29

2.3.2恢复31

2.4ORACLE数据库的网络应用33

2.4.1SQL*Net产品介绍33

2.4.2配置客户机/服务器结构35

第3章常用任务39

3.1如何恢复被误删的数据文件39

3.2如何杀掉吊死session39

3.3如何修改字符集39

3.4如何追加表空间39

3.5如何加大表的maxextents值40

3.6如何查询无效对象40

3.7怎样分析SQL语句是否用到索引40

3.8如何将Oracle8数据导入Oracle7数据库41

3.9怎样判断是否存在回滚段竞争41

3.10怎样手工跟踪函数/存储过程执行情况42

3.11多种业务使用同一数据库如何分配回滚段42

3.12怎样远程用Sql*Load倒入数据43

3.13怎样倒出、倒入文本数据43

3.13.1倒出43

3.13.2倒入43

3.14如何更新当前数据库日志备份方式为archive44

3.15如何修改ORACLE数据库的SID44

3.16Unix环境下如何实现自动备份44

3.16.1设置运行环境45

3.16.2倒出数据45

3.16.3异地备份46

3.16.4启动备份进程47

3.17怎样分析Oracle故障48

3.18如何设置ORACLEPARALLELSERVER49

3.18.1HOSTS文件50

3.18.2OGMS的LST文件51

3.18.3LISTENER.ORA文件51

3.18.4INITORA8.ORA文件52

第4章常见问题处理54

4.1增大Processes参数后数据库不能启动54

4.2误将datafile删除导致数据库无法启动54

4.3rollbacksegment状态为"Needsrecovery"如何处理54

4.4ORACLE8DOWN机如何处理55

4.4.1大量trace文件导致DOWN机处理方法55

4.4.2动态锁参数配置不适当导致DOWN机56

4.5创建或追加表空间操作不成功处理方法56

4.6Job不能执行处理方法56

4.7temp表空间溢出处理办法57

4.8还有一定表空间为何不能建新表57

4.9不带参数建立表发现表空间迅速变小57

第5章ORACLE数据字典与视图58

5.1常用数据字典与视图58

5.1.1dba_tablespaces(user_tablespaces)58

5.1.2dba_data_files(user_data_files)58

5.1.3dba_segments(user_segments)58

5.1.4dba_rollback_segs59

5.1.5dba_extents59

5.1.6dba_free_spaces59

5.2数据字典与视图表59

第6章SQL语言运算符与函数66

6.1各种运算符列表66

6.2字符函数列表67

6.3数值函数列表68

6.4日期函数列表68

6.5聚组函数列表69

ORACLE数据库基础知识

产品概述

1.1.1产品简介

数据库技术产生于60年代末70年代初,到现在比较知名的大型数据库系统有ORACLE、Sybase、Informix、DB2(IBM公司的)、Ingress、RDB、SQLServer等。

在所有这些数据库中,ORACLE公司的ORACLE数据库以其卓越的性能占据龙头位置,是数据库行业的巨无霸。

ORACLE公司于1979年,首先推出基于SQL标准的关系数据库产品,可在100多种硬件平台上运行(包括微机、工作站、小型机、中型机和大型机),支持很多种操作系统;1986年,ORACLE推出具有分布式结构的版本5,可将数据和应用驻留在多台计算机上,而相互间的通信是透明的;1988年,推出版本6(V6.0)可带事务处理选项,提高了事务处理的速度;1992年推出了版本7,可带过程数据库选项、分布式数据库选项和并行服务器选项,称为ORACLE7数据库管理系统,它释放出了开放的关系型系统的真正潜力。

目前,最新版本为ORACLE9i,通用版本为ORACLE8i。

ORACLE8i是一种通用叫法,它包括许多更细版本,如ORACLE8.1.5、ORACLE8.1.6、ORACLE8.1.7,建议使用版本为ORACLE8.1.7序列。

1.1.2基本概念

要了解ORACLE数据库,需要先了解以下基本概念:

●数据库:

是一个数据集合,我们大多数情况下讲的数据库概念不仅是指物理数据,还指内存、进程对象的组合。

ORACLE数据库都将数据存储在文件中,在其内部,数据库结构提供了数据对文件的逻辑映射,允许不同类型的数据分开存放。

这些逻辑划分称为表空间。

关于表空间的概念将在下文中介绍。

●表空间(Tablespace):

是数据库的逻辑划分,每个数据库至少有一个表空间(system表空间)。

●数据文件(DataFile):

每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件。

建立新表空间需要建立新的数据文件。

●实例(Instance):

也称为服务器server,是存取和控制数据库的软件机制,它由系统全局区SGA和后台进程组成。

ORACLE数据库启动时,实际是启动ORACLE实例,(安装并打开数据库)。

说明:

一个数据库可以有多个实例。

决定实例组成及大小的参数存储在init.ora

例如:

initora8.ora,表示实例名为ora8的配置文件。

ORACLE系统结构

任何硬件平台或操作系统下的ORACLE体系结构是相同的,包括如下三个方面:

(1)物理结构:

数据文件,日志文件,控制文件,参数文件

(2)系统全局区:

共享池,数据缓冲区,日志缓冲区,字典缓冲区

(3)进程:

用户进程,服务器进程,后台进程

具体结构如图1-1所示。

图1-1ORACLE数据库体系结构

1.1.3ORACLE物理结构

一个ORACLE数据库是数据的集合,被处理成一个单位。

一个ORACLE数据库有一个物理结构和一个逻辑结构。

物理数据库结构是由构成数据库的操作系统文件所决定。

每一个ORACLE数据库是由三种类型的文件组成:

数据文件、日志文件和控制文件。

数据库的文件为数据库信息提供真正的物理存储。

ORACLE数据库的物理结构由四类文件组成

1.数据文件

数据文件是物理存储ORACLE数据库数据的文件,每一个ORACLE数据库有一个或多个物理的数据文件(datafile)。

一个数据库的数据文件包含全部数据库数据。

逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。

数据文件有下列特征:

●每一个数据文件只与一个数据库联系。

●一个表空间可包含一个或多个数据文件。

图1-2给出数据库、表空间及数据文件之间关系。

图1-1数据库、表空间及数据文件之间关系

2.日志文件

每一个数据库有两个或多个日志文件(redologfile)的组,每一个日志文件组用于收集数据库日志。

日志的主要功能是记录对数据所做的修改,所以对数据库作的全部修改是记录在日志中。

日志文件主要是保护数据库以防止故障。

为了防止连日志文件本身的故障,ORACLE允许镜象日志(mirroredredolog),以致可在不同磁盘上维护两个或多个日志副本。

日志文件中的信息仅在系统故障或介质故障恢复数据库时使用。

3.控制文件

每一个ORACLE数据库有一个控制文件(controlfile),它记录数据库的物理结构,包含下列信息类型:

●数据库名

●数据库数据文件和日志文件的名字和位置

●数据库建立日期

为了安全起见,允许控制文件被镜象。

每一个ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们被打开。

当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。

数据恢复时,也要使用控制文件。

4.参数文件

是一个文本文件,可直接使用文本编辑器对其内容进行修改,该文件只在建立数据库和启动实例时被访问,修改该文件后必须重启实例才生效。

系统初始参数文件:

init.ora

生成的参数文件为:

initSID.ora

参数文件作用如下:

●设置SGA的大小

●设置数据库的全部缺省值

●设置数据库的范围

●在数据库建立时定义数据库的物理属性

●指定控制文件名和路径

●通过调整内存结构,优化数据库性能

1.1.4系统全局区

SGA(SystemGlobalArea)是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作,图1-3给出实例与SGA及数据库关系。

图1-1实例与SGA及数据库关系

SGA分为以下几个部分:

(2)共享池

(3)数据块缓冲区

(4)日志缓冲区

(5)字典缓冲区

下面分别介绍

注意:

SGA的尺寸应小于物理内存的一半。

在ORACLE系统中,所有用户与ORACLE数据库系统的数据交换都要经过SGA区。

2.共享池(SharedPool)

由共享SQL区和数据字典区组成,参数shared_pool_size确定共享池大小,共享SQL区包括:

(1)SQL或PL/SQL语句的文本

(2)SQL或PL/SQL语句的语法分析形式

(3)SQL或PL/SQL语句的执行方案

说明:

shared_pool_size=物理内存×(15~20)%

对于OPS取下限。

3.数据块缓冲区

用于存储从数据文件中读出的数据,其大小由以下两个参数决定:

●DB_BLOCK_SIZE确定数据块的大小,一般为2K或4K。

●DB_BLOCK_BUFFERS确定数据块的数目。

DB_BUFFERS=DB_BLOCK_BUFFERS×DB_BLOCK_SIZE=物理内存×(15~25)%,对于OPS取上限。

该值应尽量大。

4.日志缓冲区

以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录项将被写到日志文件中。

日志缓冲区大小由参数LOG_BUFFER确定

5.字典缓冲区

用于存放数据字典信息行。

6.SGA设置大小总原则

在设置各参数调整SGA大小时,应保证其小于物理内存的一半。

SGA的计算方法如下:

SGA=DB_BLOCK_BUFFERS×DB_BLOCK_SIZE+SHARE_POOL_SIZE+SORT_AREA_SIZE+1M+3×DB_BLOCK_SIZE×(CPUs+2)×PARALELL_MAX_SREVERS

说明:

OPS才有最后一项。

SORT_AREA_SIZE:

排序区,并发用户数较多,需要排序时该值宜大。

PARALELL_MAX_SREVERS:

2×CPU个数×4×并发用户数。

对单CPU不能修改此值。

1.1.5进程

ORACLE实例分为单进程和多进程实例,通常用的是多进程系统。

多进程系统:

分为ORACLE系统进程和用户进程,当用户运行一个应用一个程序时,系统就为它建立一个用户进程。

ORACLE系统进程又分为服务器进程和后台进程。

1.服务器进程

用于处理用户请求的进程。

处理过程:

(1)分析SQL命令并生成执行方案

(2)从数据缓冲区或磁盘中读取数据

(3)将执行结果返回给用户。

2.后台进程

为所有数据库用户异步完成各种任务,主要包括如下进程:

●DBWR:

数据库写进程。

●LGWR:

日志写进程。

●CKPT:

检查点写进程。

●SMON:

系统监控进程。

●PMON:

进程监控进程。

●ARCH:

归档进程。

●RECO:

恢复进程。

●LCKn:

封锁进程。

存储管理

前面已经提到过,ORACLE数据库都将数据存储在文件中,在其内部,数据库结构提供了数据对文件的逻辑映射,允许不同类型的数据分开存放。

这些逻辑划分称为表空间,图1-4给出了详细的ORACLE数据库存储结构图。

图1-1ORACLE存储结构图

对于用户,通常关心的是ORACLE的逻辑结构,是在逻辑上是如何组成的,是如何存储数据的,下面就进行详细介绍。

1.1.6逻辑结构

ORACLE的逻辑结构是由一个或多个表空间组成,一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(tablespace)。

一个表空间可将相关的逻辑结构组合在一起。

●一个表空间由一组分类段组成。

●一个段由一组范围组成。

●一个范围由一批数据库块组成。

●一个数据库块对应一个或多个物理块。

每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立时自动建立。

在该表空间中总包含有整个数据库的系统信息数据,最小的数据库可只需要SYSTEM表空间。

表空间利用增加数据文件可扩大表空间,表空间的大小为组成该表空间的数据文件的大小的和。

ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间相联系。

当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。

在数据文件初始建立后,所分配的磁盘不包含有任何数据。

一个模式(schema)为模式对象(schemaobject)的一个集合,每一个数据库用户对应一个模式。

模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、同义词等结构。

模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。

一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。

例如:

表、索引等模式对象,在指定表空间的数据文件上为该对象分配多少空间。

图1-5说明模式对象、表空间和数据文件之间的关系。

图1-1模式对象、表空间和数据文件之间的关系

模式与表空间之间的关系为:

一个表空间可包含不同模式的对象,而一个模式中的对象可包含在不同的表空间中。

2.数据库块

数据库块(databaseblock)是Oracle逻辑分配空间的最底层,又称逻辑块、页或ORACLE块。

数据库块是数据库使用和分配空间的最小单元,也可以说是使用的最小I/O单元,一个数据块与磁盘上指定的物理空间大小相一致,一个数据库块对应一个或多个物理块,块的大小由参数db_block_size确定。

PCTFREE和PCTUSED是开发人员用来控制数据块中可用插入和更新数据的空闲空间大小的参数。

●PCTFREE:

设置数据块中保持空闲的百分比。

●PCTUSED:

当数据块空闲空间达到PCTFREE时,此块不允许插入数据,只能修改或删除块中的行,更新时可能使数据块空闲空间变大,已用数据空间变小,当已用空间低于PCTUSED时,则可以重新插入数据。

PCTFREE及PCTUSED的选择:

●经常做查询(select)的表,应使PCTFREE小些,尽量减少存储空间浪费。

●经常做插入(insert)的表,应使PCTUSED大一些。

●经常做更新(update)的表,应使PCTFREE大一些,给更新留出更大的空间,减少行移动。

说明:

这两个参数只能在创建、修改表和聚簇(数据段)时指定。

另外,在创建、修改索引(索引段)时只能指定PCTFREE参数。

经常做插入的表设置举例:

createtableCOMMINFOR

(SERIALNUMBERVARCHAR2(20)notnull,

ENTERHISTIMEDATEnotnull,

ACCEPTBEGINTIMEDATEnull,

ACCEPTDURATIONNUMBER(10)null,

ACCEPTERNOVARCHAR2(4)null,

CALLINGPHONENOVARCHAR2(20)null,

ACCEPTIDNUMBER(10)null,

OPERATIONTYPEVARCHAR2(10)null,

APPELLANTNAMEVARCHAR2(16)null,

CONTACTIDNUMBER(10)null,

pctfree10

pctused90

initrans2

maxtrans255

TABLESPACESERVICE_RPT_DAT

经常做查询的表设置举例:

createtableAUTH

AUTHIDNUMBER(10)notnull,

DESCRIPTIONVARCHAR2(50)null

constraintPK_AUTHprimarykey(AUTHID)

pctfree10

pctused40

TABLESPACESERVICE_RPT_DAT

3.范围(Extent)

数据库存储空间分配的逻辑单位,一个范围由一组数据块组成,范围是由段分配的,分配的第一个范围称初始范围,以后分配的范围称增量范围。

Extent是段中分配空间的逻辑单元。

它有如下特性:

●一个或多个范围构成一个段

●当段增长时,范围自动添加到段中

●DBA可以手工把范围加到一个段中

●一个范围不能跨数据文件,即一个扩展只属于一个数据文件

●一个范围由一片连续的Oracleblock构成

每个段在定义时有许多存储参数来控制范围的分配,主要是STORGAE参数,主要包括包括如下几项:

●INITIAL:

分配给段的第一个范围的字节数,缺省为5个数据块。

●NEXT:

分配给段的下一个增量范围的字节数,缺省为5个数据块。

●MAXEXTENTS:

最大扩展次数。

●PCTINCREASE:

每一个增量范围都在最新分配的增量范围上增长,这个百分数,缺省为50%,建表时通常设置为0,建表空间时为1%。

范围在分配时,遵循如下分配方式:

●初始创建时,分配INITIAL指定大小的区。

●空间不够时,按NEXT大小分配第二个区。

●再不够时,按NEXT+NEXT*PCTINCREASE分配。

可以对表、聚集、索引、回滚段、表空间等实体设置存储参数。

4.段

是表空间中一个指定类型的逻辑存储结构,它由一个或多个Extent组成,段将占用并增长存储空间,但是一个段不能跨越表空间,ORACLE中有数据段、索引段、临时段、回滚段和自举段(包含打开数据库时要装入的数据字典表)。

当执行建表命令时,系统将自动创建一个段,若没有指定存储参数子句storage,则系统会用相应表空间的storage,当初始区用完后,系统会按next和pctincrease的值分配新的区。

在这里要讲一个比较重要的概念:

回滚段。

回滚段是当某事务修改一个数据块时,用以存放数据以前映像信息的数据段。

回滚段中的信息用以保存读连续性,并进行事务回滚和事务恢复。

例如,如果事务通过把一列的关键值从10改为20来修改数据块,则原值10要存放于回滚段中,而数据块将具有新值20。

如果事务被回滚,则值10从回滚段拷回数据块。

事务产生的重做记录保证在事务提交或回滚之前保持在回滚段中,而一个事务只能用一个回滚段存放其所有的重做记录,因此,如果回滚段大小配置不恰当,当Oracle执行一个大的事务时,就会出现回滚段溢出的错误。

所以设置回滚段大小是一个比较重要的问题,这取决于数据库应用的主要事务模式(稳定的平均事务速度、频繁大型事务、不频繁大型事务),并可通过一些测试来确定。

这里还有另外一个概念:

临时段。

用于以下SQL操作:

●CREATEINDEX

●带DISTINCT,ORDERBY,GROUPBY,UNION,INTERSECT和MINUS子句的SELECT语句

●无索引的JION语句

●某些相互关联的子查询

了解了逻辑结构后,下面介绍数据库中存储对象。

1.1.7表(Table)

1.表的组成

表是数据库的最基本的逻辑结构,一切数据都存放在表中,一个ORACLE数据库就是由若干个数据表组成。

其它数据库对象都是为了用户很好地操作表中的数据。

表是关系模型中反映实体与属性关系的二维表格,它由列和行组成,通过行与列的关系,表达出了实体与属性的关系,如图1-6所示。

图1-1表(Table)的组成

表的组成部分有:

列/域/字段:

表的内容,也就是实体的各个属性,组成了表的各个列。

●列名:

列的名称

●长度:

该列所能容纳的最大数据位数

●类型:

该列存储的数据类型,常用数据类型如表1-1所示

●关键字:

该列能唯一表示一行内容,则称该列为关键字

●非空列:

该列值是不能为空的

表1-1常用数据类型

数据类型

说明

串长度

Char(长度)

定长字符串

255

Varchar(长度)

变长字符串

2000

Number(精度,比例)

数字

Date

日期时间

Long(长度)

大型可变长字符串

21亿

行/记录:

表中所有列组合在一起形成的一条信息,称之为一行或一条记录。

●所属表:

记录一定是归属于某一张表的。

●行号:

每条记录在数据库中的一个定位位置。

在ORACLE数据库中,每张表有一系统提供的伪列来定位每条记录。

●记录长度:

该记录所有非空列的长度求和得出的字节数。

2.建表命令

建表命令如下:

CREATETABLEtablename

(column1datatype[DEFAULTexpression][constraint],

column1datatype[DEFAULTexpression][constraint],

……)

[STORAGE子句]

[其他子句];

建表举例:

createtableAUTOCALLLOG

(IDVARCHAR2(20)notnull,

CityIdNUMBER(4)NULL

TABLESPACESERVICE_HIST_DAT

PCTFREE10

PCTUSED90

STORAGE

(INITIAL10M

NEXT10M

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2