自动售检票中央计算机系统(二)公开课_第1页
自动售检票中央计算机系统(二)公开课_第2页
自动售检票中央计算机系统(二)公开课_第3页
自动售检票中央计算机系统(二)公开课_第4页
自动售检票中央计算机系统(二)公开课_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章

日动售检票中央计算机系统

上海地铁运营有限公司轨道交通票务中心

2008年5月

目录

1计算机系统概述4

1.1系统控制概述4

1.2数据库概述4

1.2.1数据库定义4

1.2.2数据库的发展4

1.2.3ORACLE系统5

1.3数据分析概述5

1.4计算机网络概述5

2自动售检票中央慷作系统原理5

2.1备份工具的使用5

2.2操作系统原理5

2.3通信原理5

2.4中央计算机系统5

2.5基本逻辑门电路功能5

2.6触发器、计数器5

2.7计算机系统原理5

2.8UNIX基本命令和基本操作5

3自动售检票中央数据库5

3.1ORACLE数据库系统的体系结构5

3.1.1ORACLE实例的进程结构和内存结构6

3.1.2后台进程的功能:6

3.2SQL语言基础7

3.2.1SQL语言的特点7

3.2.2基本的SQL语句8

3.2.3编写基本的SQLSELECT语句9

3.3存储结构管理11

3.3.1表空间的管理12

3.3.1.1管理表空间的原则12

3.3.1.2创建表空间12

3.3.1.3使用只读表空间14

3.3.1.4查看表空间信息14

3.3.1.5删除表空间15

3.3.2管理还原数据16

3.32.1还原段16

3.3.2.2自动还原管理18

3.3.2.3获取还原段信息23

3.4模式对象管理24

3.4.1表24

3.4.1.1表的结构24

3.4.1.2创建表25

34.1.3修改表27

3.41.4删除表27

3.4.2索引29

3.4.2.1概念29

3.4.2.2索引分类29

3.4.2.3创建索引31

3.4.2.4修改索引35

3.4.2.5删除索引37

3.4.3聚簇38

3.4.3.1聚簇概念38

3.4.3.2创建聚簇索引38

3.4.3.3散列聚簇39

3.4.4视图40

3.4.4.1视图的概念40

3.4.42视图的创建40

3.4.4.3视图的查询、修改与删除41

3.4.5同义词和序列43

3.4.5.1同义词43

3.4.5.2序列43

3.5安全管理44

3.5.1管理用户44

3.5.1.1用户与安全性44

3.5.1.2创建新用户45

3.5.1.3删除用户47

3.5.1.4获取用户信息47

3.5.2管理权限48

3.5.2.1权限的定义48

35.2.2权限的种类48

3.5.2.3系统权限48

3.5.2.4对象权限50

3.5.2.5获取权限信息53

3.5.3管理角色53

3.5.3.1角色的定义53

3.5.3.2创建角色54

3.5.3.3预定义角色56

3.5.3.4给用户分配角色57

3.5.3.5设置缺省角色58

3.5.3.6启用和禁用角色58

3.5.3.7撤销用户角色59

3.5.3.8删除角色59

3.6备份与恢复管理59

3.6.1使用RMAN备份数据库60

3.6.1.1RMAN环境的基本操作60

3.6.1.2使用backup命令创建备份集60

3.6.1.3归档重做日志文件的备份65

3.6.1.4复制整个数据库65

3.6.1.5制作增量备份66

3.6.1.6在N0ARCHIVEL0G模式下进行备份67

3.6.1.7自动备份RMAN控制文件68

3.6.1.8监视RMAN备份68

3.6.1.9其他RMAN问题69

3.6.2使用RMAN完全恢夏69

3.6.2.1介质恢复69

3.6.2.2使用RMAN执行还原和数据文件介质恢复70

3.6.2.3使用RMAN还原ARCHIVELOG模式下的数据库70

3.6.2.4将数据文件还原到新位置71

3.6.2.5使用RMAN恢复表空间72

3.6.2.6使用RMAN重新定位表空间72

3.6.3RMAN不完全恢复73

3.6.3.1不完全恢更概览73

3.6.3.2使用RMAN进行数据库的不完全恢复74

4数据分析76

4.1自动售检票系统与有关专业的借口要求76

4.276

4.3错误!未定义书签。

4.4错误!未定义书签。

4.5错误!未定义书签。

4.6错误!未定义书签。

4.7错误!未定义书签。

4.8错误!未定义书签。

5自动售检票中央网络系统76

计算机系统概述

系统控制概述

数据库概述

数据库定义

数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有

如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使

用它的应用程序,对数据的增、册IJ、改和检索由统一软件进行管理和控制。从发展的历史看,

数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

数据库的基本结构分三个层次,反映了观察数据库的三种不同角度.

(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数

据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。

(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻

辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,

而不是它们的物理情况,是数据库管理员概念下的数据库。

(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据

集合,即逻辑记录的集合。

数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点:

(1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据•,也包括用户可以用

各种方式通过接口使用数据库,并提供数据共享。

(2)减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各

自建立应用文件。减少了大量重复数据,减少了数据冗余.维护了数据的一致性。

(3)数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也

包括数据物理结构的变化不影响数据的逻辑结构。

(4)数据实现集中控制。文件管理方式中,数据处于•一种分散的状态,不同的用户或同一用

户在不同处理中其文件之间亳无关系。利用数据库可对数据进行集中控制和管理,并通过数据

模型表示各种数据的组织以及数据间的联系。

(5)数据•致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以

防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;

③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交

互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,

从而防止数据被破坏

数据库的发展

数据模型是数据库系统的核心和基础。因此,对数据库技术发展阶段的划分应该以数据模

型的发展演变作为主要依据和标志。总体说来,数据库技术从开始到现在一共经历了三个发展

阶段:第一代是网状、层次数据库系统,第二代是关系数据库系统,第三代是以面向对象数据

模型为主要特征的数据库系统。

第一代包括网状和层次数据库系统,是因为它们的数据模型虽然分别为层次和网状模型,但实

质上层次模型只是网状模型的特例而已。这二者都是格式化数据模型,都是在60年代后期研究

和开发的,不论是体系结构、数据库语言,还是数据的存储管理,都具有共同特征,所以它们

应该划分为一代。

第二代数据库系统支持关系数据模型v关系模型不仅具有简单、清晰的优点,而且有关系代数

作为语言模型,有关系数据理论作为理论基础。因此关系数据库具有形式基础好、数据独立性

强、数据库语言非过程化等特点,这些特点是数据库技术发展到了第二代的显著标志。虽然关

系数据模型描述了现实世界数据的结构和一些重要的相互狭系,但是仍然不足以抓住和表达数

据对象所具有的丰富而重要的语义,因而它属于语法模型。

第三代数据库系统的特征是数据模型更加丰富,数据管理功能更为强大,能够支持传统数

据库难以支持的新的应用需求。

ORACLE系统

1.ORACLE产品结构及纽成

ORACLE系统是由以RDBMS为核心的一批软件产品构成.

2.ORACLE系统特点

ORACLE公司于1979年,首先推出基于SQL标准的关系数据库产品,可在100多种硬件平

台上运行(所括微机、工作站、小型机、中型机和大型机),支持很多种操作系统。用户的ORACLE

应用可方便地从一种计算机配置移至另一种计算机配置上。ORACLE的分布式结构可将数据和应

用驻留在多台计算机上,而相互间的通信是透明的。1992年6月ORACLE公司推出的0RACLE7

协同服务器数据库,使关系数据库技术迈上了新台阶。根泥TDG(国际数据集团)1992年全球

UNIX数据库市场报告,ORACLE占市场销售量50%。它之所以倍受用户喜爱是因为它有以下突出

的特点:

壬持大数据库、多用户的高性能的事务处理。ORACLE支持最大数据库,其大小可到几百千

兆,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据应用,并使数据争用

最小,保证数据一致性。系统维护具有高的性能,ORACLE每天可连续24小时工作,正常的系

统操作(后备或个别计算机系统故障)不会中断数据库的使用。可控制数据库数据的可用性,

可在数据库级或在子数据库级上控制。

ORACLE遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。所

以它是一个开放系统,保护了用户的投资。美国标准化和技术研究所(NIST)对ORACLE7s三RVER

进行检验,100%地与ANSI/1S0SQL89标准的二级相兼容。

实施安全性控制和完整性控制。ORACLE为限制各监控数据存取提供系统可靠的

安全性。ORACLE实施数据完整性,为可接受的数据指定标准。

支持分布式数据库和分布处理。ORACLE为了充分利用计算机系统和网络,允许将

处理分为数据库服务器和客户应用程序,所有共享的数据管理由数据库管理系统的计算机处理,

而运行数据库应用的工作站集中于解释和显示数据。通过网络连接的计算机环境,ORACLE将存

放在多台计算机上的数据组合成•个逻辑数据库,可被全部网络用户存取。分布式系统像集中

式数据库一样具有透明性和数据一致性.

具有可移植性、可兼容性利可连接性。由于ORACLE软件可在许多不同的操作系统

上运行,以致ORACLE上所尸发的应用可移植到任何操作系统,只需很少修改或不需修改。ORACLE

软件同.工业标准相兼容,包括许多I:业标准的操作系统,所开发应用系统可在任何操作系统上

运行。可连接性是指ORALCE允许不同类型的计算机和操作系统通过网络可共享信息。

数据分析概述

计算机网络概述

自动售检票中央操作系统原理

备份工具的使用

操作系统原理

通信原理

中央计算机系统

基本逻辑门电路功能

触发器、计数器

计算机系统原理

UNIX基本命令和基本操作

自动售检票中央数据库

ORACLE数据库系统的体系结构

ORACLE数据库系统为具有管理ORACLE数据库功能的计算机系统。每一个运行的

ORACLE数据库与一个ORACLE实例(INSTANCE)相联系。一个ORACLE实例为存取和控制一数据

库的软件机制。每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEMGLOBAL

AREA)的一内存区(简称SGA)被分配,有一个或多个ORACLE进程被启动。该SGA和ORACLE

进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据

库一个或多个用户服务而工作。

在ORACLE系统中,首先是实例启动,然后由实例装配(MOUNT)一数据库。在松耦合系统

中,在具有ORACLEPARALLELSERVER选项时,单个数据库可被多个实例装配,即多个实例共

享同一物理数据库。

ORACLE实例的进程结构和内存结构

进程结构

进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用

作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结

构设计使性能最大。

ORACLE实例有两种类型:单进程实例和多进程实例。

单进程ORACLE(又称单用户ORACLE)是一种数据库系统,一个进程执行全部ORACLE

代码。由于ORACLE部分和客户应用程序不能分别以进程执行,所以ORACLE的代码和用户的数

据库应用是单个进程执行。

在单进程环境下的ORACLE实例,仅允许一个用户可存取。例如在MS-DOS上运行

ORACLE。

多诜程ORACLE实例(又称多用户ORACLE)使用多个进程来执行ORACLE的不同部

分,对于每一个连接的用户都有一个进程。

在多进程系统中,进程分为两类:用户进程和ORACLE进程。当一用户运行一应用程序,如

PRO*C程序或一个ORACLE工具(如SQL*PLUS),为用户运行的应用建立一个用户进程。ORACLE

进程又分为两类:服务器进程和后台进程。服务器进程用于处理连接到该实例的用户进程的请

求。当应用和ORACELE是在同一台机器上运行,而不再通过网络,一般将用户进程和它相应的

服务器进程组合成单个的进程,可降低系统开销。然而,当应用和ORACLE运行在不同的机器上

时,用户进程经过一个分离服务器进程与ORACLE通信。它可执行下列任务:

对应用所发出的SQL语句进行语法分析和执行。

从磁盘(数据文件)中读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓

冲区时),将结果返回给应用程序处理。

系统为了使性能最好和协调多个用户,在多进程系统中使用一些附加进程,称为后

台进程。在许多操作系统中,后台进程是在实例启动时自动地建立。一个ORACLE实例可以有许

多后台进程,但它们不是一直存在。后台进程的名字为:

DBWR数据库写入程序

LGWR日志写入程序

CKPT检查点

SMON系统监控

PMON进程监控

ARCH归档

RECO恢复

LCKn封锁

Dnnn调度进程

Snnn服务器

每个后台进程与ORACLE数据库的不同部分交互。

后台进程的功能:

DBWR进程:该进程执行将缓冲区写入数据文件,是负责缓冲存储区管理的一个

ORACLE后台进程。当缓冲区中的一缓冲区被修改,它被标志为“弄脏”,DBWR的主要任务是将

“弄脏”的缓冲区写入磁盘,使缓冲区保持“干净”。由于缓冲存储区的缓冲区填入数据库或

被用户进程弄脏,未用的缓冲区的数目减少。当未用的缓冲区下降到很少,以致用户进程要从

磁盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将管理缓冲存储区,使用户进程总

可得到未用的缓冲区。

ORACLE采用LRU(LEASTRECENTLYUSED)算法(最近最少使用算法)保持内存中

的数据块是最近使用的,使I/O最小。在下列情况预示DBWR要将弄脏的缓冲区写入磁盘:

当一个服务器近程将一缓冲区移入“弄脏”表,该弄脏表达到临界长度时,该服务

进程将通知DBWR进行写。:亥临界长度是为参数DB-BLOCK-WRITE-BATCH的值的一半。

当一个服务器业程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT缓冲区时,没有查到未

用的缓冲区,它停止查找并通知DBWR进行写。

出现超时(每次3秒),DBWR将通知本身。

当出现检查点时,LG*R将通知DRWR

在前两种情况下,DBWR将弄脏表中的块写入盛盘,每次可写的块数由初始化参数

DB-BLOCK-WRITE-BATC1I所指定。如果弄脏表中没有该参数指定块数的缓冲区,DBWR从LLR表中

查找另外一个弄脏缓冲区。

如果DBWR在三秒内未活动,则出现超时。在这种情况下DBWR对LRU表查找指定数

目的缓冲区,将所找到任何弄脏缓冲区写入磁盘。每当出现超时,DBWR行找一个新的缓冲区组。

每次由DBWR查找的缓冲区的数目是为寝化参数DB-BLOCK-WRITE-BATCH的值的二倍。如果数据

库空运转,DBWR最终将全部缓冲区存储区写入磁盘。

在出现检杳点时,LGWR指定一修改缓冲区表必须写入到磁盆。DBWR将指定的缓冲

区写入磁盘。

在有些平台上,一个实例可有多个DBWR。在这样的实例中,一些块可写入一磁盘,

另一些块可写入其它磁盘。参数DB-WRITERS控制DBWR进程个数。

LGWR进程:该进程将日志缓冲区写入磁盘上的一个日志文件,它是负责管理日志

缓冲区的一个ORACLE后台进程。LGWR进程将自上次写入磁盘以来的全部日志项输出,LGWR输

出:

当用户进程提交一事务时写入一个提交记录。

每三秒将日忐缓冲区输出。

当日志缓冲区的1/3已满时将日志缓冲区输出。

当DBWR将修改缓冲区写入磁盘时则将日志缓冲区输出。

LGWR进程同步地写入到活动的镜象在线日志文件组。如果组中一个文件被删除或

不可用,LGWR可继续地写入该组的其它文件。

日志缓冲区是一个循环缓冲区。当LG*R将日志缓冲区的日志项写入日志文件后,

服务器进程可将新的日志项写入到该日志缓冲区。LGWR通常写得很快,可确保日志缓冲区总有

空间可写入新的日志项。

注意:有时候当需要更多的日志缓冲区时,LWGR在一个事务提交前就将日志项写出,而这

些H志项仅当在以后事务提交后才永久化。

SQL语言基础

Oracle的日常管理是通过SQL程序进行的,如进行内容杳询、复制、插入表等操作。熟练

地进行•SQL操作,可以显著提高工作效率

SQL语言的特点

SQL语言集数据查询(dataquery)、数据操纵(datamanipulation)、数据定义:data

definition)和数据控制[datacontrol)功能于一体,充分体现了关系数据语言的特点和优

点。其主要特点包括:

1.综合统~,

SQ【语言集数据定义语言DDL、数据操纵语言DHL、数据控制语言DCL的功能于一体,语言

风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立

数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据

库应用系统开发提供了良好的环境,例如用户在数据库投入运行后,还可根据需要随时地逐步

地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩充性。

2.高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路

径。而用SQL语言进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用

户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大

减轻了用户负担,而且有利于提高数据独立性。

3.面向集合的操作方式

SQL话言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更

新操作的对象也可以是元组的集合。

非关系数据模型采用的是面向记录的操作方式,任何一个操作其对象都是一条记录。例如

查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该请求的具体处理过程,艮」如何

用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。

4.以同一种语法结构提供两种使用方式

SQL语言既是自含式语言,又是嵌入式语言。

作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键

入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、PB)

程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上

是一致的。这种以统一的语法结构梃供两种不同的使用方式的作法,为用户提供了极大的灵活

性与方便性。

5.语言简洁,易学易用

基本的SQL语句

语句说明

SELEC检索数据库中的数据

T

INSER在数据库的表中分别输入新行、更改现有行,和删除不要的行。统称为教据操

T纵语言(DML),

UPDAT

E

DELET

E

MERGE

GREAT在表中设置、更改和删除数据结构。统称为数据定义语言(DDL)o

E

ALTER

DROP

RENAM

E

TRUNC

ATE

COMMI管理有DML语句执行的更改.对数据进行的更改可以被归类到逻辑事务处理

T中。

ROLLB

ACK

SAVEP

OINT

GRANT授予或取消对Oracle数据库和其中结构的访问权限。统称为数据控制语言

REVOK(DCL)。

E

编写基本的SQLSELECT语句

为了从数据库中提取数据,需要使用结构查询语言(SQL)SELECT语句。还需要对所显示

的列进行限制。

SQLSELECT语句的功能

SQLSELECT语句的功能

投影选择

表1

SELECT语句可以从数据库中检索信息。使用SELECT语句,可以执行以下任务(如图所示):

投影:如果要查询表中某些列的信息,可以使用SQL中的投影(Projcctiong)功能来选定

这些列。可以根据需要选择表中任意数量的列。

选择:如果要查询表中的某些行可以使用SQL中的选择功能来选定这些行。同时可以使用

各种标准对所显示的行进行限制。

联结:可以使用SQL中的联结功能,通过创建存储于不同表格中数据之间的链接,将这些

数据集合在一起。

基本SELECT语句

SELECT*{[DISTINCT]columnexpression[alias],...}

FROMtable;

•SELECT确定处理颜些列

•FROM确定处理第个表

结构最简单的SELECT沿句也必须包含一下内容:

一个SELECT子句,指定要显示的列

一个FROM子句,指定SELECT子句要求处理的列所在的表。

在此语法中:

SELECT一个列或多个列的列表

*选择所有列

DISTINCT禁止重复项

column|expression选择指定的列或表之式

alias给出所选列的不同标题

FROMtable指定列所在的表

选择所有行的所有列

SELECT*

FROMdepartments;

DtPARIMtNIJDDtPARlMEWlNABIEMANAGERJDLOCATIONID

10Administration2001703

20Mooring2miR(n

60劭加空1241500

GOIT103140J

80Sales149『2603

90Exscutve1001703

110Accounhrg2051700

190Coarsctirg1700

Brnws"getM

可以在SELECT关键字后面加上一个星号(*),这样就可以显示表中数据的所有列。

也可以在SELECT关键字之后列出所有列,从而显示表中的所有列。例如,下面SQL语句

和图片的示例一样,将显示departments表中的所有行和列:

SELECTdepartment_id,department_name,manager_id,location_id

FROMdepartments;

选择所有行的特定列

SELECTdepartmentid,locationid

FROMdepartments;

DtPARIMtNIIULOLA1IONID

101700

201800

50150D

GO1400

802600

901700

1101700

190170D

Biov/5selected

可以在SELECT语句中指定列名,用逗号分隔开,这样可以指定表显示某些列。图上的

示例只显示了departments表中的所有部门编号和地点编号。

存储结构管理

表空间的管理

表空间(tablespace)是Oracle数据库中数据的逻辑组织,他存储段的集合,一个表空间

在操作系统级映射到一个或多个数据文件上去。

管理表空间的原则

在对Oracle数据库中的表空间进行管理之前,要熟悉一下两个原则:

使用多个表空间;

为用户设定表空间配额(tablespacequota)o

)使用多个表空间。

使用多个表空间可以获得数据库操作的更大的灵活性,如果一个数据库包括了多个不同的

表空间,就可以获得一下好处:

把用户数据与数据字典数据分隔开,从而减少了在同一个数据文件的字典对象和模式对象

之间的竞争;

把一个应用程序中的数据与另一个应用程序中的数据分开,从而可避免如果一个表空间必

须被脱机多个应用程序都受到影响;

在不同的磁盘驱动器上存储不用表空间的数据文件,以减少I/O竞争;

为一个特定类型的数据库应用保留一个表空间,比如很快的更新动作、只读动作、或者临

时段的存储。这使得用户可以优化表空间的使用;

备份单独的表空间。

一些操作系统设置了可同时打开的文件的个数的限制,这样的限制会影响可以同时联机的

表空间的数量。为了避免超过操作系统的限制,要有效地计划表空间,只创建满足需求的足够

的表空间,并使用尽可能少的文件来创建这些表空间。如果需要增加一个表空间的大小,可添

加一个或两个较大的数据文件,或者创建设置为自动扩展的数据文件,而不是创建很多较小的

数据文件。

根据以上这些因素检查数据,并确定对于数据库设计需要多少表空间。

2.设定表空间配额

在授权给用户创建表、簇、实体视图、索引等对象的权限的时候,同时要加上一个对

承载这些对象的表空间的配额(如空间量或者限制)。

创建表空间

典型的数据库表空间有系统表空间(systemtablespace)、临时表空间(temptablespace)、

工具表空间(toolstablespace),用户表空间(userstablespace)数据及索引表空间、回滚

表空间等。

Oracle对用于通用目的(如一般的事务处理、数据仓库等)的数据库基本表空间的大小提

出了建议:

表空间名称建议大小

系统表空间400MB

用户表空间12OMB

临时表空间1OOMB

索引表空间70MB

工具表空间12MB

回滚表空间25OMB

DRSYS表空间250MB

创建表空间有两种方式:手工创建或者利用Oracle企业管理器创建。

1.手工创建

使用CREATETABLESPACE命令可创建表空间:

CREATETABLESPACEtablespace

[DATAFILEclause]

[MINIMUMEXTENTinteger[KM]]

[BLOCKSIZEinteger:K]]

[LOGGING|NOLOGGING]

[DEFAULTstorageclause]

[ONLINE|OFFLINE]

[PERMANENTITEMPORARY]

[extent_management_clause]

[segmentmanagementclause]

其中:

Tablespace:是要创建的表空间的名称

DATAFILE:指定组成表空间的•个或多个数据文件

MINIMUMEXTENT:确保表空间内每个占用区的大小是整数(integer)的倍数。使用K或M

以千字节或兆字节为单位指定该大小。

BLOCKSIZE:BLOCKSIZE指定表空间的非标准块大小。要指定该子句,必须具有

DBCACHESIZE,并至少设置一个DBnKCACHESIZE参数,在该子句中指定的整数

(integer)必须与一个DB_nK_CACHE_SIZE参数设置相对应。

LOGGING:指定在缺省晴况下,表空向内的所有表、索引和分区的所有更改都写入重做日

志文件。LOGGING为缺省设置。

NOLOGG1NG:指定在缺省情况下,表空间内的所有表、索引和分区的所有更改都不写入重

做F1志文件。NOLOGGING只影响某些DML和DDL命令,如直接加载。

DEFAULT:DEFAULT指定表空间内创建的所有对象的缺省存储参数。

OFFLINE:指定表空间从创建后就不可用。

PERMANENT:指定表空间可用于保留永久对象。

TEMPORARY:指定表空间仅用于保留临时对象,如:由ORDERBY子句引起的隐式排序

所使用的段。不能指定EXTENTMANAGEMENTLOCAL或BLOCKSIZE子句。

extent_managementclause:该子句指定如何管理表空间内的区。该子句在本课的后

续部分中讨论。

segment_management_clause:这只与永久的、且在本地管理的表空间相关。通过它

可指定Oracle是否应使用空闲列表或位图来跟踪表空间段中的已占用空间和空闲空间。

datafile_clause:==filename[SIZEinteger[K|M][REUSE]

[autoextendclause]

filename:是袤空间中的数据文件的名称。

SIZE:指定文件大小。使用K或M以千字节或兆字节为单位指定大小。

REUSE:允许Oracle服务器重新使用现有文件。

autoextend_clause:该子句后用或禁用数据文件的自动扩展。

NEXT:以字书为单位指定在需要更多区时自动分配的磁盘空间下一增量的大小。

MAXSIZE:指定数据文件可以自动扩展到的最大磁盘空间。

UNLIMITED:指定可分配给数据文件或Tempfile的磁盘空间是不受限制的。

2.利用企业管理器创建

从“OEM控制台”(OEMConsole):

1)导航到“数据库”(Databases)》“存储"(Storage)>“表空间”

(Tablespaces)。

2)单击鼠标右键,从弹出的菜单中选择“创建"(Create)。

3)在“常规”(General)和“存储"(Storage)选项卡中填写创建表空间所需的

信息。

4)单击“创建”(Create).

使用只读表空间

使一个表空间只读就防止了对这个表空间爱你相关的数据文件进行写操作。使表空间只读

的主要目的是免除对数据库中大量的静态部分进行备份和恢复麻烦。只读表空间还提供了一个

保护历史数据的手•段,使用户不能修改。把一个表空间变成只读后,不管一个用户是否具有更

新权限,都不能更新这个表空间上的任何表。

在一次性写入(WORM)设备上创建只读表空间:

ALTERTABLESPACE...READONLY

使用操作系统命令将表空间的数据文件移动到只读设备上。

ALTERTABLESPACE...RENAMEDATAFILE

使用OracleEnterpriseManager将表空间设为只读

从“OEM控制台”(OEMConsole):

导航到“数据库”(Databases))“存储”(Storage)>“表空间”

(Tablespaces)。

选择表空间。

在“General”(常规)选项卡的“Status"(状态)区域选择“ReadOnly”

(只读)复选框。

单击“应用”(Apply)o

查看表空间信息

以下数据字质量的动态性能视图提供了关于一个数据库的表空间的有用信息、。

视图说明

VSTABLESPACE从控制文件中得到的所有表空间的名称和数量

DBA_TABLESPACES所有(或者用户可访问的)表空间的描述

USER_TABLESPACES

DBA_TABLESPACE_GROUPS展示了所有的表空间组和属于它们的表空间

DBA_SEGMENTS所有的(或者用户可访问的)表空间内的段的信息

USER_SEGMENTS

DBA_EXTENTS所有的(或者用户可访问的)表空间内的数据区间的信

USER_EXTENTS息

DBA_FREE_SPACE所有的(或者用户可访问的)表空间内的空闲区间的信

USERFREESPACE息

V$DATAFILE关于所有数据文件的信息,包括相应的表空间序号

V$TEMPFILE关于所有临时文件的信息,包括相应的表空间序号

DBA_DATA_FILES显示所有属于表空间的数据文件

DBA_TEMP_FILES显示所有属于表空间的临时文件

V$TENO_EXTENT_Nb\P在所有本地管理的临时表空间内的所有区间信息

V$TEMP_EXTENT_POOL对于所有本地管理的临时表空间:每一个实例缓冲和使

用的临时空间的状态

V$TEMP_SPACE_HEADER显示每一个临时文件的使用/剩余空间

DBA_USERS所有用户的默认和临时表空间

DBA_TS_QUOTAS列举r所有用户的表空间配额

V$SORT_SEGMENT关于一个给定实例的每个排序段的信息,该视图只在表

空间是TEMPORARY类型时更新

V$TEMPSEG_USAGE用户使用的临时排序空间和临时的/永久的表空间

删除表空间

当不再需要表空间及其内容时,可以通过下面的DROPTABLESPACESQL命令从数据库

中删除表空间:

DROPTABLESPACEtablespace

[INCLUDINGCONTENTS[ANDDATAFILES][CASCADECONSTRAINTS]]

其中;

tablespace:指定要删除的表空间的名称

1NCLLD1NGCONTENTS:删除表空间内的所有段

ANDDATAFILES:删除关联的操作系统文件

CASCADECONSTRAINTS:如果要删除的表空间之外的表引用了该表空间内表的主键利唯一

键,则删除这种引用完整性约束

原则:

不使用INCLUDINGCONTENTS选项,将无法删除仍包含数据的表空间。当表空间

包含许多对象时,该选项可能会生成许多还原数据。

删除表空间后,其数据将不再包含在数据库内。

在删除表空间时,只删除关联数据库控制文件内的文件指针。操作系统文件仍然存

在,如果未使用ANDDATAFILES子句或数据文件是OMF,则必须使用适当的操作

系统命令明确删除这些文件。

即使将表空间切换到只读状态,仍可以删除该表空间以及其中的段。

删除表空间之前,建议您将表空间脱机,以确保没有事务处理访问该表空间内的任何段。

使用OracleEnterpriseManager删除表空间

从“OEM控制台”(OEMConsole):

导航到“数据库”(Databases)>“存储"(Storage)>“表空间”

(Tablespaces)。

选择表空间。

单击鼠标右键,从算出的菜单中选择“删除"(Remove)。

单击“是"(Yes)确认删除。

管理还原数据

自动还原管理:

Oracle服务器可以自动管理还原段的创建、分配和优化。

手动还原管理:

您可以手动管理还原段的创建、分配和优化。在0racle9i以前的版本中,这是唯一可用

的方法。

还原段

还原段

更新事务处理

还原段用卜在进程更改数据库中的数据时保存旧值(要还原的数据)。它按数据被修改之前

的原样存储数据的位置及数据本身。

还原段的标头包含一个事务处理表,该表中存储着有关使用这个还原段的当前事务处理的

信息。

二个连续的事务处理只使用一个还原段存储它的全部还原数据。

许多并发事务处理可以写入一个还原段。

还原段:用途

还原段:用途

事务处理恢复还原段读一致性

事务处理回退

当某事务处理修改表中某行时,被修改的列的旧映像(要还原的数据)将存储在还原段中。

如果将该事务处理回退,则Oracle服务器通过将还原段口的值写回到该行来恢复原始值。

事务处理恢复

如果例程在事务处理讦在进行时失败,那么Oracle服务器需要在数据库再次打开时还原

所有未提交的更改。这种回退操作是事务处理恢复的一部分。之所以有可能恢复事务处理,原

因在于对还原段所做的更改同样受重做日志文件的保护。

读一致性

在事务处理正在进行时,数据库中的其他用户不应看到这些事务处理所做的任何未提交更

改。此外,也不应从某条语句中看到该语句开始执行后所提交的任何更改。还原段中的旧值(要

还原的数据)也可用于为读者提供给定语句的一致映像。

读一致性

读一致性

SELECT*

表FROMtable

■新的映像

—I语句开始执行时的映像

Oracle服务器保证一条语句所看到的数据来自一致的时间,即使其它事务处理修改了该数

据。

当Oracle服务谓开始执行SELECT语句时,它确定当前系统更改号(SCN),并确保这个SCN

之前未提交的任何更改不会被这条语句处理。请考虑在进行多个更改的同时执行长时间运行的

杳询的情况。如果在这次杳询开始时某行有未提交的更改,Oracle服务器会构建该行的读一致

性映像,方法是从还原段检索这些更改的前像,并将更改应用于内存中该行的副本。

事务处理读一致性

始终为SQL语句提供读一致性。但是,您可以为只读事务处理请求读一致性,方法是在事

务处理开始时发出下列命令:

SQL>SETTRANSACTIONREADONLY;

或者,可以为执行DML的事务处理请求读一致性,方法是在事务处理开始发出下列命令:

SQL>SETTRANSACTIONISOLATIONLEVELSERIALIZABLE;

无论是以上哪种情况,Oracle服务器都提供从事务处理开始时就具有读一致性的数据。使

用SERIALIZABLE会对性能造成负面影响。

还原段的类型

SYSTEM还原段

创建数据库时,将在SYSTEM表空间中创建SYSTEM还原段。这个还原段只用于对

SYSTEM表空间中的对象所做的更改。SYSTEM还原段在手动模式和自动模式下的存在和工

作是一样的。

非SYSTEM还原段

具有多个表空间的数据库至少需要一个非SYSTEM还原段用于手动模式,或至少需要一个

UNDO表空间用干自动模式。

手动模式

在手动模式下,由数据库管理员创建的非SYSTEM还原段可用于对任何非SYSTEM表空间中

的对象所做的更改。非SYSTEM还原段有以下两种类型。

专用

因为专用还原段列在参数文件中,所以它们是通过例程联机的段。但是,通过发出ALTER

ROLLBACKSEGMENT命令,可以使它们显式联机。

公用

△用还原段形成了数据库中可用还原段的池。公用还原段通常与OracleRealApplication

Clusters一起使用来创建本原段池,这个池可以由任何“实时应用集群"(RealApplication

Clusters)例程使用。

延迟还原段

当表空间脱机时,可能会创建延迟还原段.它们用于在表空间恢复联机时回退事务处理。

当不再需要这些延迟还原段时,它们将自动被删除。

因为延迟还原段是由Oracle服务滞来维护的,所以元需进行维护。

自动还原管理

自动还原管理:概念

还原段是按照卜面的命名约定创建的:

_SYSSMUn$

例如:

_SYSSMU1$

SYSSMU2$

自动还原管理:配置

自动还原管理:

配置

•配置初始化文件中的两个参数:

-UNDO_MANAGEMENT

-UNDO_TABLESPACE

•至少创建一个UNDO表空间。

undoldbOl.dbf

初始化文件UNDO表空间

如果数据库中只有一个UNDO表空间,并且将UNDO_MANAGEMENT设置为AUTO,则

UNDO_TABLESPACE参数是可选的;Oracle服务器将自动选择UNDO表空间。

匕动还原管理:初始化参数

自动还原管理:

初始化参数

•UNDO_MANAGEMENT:指定系统应该使用AUTO模式

还是MANUAL模式

•UNDO_TABLESPACE:指定要使用的特定UNDO表空间

UNDO_MANAGEMENT=AUTO

UNDO_TABLESPACE=UNDOTBS

UNDO_MANAGEMENT参数:

UND()_MANAGEMENT参数决定数据库的还原模式。该参数可以设置为AUTO和MANUAL这两个

值中的任一个值,并且必须在初始化参数文件中设置。UNDOMANAGEMENT不能在数据库启动后

进行动态更改。AUTO模式可以将数据库设置为自动还原管理,并需要UNDO表空间。在MANUAL

模式(缺省值)下,可以根据需要在数据库中创建和管理还原段,这与以前的Oracle服务器

版本中的操作相同。

UNDO_TABLESPACE参数:

指定要使用的UNDO表空间。此参数可以在初始化文件中设置,或使用ALTERSYSTEM命令

来动态改变。

SQL>ALTERSYSTEMSETundo_tablespace=UNDOTBS;

自动还原管理:UNDO表空间

在创建数据库时一起创建UNDO表空间,方法是,在

CREATEDATABASE命令中添加一个子句

CREATEDATABASEdbOl

•••

UNDOTABLESPACEundol

DATAFILE'/uOl/oradata/undoldbOl.dbf1SIZE20M

AUTOEXTENDON

或者稍后使用CREATEUNDOTABLESPACE命令创建它

CREATEUNDOTABLESPACEundol

DATAFILE'/uOl/oradata/undoldbOl.dbf*

SIZE20M;

自动还原管理需要一个UNDO表空间。数据库中可能有多个UNDO表空间,但只能有一个

UNDO表空间处于活动状态。

可以在创建数据库时一起创建UNDO表空间,方法是,在CREATEDATABASE命令中添加一

个子句。

在创建数据库期间,如果将UNDO_MANAGEMENT参数设置为AUTO并在CREATE

DATABASE语句中省略了UNDO表.间子句,那么Oracle服务器将创建一个名为

SYS_LNDOTBS的UNDO表空间。数据文件表空间SYS_UNDOTS的缺省数据文件名称是

'dbul〈oracle_sid>.dbf'。该文件位于$ORACLE_HOME/dbs中。文件的大小取决于操作系统。

将AUTOEXTEND设置为ON。

创建完数据库后,您可以使用CREATEUNDOTABLESPACE命令创建UNDO表空间。

使用OracleEnterpriseManager创建UNDO表空间

从“OEM控制台”(OEMConsole):

导航到“数据库”(Databases)>“存储"(Storage))“表空间”

(Tablespaces)。

单击鼠标右键,从弹出的菜单中选择“创建"(Create)。

在“常规”(General)选项卡中,输入文件名和文件大小。

在“类型”(Type)区域中,选择“还原”(Undo).

单击“创建”(Create))>

白动还原管理:删除UNDO表空间

•使用DROPTABLESPACE命令,可以删除UNDO表空间。

DROPTABLESPACEUNDOTBS2;

•某个UNDO表空间只有在当前未由任何例程使用的时候

才能被删除。

•要删除活动的UNDO表空间,请执行以下操作:

-切换到新的UNDO表空间

-完成当前所有事务处理后,删除该表空间

删除UNDO表空间时,该表空间不能再被例程使用,表空间内的所有事务处理必须均已完

成。

如果表空间UNDOTBS是数据库当前活动的UNDO表空间,并且将被删除,那么在删除该表

空间前必须设置一个新的UNDO表空间。如果某个UNDO表空间已不再存在,先创建另一个UNDO

表空间。然后,使用ALTERSYSTEM命令更改当前的UNDO表空间。

SQL>ALTERSYSTEMSETundo_tablespace=UNDOTBS2;

可以在表空间UNDOTBS内的所有事务处理都已完成后删除它。要确定是否存在任何一个活

动的事务处理,请使用以下查询:

SQL>SELECTa.name,b.status

2FROMv$rollnamea,vSrolIstatb

3WHEREa.nameIN(SELECTsegment_name

4FROMdbasegments

5WHEREtablespace_name='UNDOTBS')

6ANDa.usn=b.usn;

NAMESTATUS

_SYSSMU4$PENDINGOFFL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论