搜档网
当前位置:搜档网 › Oracle数据库的事务管理与故障恢复技术分析

Oracle数据库的事务管理与故障恢复技术分析

Oracle数据库的事务管理与故障恢复技术分析
Oracle数据库的事务管理与故障恢复技术分析

Oracle数据库的事务管理与故障恢复技术分析

Oracle事务管理技术与故障恢复技术的分析 Oracle是一个最早商品化的关系型数据库管理系统,也是目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、 Internet、电子商务网站等领域作为应用数据的后台处理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。特别是在Oracle 8i中,支持面向对象的功能,如支持类、方法、属性等,使得Oracle 产品成为一种对象/关系型数据库管理系统。目前最新版本是Oracle 11g。

本文将立足于对Oracle数据库管理系统的细致解读,对Oracle的事务管理技术以及故障恢复技术进行分析讲述。

1 Oracle的事务管理技术

目前的数据库系统中大多数都是开放的、允许多个用户共享的,并且存在多用户同时并发地访问、存取数据库中的相同数据的情况,如果DBMS不能对这些并发执行的操作进行准确处理和控制,就有可能造成不正确的结果,进而破坏数据的完整性和一致性。同时,由于网络、机器故障以及应用程序的执行的错误使可能正在执行的数据存取操作发生意料之外的中断,也有可能使数据库中的数据受到破坏。因此,设计一个应用系统必须能够对并发执行的操作进行很好地控制,以及当出现执行中断时,系统能够使数据库恢复到一个正确的状态。事务管理技术就是保证共享数据的并发访问一致性和失效恢复正确性的关键技术。

1.1 Oracle中的事务介绍

事务是DBMS的执行单位,它是由有限的数据库操作序列组成,但不是任意数据库操作序列都能成为事务。一般要求事务具有以下4个特性,也就是ACID特性,ACID特性描述了事务处理的规则。下面是这4个特性:

(1)执行的原子性。在Oracle系统中,事务处理具有原子性。换句话说,或者提交所有的工作,或者什么工作都不提交;(2)功能上的保持一致性。这是非常重要的事务处理特性,任何事务处理都会将数据库从一种逻

辑上的一致状态转变为另一种逻辑上的一致状态。这就是说,在事务处理开始之前,数据库中的所有数据都会满足已经施加给数据库的业务规则(约束)。与此相似,当提交了事务处理之后,数据库仍然会满足施加的所有业务规则;(3)彼此的隔离性。隔离性是数据库允许对其中数据进行并发修改和读取的能力。隔离性不仅可用于防止其他事务处理受到当前事务处理的干扰,而且也可以防止当前事务处理受到其他事务处理的干扰;(4)作用的持久性。持久性是数据库提

供的最重要的特性之一。它可以确保一旦事务处理提交之后,它的改变就会永久生效。它们不会由于系统故障或错误而消失。数据库通过在线重做日志(也称为事务处理日志)可以确保当系统发生故障或崩溃时,能够提供复原数据所需的全部信息。

1.2 Oracle 的事务管理

1.2.1 Oracle的事务处理概述

Oracle 中的一个重要概念就是没有“开始事务处理”的语句。用户不能显式地开一个事务处理。事务处理会隐式地开始与第一条修改数据的语句,或者一些要求事务处理的场合。使用commit或rollback语句将会显式地终止事务处理。事务处理具有原子性,即要么所有的语句都成功执行,要么所有语句都不能成功执行。

Oracle提供了许多事务处理控制语句,用户可以用这些语句来控制这种行为。主要的事务处理控制语句包括:commit、rollback、savepoint、

rollback to savepoint、set transaction以及set constraints语句等。

下面通过这几条语句的阐述来了解Oracle的事务管理技术。

commit处理:在事务处理的最简单的形式中,用户只需使用SQL的

commit命令即可。提交会结束用户的事务处理,并且使用户已经执行的任何改变永久生效。

rollback 处理:回滚可以允许用户撤销其工作。当应用中出现错误,或运行程序的终端用户决定不保存其所做的改变时,可能需要进行回滚。如果不能够回滚错误或用户命令,就无法支持数据库中的事务处理。在回滚处理最简单的形式中,只需使用rollback。与提交不同,回滚事务处理的时间是所改变数据量的函数。这是可以预料的,因为回滚必须在物理上撤销用户已经完成的工作。

savepoint:savepoint可以允许用户在事务处理中建立标记点。用户可

以在单独的事务处理中拥有多个保存点。保存点是很有用的事务处理特性,它们可以让用户将单独的大规模事务处理分割成一系列较小的部分。

set transaction:set transaction语句可以使用户设置事务处理的各种属性,必须是事务处理中第一个使用的语句。set transaction语句的作用域只是当前的事务处理。只要用户进行了提交或回滚,set transaction语句的结果才会完整。

set constraint:在Oracle中,约束可以在DML语句执行之后立即生效,也可以延迟到事务处理提交时才生效。set constraint语句可以允许用户在事务处理中设置延迟约束的强制模式。

1.2.2 Oracle事务的核心技术——并发控制技术概述

数据库是一个共享资源,可为多个应用程序所共享。这些程序可串行运行,但在许多情况下,由于应用程序涉及的数据量可能很大,常常会涉及输入/输出的交换。为了有效地利用数据库资源,可能多个程序或一个程序的多个进程并行地运行,这就是数据库的并行操作。在多用户数据库环境中,多个用户程序可并行地存取数据库,如果不对并发操作进行控制,会存取不正确的数据,或破坏数据库数据的一致性。

为防止出现这些数据的不一致性,必须使并发的事务串行化,使各个事务都按某种次序来执行,避免相互干扰,这就是并发控制所要解决的问题。在Oracle 数据库中所提供的并发控制机制是利用封锁机制来实现的。在多用户数据库中一般采用某些数据封锁来解决并发操作中的数据一致性和完整性问题。

封锁是防止存取同一资源的用户之间破坏性的干扰的机制,干扰是指不正确地修改数据或不正确地更改数据结构。在多用户数据库中使用两种封锁:排它(专用)封锁和共享封锁。排它封锁禁止相关资源的共享,如果事务以排它方式封锁一资源,仅仅该事务可更改该资源,直至释放排它封锁。共享封锁允许相关资源可以共享,几个用户可同时读取同一数据,几个事务可在同一资源上获取共享封锁。共享封锁比排它封锁具有更高的数据并行性。 2 Oracle的故障恢复技术

使用数据库的过程中难免出现人为故障(误操作及恶意操作)及计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障等)等,这都会影响到数据库系统的操作及数据库中数据的正确性和完整性,甚至破坏

数据库,使数据库中部分或全部数据丢失。这就会需要对数据库进行重构,也就是数据库恢复。数据恢复是指把意外改变或意外删除的数据恢复为原貌,恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。ORACLE数据库使用几种结构对可能故障来保护数据:数据库后备、日志、回滚段、控制文件、系统修改号(SCN)、检查点。

下面着重介绍Oracle的日志技术以及利用日志文件实现数据库故障恢复,简要介绍Oracle的检查点技术。

2.1 Oracle的日志技术

2.1.1 事务日志概述

数据库的事务日志是Oracle保护机制中至关重要的组成部分,其任务是随时记录数据库中正在进行的数据变化,一旦有突发故障,所有已被提交的工作均可完全恢复。数据库的恢复操作中重要的1个环节就是依赖事务日志中信息,重建或重做丢失事务中已被提交的各种改变。

事务是数据库执行数据处理的基本单位。在执行一个事务时,如果我们把该事务处理从开始到结束所涉及的操作信息(包括事务涉及的数据库对象以及在这个

对象上执行的操作类别、操作前后的数据映像、事务的状态等信息)作为一个特殊的数据项以二进制的方式记录下来,这就是事务日志,事务日志是以事务为单位进行记录的,每一个日志项(Logitem)详细记录了事务处理的足够信息,以确保系统在必要的时候能够重演(Redo)该事务。如果说数据库中的Data是我们的直接数据或“一次数据”,那么数据库中的日志则是我们的间接数据或“二次数据”,它记录着数据的变更信息。从另外一个角度看,数据反映的是事务处理操作的结果,而日志记录的则是事务处理操作的过程,有了这样的历史变更过程,在一定条件下我们就可以依次“重演”这个过程(即重新执行事务处理的操作),以达到恢复数据的目的。可以说事务日志是记录数据库系统数据操作的“流水账”,目前绝大多数数据库系统都支持对事务日志的记录。

Oracle的日志文件有两类:一类是联机日志文件,即Oracle用于管理数据库的事务日志文件;另一类称为归档日志,是不活动联机文件的备份,这种日志文件主要用于数据库的恢复。

日志中记录的信息包括:数据库的逻辑更改、用户的误操作、事后审计、数据库的更改历史、更改类型(INSERT、UPDATE、DELETE、DDL等)、更改对应的SCN 号、以及执行这些操作的用户信息等。

2.1.2 基于日志的数据库恢复

无论何种原因故障导致Oracle数据库不能正常启动(即不能进入Open状态),此时即需要执行数据库恢复(Recovery)。典型的数据库恢复过程需要如下3个阶段:(1)Restore:选择某个历史备份作为恢复的起点,即首先将数据恢复至备份时刻的状态;(2)Roll Forward:利用归档日志和联机日志依次重做自备份时刻以来的事务;(3)Roll Back:在故障时刻前附近的一些事务,有些还未来得及提交(Commit),但由于系统内部的Checkpoint事件的触发导致已经写入联机日志,这部分事务需要利用数据映像(Before Image)进行必要的回滚。如果这3个阶段的操作都能够顺利进行,则可以将数据库毫无损失地恢复到损坏前一时刻的状态,即所谓的完全数据库恢复 (Complete Recovery),如果这个恢复过程在第二、三阶段由于某种原因中途结束,则数据库只能恢复到过去的某个时问点,即不完全恢复(Incomplete Recovery)。下图给出了Oracle数据库恢复的典型示例。

假设系统在T7时刻出现故障导致Oracle数据库停止运行,数据库分别在T1、T3、T6有3次历史备份,由图示可知,归档日志中包含了T2至T5时间段的事务日志,联机重做日志中包含了T4至T7时间段的事务日志。下面说明恢复过程:

(1)选择T3时刻的备份作为恢复的起点;

(2)利用归档日志重做T3至T4(或T5)时间段的事务;

(3)利用联机重做日志重做T4(或T5)至T7时间段的事务,将数据库恢复到故障时刻,实现Complete Recovery。

日志中记录的事务处理信息是与当时的数据库状态相关联的,离开了特定的数据状态,数据操作也就失去了意义。因此事务日志的重演是有前提的:一

是数据库首先必须处于某一时刻点的完整状态(通常由数据库备份来实现)。只有处于这个状态,在这一时间点之后的事务才有重新运行的基础;二是重新运行的事务处理必须严格按照原来的时间顺序进行,只有这样,才能实现逐步推演,因为实际的数据库操作其后一步操作总是依赖于前一步操作的结果。正因为此,数据库的事务日志必须连续地保存,如果某个时间段的事务日志损坏或丢失,则此时间段之后的日志也就失去了存在的意义。

2.1.3 Oracle的检查点技术概述

检查点:是一个数据库控制文件中的一个数据结构,当出现一个检查点时,Oracle 把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件利用检查点机制,可以保证Oracle恢复操作能从一个正确的点开始读取日志文件。检查点分为三类:

1)局部检查点:单个实例执行数据库所有数据文件的一个检查点操作,属于此实例的全部脏缓存区写入数据文件。触发命令:svmrgrl>alter system checkpoint local;这条命令显示的触发一个局部检查点。

2)全局检查点:所有实例(对应并行数据服务器)执行数据库所有所有数据文件的一个检查点操作,属于此实例的全部脏缓存区写入数据文件。触发命令:svrmgrl>alter system checkpoint global;这条命令显示的触发一个全局检查点。

3)文件检查点:所有实例需要执行数据文件集的一个检查点操作,如使用热备份命令alter tablespace USERS begin backup,或表空间脱机命令alter tablespace USERS offline,将执行属于USERS表空间的所有数据文件的一个检查点操作。

检查点处理步骤:

(1)获取实例状态队列:实例状态队列是在实例状态转变时获得,ORACLE获得此队列以保证检查点执行期间,数据库处于打开状态;

(2)获取当前检查点信息:获取检查点记录信息的结构,此结构包括当前检查点时间、活动线程、进行检查点处理的当前线程、日志文件中恢复截止点的地址信息;

(3)缓存区标识:标识所有脏缓存区,当检查点找到一个脏缓存区就将其标识为需进行刷新,标识的脏缓存区由系统进程DBWR(数据库写进程)进行写操作,将脏缓存区的内容写入数据文件;

(4)脏缓存区刷新:DBWR进程将所有脏缓存区写入磁盘后,设置一标志,

标识已完成脏缓存区至磁盘的写入操作。系统进程LGWR(日志写进程)与CKPT(校验点)进程将继续进行检查,直至DBWR进程结束为止;

(5)更新控制文件与数据文件。

2.3 Oracle中可恢复的故障类型及恢复方法

在使用每一个数据库系统时,系统故障的可能性总是存在,Oracle数据库系统也不例外。如果发生系统故障,应尽快恢复数据库,使对用户不利的影响最小。

2.3.1 Oracle数据库故障

在oracle对象关系数据库环境中可能发生各种不同类型的故障。这些故障包括语句故障、用户进程故障、用户错误故障、例程故障、介质故障。对于不同类型的故障,恢复方法也不同。

(1)语句故障

当 Oracle程序中某一语句执行时发生了逻辑故障,这时语句故障也相应发生了。在下列情况下如果发生故障,即可认为发生了语句故障。一是应用程序执行过程中发生了逻辑错误;二是用户试图将可能违反完整性约束条件的脏数据输入到表中;三是用户试图进行一些末被授权的操作,例如只被授予SELECT权利的用户试图进行将数据插入表的操作;四是用户试图创建新表,但超过了用户所应分配给的限额;五是用户试图对表进行插入或者修改操作,在表空间中已没有足够的空闲空间,而要执行这些操作又需要预先分配足够的空闲空间

(2)用户进程故障

导致用户进程产生故障原因很多。最常见的原因是:一是用户在会话过程中非

正常断开连接。例如,用户在客户服务器环境中与数据库连接时,用户使用SQL*Hus中的【Ctrl】+【Break】非正常断开连接;二是用户会话过程非正常

终止,当用户在客户服务器环境中与数据库连接时用户又重新启动了该用户进程就可能造成这种情况;三是用户程序在终止会话过程时产生地址异常,当应用程序不能正确处理出现的异常情况时经常会产生地址异常。

(3)用户错误故障

在下列情况下,经常会发生用户错误故障:一是当用户随意删除或者截断一个表;二是用户删除一个表中必需的所有行;三是用户已提交了数据,但是发现所提交的数据中有错误。

(4)例程故障

很多原因均可能导致例程故障的产生。一是因断电造成服务器不可用从而导致例程故障。二是因硬件问题比如CPU故障或者内存毁坏,或者因为操作系统崩溃而导致的例程故障。三是因Oracle服务器的某一个后台进程,主要指DBWR、LGWR、PMON、SMON、CKPT这几个进程中的某一个发生了故障,这时也会发生例程故障。

(5)介质故障

介质故障与物理介质有关的问题。这些问题经常发生对数据文件进行读写的时候。而这些读写对数据库操作而言又是必需的。介质故障是所有oracle所发生的故障中性质最严重的。在如下几种情况下会发生介质故障。一,存储某一数据库文件的磁盘驱动器的磁头划伤;二,在对正常数据库操作所需的文件进行读写时遇到的物理介质问题;三,文件被删除。

2.3.2 Oracle数据库恢复条件分析

(1)恢复的目标:概括而言,恢复的目标就是把数据库的平均恢复时间、数据损失减到最小;增加数据库的平均无故障工作时间。

(2)定制恢复策略需要考量的因素:由于恢复过程并不是独立存在的,所以定制恢复策略之前要考量一些相关因素。

(3)恢复的前提条件:Oracle数据库恢复的前提条件就是:事先已成功做了数据库备份。数据库运行模式,分为两类:非归档模式指的是数据库实例在运行中对日志文件采取随时进行覆盖写而不用备份的方法;归档模式指的是数据库实例在运行中对日志文件进行覆盖写前先由ARCH进程读出并写到归档日志文件中,当此过程完成后才能对日志文件进行覆盖写。

2.3.3 Oracle数据库恢复

对应上述不同的数据库故障,下面分析各自的恢复方法:

(1)语句故障的恢复方案

当应用程序发生逻辑错误时,应该修改应用程序以使逻辑流程得以正确执行。因为这类故障主要与具体的应用程序环境有关,因此这部分工作应该由应用程序设计人员来执行而不是由DBA来完成。同样,如果用户将脏数据插入表中,那么应修改SQL语句并重新发布,这部分工作应由应用程序设计人员来执行而不由DBA完成。而在其它情况下,DBA必须参与到故障恢复工作中来。为了使用户完成末被授权的操作,DBA不得不提供给这些用户所需的授权。为了让用户

完成创建新表的工作,DBA不得不发布alter user命令以改变限额限制。为了让用户完成插入或者修改操作,DBA不得不给表空间增加文件空间。当然,从技术上讲DBA应该保证这种情况不会发生。但是用户在进行插入或者修改操作时遇到空闲空间不足的情况应该会发生,因此DBA不得不增加文件空间,DBA也可以通过对数据文件使用RE-SIZE和 AUTOEXTEND 的形式完成该功能。

(2)用户进程故障的恢复方案

DBA基本上不需要采取任何措施去处理进程错误。虽然oracle服务器或者其它用户进程将对系统或者其它用户基本上不产生任何影响,但是用户进程不能连续工作。这种非正常的用户进程必须予以终止,PMON后台进程(PMON后台进程是指过程监视器,具有回退用户当前事务处理,释放当前保留的所有表锁或行锁,释放用户当前保留的其它资源的功能) 完全能够处理非正常用户进程终止后的清理工作。PMON进程可以检测到非正常终止的服务器进程,然后PMON进程回滚非正常终止进程的事务并且释放已获得的任何资源和封锁。

(3)用户错误故障的恢复方案

用户错误故障恢复通常需要DBA的参与。对于任何数据库和应用程序环境而言,为了尽量避免用户错误故障,一个最为关键的问题是必须保证对用户进行有效的培训,使他们知道数据库的可用性和完整性的应用等问题。其次,当发生用户错误故障时,DBA应该掌握因用户错误故障产生数据丢失的应用程序和事务操作类

型,以及知道如何根据这些操作制定恢复措施,例如如何利用有效备份进行用户错误故障的恢复。

(4)例程故障的恢复方案

例程恢复是将数据库的事务恢复到发生例程故障前一致的状态。下面具体介绍例程恢复的步骤:

第一步,Oracle服务器通过发现非同步文件的方式来决定数据库是否需要恢复。

第二步,前滚过程。DBWR进程(DBWR进程指数据库写入进程负责将数据库缓冲区高速缓存中的数据写入数据文件)将提交和末提交的数据全部写入数据文件。而前滚过程负责将记录在日志文件中的所有修改写入到数据块中。

第三步,完成前滚过程后,所有提交的数据已驻留在数据文件中,但是末提交的数据仍可能存在。

第四步,回滚过程。为了从数据文件移去末提交的数据,在前滚过程中或者在发生故障前将回滚段装入。当Oracle服务器或者用户提出请求时,这些数据块被回滚。

第五步,当前滚过程和回滚过程完成后,只有提交的数据驻留在磁盘中。第六步,到此为止,所有数据文件都已经同步了,这例程故障也就得到了恢复。

(5)介质故障的恢复方案

介质故障的恢复经常需要DBA的介入。已测试过有效的备份方案对于介质故障恢复是至关重要的。DBA能够多大程度上减少因介质故障造成的故障时问和数据丢失,取决于可用的备份方案。因此,介质故障恢复方案取决于下列因素:一,所选择的备份方案和受影响的文件;二,是否使用了归档模式,如果使用了归档模式,可以使用归档的重做日志文件中的内容将数据库中的数据恢复为最近一次备份以来已提交的数据。

在实际应用中,排除故障的方法随Oracle数据库运行的方式、故障的类型、数据库后备策略的不同而不同。在恢复介质故障时,通常需要使用各类物理后备文件,因此,为了减少因数据库系统故障带来的损失,Oracle数据库系统管理员必须配置好数据库后备策略,管理好物理后备文件,以供恢复数据库介质故障时使用。

Oracle数据库系统紧急故障处理方法

Oracle数据库系统紧急故障处理方法 Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。 损坏单个控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。 4. 用下面的命令重新启动数据库: svrmgrl>startup; 5. 用适当的方法进行数据库全备份。 损坏所有的控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的rman脚本来恢复最近的控制文件。 3. 用下面的命令来创建产生数据库控制文件的脚本:

svrmgrl>startup mount; svrmgrl>alter database backup controlfile to trace noresetlogs; 4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 注意: Trace文件的具体路径可以在执行完第3)步操作后查看 $ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。 5. 用下面命令重新创建控制文件: svrmgrl>shutdown abort; svrmgrl>startup nomount; svrmgrl>@createcontrol.sql; 6. 用适当的方法进行数据库全备份。 重做日志文件损坏: 数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。 确定损坏的重做日志的位置及其状态: 1. 如果数据库处于可用状态: select * from v$logfile; svrmgrl>select * from v$log; 2. 如果数据库处于已经异常终止: svrmlgr>startup mount; svrmgrl>select * from v$logfile;

Oracle数据库startup和shutdown方式

Oracle数据库startup和shutdown方式 昨天晚上,回去好好整理了下关于"Oracle数据库提供了几种不同数据库启动和关闭方 式",然后,自己就回去就写了个示例. 其中,就出现了1个问题: ORA-12528: TNS:listener: all appropriate instances are blocking new connections 于是到网上就大量的查阅资料,哈哈,好不错,解决方法找到了.其中红色的就是主要解决方法.下面就把我整理的东西给共享下. 一:注意事项 要启动和关闭数据库,必须要以具有Oracle 管理员权限用户登陆,通常也就是以具有SYSDBA 权限用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接同义词)。Oracle数据库新版本将逐步淘汰INTERNAL这个内部用户,所以我们最还是设置DBA用户具有SYSDBA权限。 二:启动一个数据库需要三个步骤 1、创建一个Oracle实例(非安装阶段) 2、由实例安装数据库(安装阶段) 3、打开数据库(打开阶段) 三:Startup(启动数据库命令) 1、STARTUP NOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例配置,包括内存结构大小和启动后台进程数量和类型等。实例名根据Oracle_SID设置,不一定要与打开数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小列表,如下所示: SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 35431692 bytes Fixed Size 70924 bytes Variable Size 18505728 bytes Database Buffers 16777216 bytesu Redo Buffers 77824 bytes 2、STARTUP MOUNT 该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"提示。 3、STARTUP

基于Oracle的小型数据库应用系统设计实现

实验三设计开发小型网络数据库应用系统 一、实验目的 1、(可选)在实验一、二构建的环境下,选择并安装数据库设计CASE工具、 开发文档程序版本管理工具、可视化开发工具,配置其访问协议,用户 权限。 2、在上述环境下,自拟题目完成一个小型网络数据库应用系统的需求分析、 结构设计、编码实现,及调试运行。 二、实验原理、内容及步骤 1、自拟一个小型网络数据库应用系统的题目,完成该系统的设计与开发 2、完成系统设计说明书,包含“系统需求说明、系统E-R逻辑关系、系统物 理结构、系统功能设计。 3、依据上述设计文档,开发实现相应数据库应用系统,要求所开发应用软 件支持多文档界面,具备基本的数据增加、修改、删除、浏览、查询功 能。 三、实验过程及结果 3.1、设计题目 人事资源管理系统 3.2、需求分析 此次人事资源管理系统包括:系统配置信息管理、人脉信息管理、和人脉查询管理,其详细功能描述如下。 1、系统配置信息管理:包括地区信息、认识途径信息、职位信息和行业 信息,这些信息确定你的人脉资源的的简单而又关键的信息,而这些信息比较固定,在系统运行之前就能确定,可以把它作为系统配置信息来处理。 2、人脉信息管理:它提供了人脉信息的增加、删除、修改的功能人脉信 息包括:姓名、所在地、职位、行业、所在单位、认识途径、联系方式和爱好等。 3、人脉查询管理:是指对人脉信息的详细查询的功能,提供了多种查询 方式,包括所在地、认识途径、行业信息、职位信息的查询方式,翻遍用户

自己的人脉资源。 3.3、概要设计 3.3.1、系统功能模块设计: 图3-3-1 系统功能模块图 3.3.2、数据库表设计: 以下是所设计的5张表: 图3-3-2-1地区信息表 字段说明:地区ID,地区名称,例如右边的图。 图3-3-2-1认识途径信息表 字段说明:认识途径ID,认识途径名称,例如右边的图。 图3-3-2-1职位信息表 字段说明:职业ID,职业名称,例如右边的图。

Oracle数据库的启动与关闭

以下资料来自Oracle数据库精讲与疑难解析,仅供学习 一、Oracle数据库的启动 Oracle数据库的启动要经历3个阶段。 阶段一:启动实例 (Start An Instance)--nomount 阶段二:装载数据库 (Mount The Database)--mount 阶段三:打开数据库 (Open The Database)--open 1.启动实例 ①读取参数文件(Initialization Parameter File, PFILE 或者 Server Parameter Files, SPFILE) ②Oracle根据参数文件中的参数,分配系统全局区(System Global Area, SGA) ③启动后台进程(DBWR: 数据库写入进程,LGWR:日志写入进程,CKPT:检查点进程,SMON: 系统监控进程,PMON:进程监控进程,ARCH归档进程等)。 这些内存和后台进程组合起来组成实例(Oracle Instance)。 参数文件(PFILE或者SPFILE)还指定了控制文件(Control File)的位置。 2.装载数据库 打开控制文件(Control File),从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log File)的名字和位置。这时候,Oracle已经把实例和数据库关联起来。对于普通用户,数据库 还是不可访问。 3.打开数据库 Oracle打开数据文件 (Data Files) 和联机日志文件 (Redo Log File) 。这时候,数据库可以使用。 普通可以登录数据库,对数据库进行操作。 4.分步启动Oracle STARTUP NOMOUNT; ALTER DATABASE MOUNT; ALTER DATABASE OPEN; 5.直接启动Oracle STARTUP (相当于上面三个过程依次进行) 6.使用特定初始化参数文件 (Initialization Parameter File, FILE) 启动数据库 STARTUP PFILE='C: \oracle\product\10.2.0\db_1\dbs\PFILEORCL.ORA'; 7.把数据库启动到限制模式(RESTRICT) 在限制模式下,只有CREATE SESSION 和RESTRICTED SESSION权限的用户可以访问数据库。 ①如果数据库是关闭的 STARTUP RESTRICT; ②如果数据库是开启的 ALTER SYSTEM enable restricted session; 8.以只读模式(Read Only)打开数据库 ①如果数据库是关闭的 STARTUP open read only; ②如果数据库是开启的 ALTER DATABASE OPEN read only; 在直读模式下,数据文件和日志文件都禁止写操作。整个数据库是只读的。 但是允许数据库恢复(Database Recovery)及其他不会产生回滚的操作。 9.把数据库启动到回复模式 (RECOVER) STARTUP OPEN RECOVER; 10.重启数据库(RESET) STARTUP FORCE

Oracle数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 1.默认情况OEM的URL地址是https://sd04:1158/em(其中sd04为机器名) 2.Oracle9i发布于2001,i代表Internet,11G发布于2007,g代表grid(网格) 3.在oracle内存结构中,保存正在执行或可能执行的代码的区是代码区 4.在oracle进程结构中,用于实现进程监控功能的进程是PMON 1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2.一个表空间物理上对应一个或多数据文件 3.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分成为数据段、索引段、回滚段、LOB段和临时段。 1.在设计表时,对于邮政编码最适合的数据类型是CHAR 2.在alter table语句中,如果要删除列,可以通过指定DROP COLUMN关键字来实现。 3.如果需要在表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个update语句来修改goods表中的数据,并且把每一行的t-id值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=’15’ 5.使用DESC命令可以显示表的结构信息 6.两个表的主关键字和外关键字的数据应该对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7.UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 1.在select语句中选择满足条件的记录使用where关键字,分组之后进行选择使用having 关键字 2.用来返回特定字段中所有值得总和的聚合函数是SUM 3.编写查询语句时,使用%通配符可以匹配多个字符。 18.集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算 19.如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字 20.删除视图的PL\SQL语句是DROP VIEW [用户方案.]视图名 21.在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引 22.聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键 23.在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID 24.如果表中某列的基数比较低,则应该在该列上创建反向索引 25.如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 26. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE 类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE 类型的变量用来一次存储从数据表中检索的一行数据。 27. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 28. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。

北邮数据库原理与应用阶段作业

一、单项选择题(共10道小题,共100.0分) 1. 数据库事务的隔离性通过_______实现。 2. 1.DBMS的事务管理子系统 2.应用程序员 3.DBMS的并发控制机制 4.DBMS的恢复子系统 知识点:事务的概念 学生答案:[C;] 标准答 案: C; 得分:[10]试题分 值: 10.0 提示: 3. 数据库的一致性状态由_______来负责。 4. 1.DBMS的事务管理子系统 2.应用程序员 3.DBMS的并发控制机制 4.DBMS的恢复子系统 知识点:事务的概念 学生答案:[B;] 标准答 案: B; 得分:[10]试题分 值: 10.0 提示: 1. 事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处

于一致性状态。这指的是事务的_____。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[A;] 标准答 案: A; 得分:[10]试题分 值: 10.0 提示: 1. 一个事务一旦提交之后,它对数据库的影响必须是永久的,无论发生何种系统故障。这指的是事务的____。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[C;] 标准答 案: C; 得分:[10]试题分 值: 10.0 提示: 1. 系统必须保证事务不受其它并发执行事务的影响,这指的是事务的________。 2.

2.隔离性 3.持久性 4.原子性知识点:事务的概念 学生答案:[B;] 标准答 案: B; 得分:[10]试题分 值: 10.0 提示: 1. 一个事务中所有对数据库的操作是一个不可分割的操作序列。每个事务的操作序列要么都被成功地执行,要么一个也不被执行,这指的是事务的______。 2. 1.一致性 2.隔离性 3.持久性 4.原子性 知识点:事务的概念 学生答案:[D;] 标准答 案: D; 得分:[10]试题分 值: 10.0 提示: 1. DBS运行的最小逻辑单位是__________。 2. 1.事务 2.表 3.属性

第1章Oracle11g数据库系统

第1章Oracle 11g数据库系统 Oracle数据库系统是世界领先的数据库管理系统,Oracle数据库以其功能强大和配置灵活而著称,同时也因有一定的操作难度,让很多初学者望而却步。本书将由浅入深,以简单易懂的示例带领读者拨开Oracle的神秘面纱。 目前在Oracle世界主要有两类人员:一类是Oracle数据库管理人员,简称DBA;一类是Oracle开发人员。Oracle DBA主要的工作是负责日常的数据库维护和性能优化管理。由于Oracle系统较庞大、复杂,要成为一名合格的DBA,需要掌握的知识较多,比如要掌握Oracle体系结构和性能优化等方面的知识,相对其他数据库而言入门门槛较高,但是薪酬一般也较丰厚。Oracle开发人员的主要工作是使用Oracle提供的SQL语言和PL/SQL 结构化程序设计语言操作数据库,主要职责是操纵Oracle数据库对象,不需要对Oracle系统结构有深入了解,入门较容易。当Oracle开发人员积累了一定的开发知识后,可以通过学习Oracle DBA方面的知识向数据库管理员转型。 1.1 关系型数据库系统介绍 1970年6月,IBM公司的研究员E.F.Codd博士(中文名:埃德加·弗兰克·科德),发表了名为“大型共享数据库的关系模型”的论文,受到了学术界和产业界的高度重视和广泛响应,使得关系型数据库系统很快成为数据库市场的主流。E.F.Codd博士被誉为“关系数据库之父”,其照片如图1.1所示。 图1.1 关系数据库之父埃德加·弗兰克·科德

第1章 Oracle 11g 数据库系统 ·3· 1.1.1 什么是关系型数据模型 关系型数据库简而言之就是使用关系或二维表存储信息。以公司的人员信息管理为 例,为了存储公司内部的员工信息,人事部门一般会建一份列表,在公司未引入信息化管理系统时,大多数人事职员会使用Excel 来保存员工信息,例如图1.2是一份简单的人员信息列表的Excel 文件。 这种Excel 存储数据的方式,将人员的所有信息都包含在一张表中,随着Excel 中的 栏位和记录数越来越多,这份人员信息表会变得越来越繁杂,这种存储数据的方式称为平面文件数据模型。 为了简化修改与维护的复杂性,关系型数据库设计人员通过使用实体关系模型进行数 据库建模,例如人员信息表可以分为员工表和部门表,通过部门编号进行关联,ER 模型如图1.3所示。 图1.2 Excel 人员信息列表 图1.3 人员信息表ER 关系模型 由图1.3中可以看到,通过将员工和部门分别存储在不同的二维表格中,使用主键(PK )和外键(FK )进行关联,使得获取和维护数据变得更容易,这就是关系型数据模型。上述ER 图的3个关键组件分别如下所示。 ? 实体:需要了解的信息,比如部门和员工信息。 ? 属性:一般也称为列或字段,描述实体必须或可选的信息,比如员工表中的工号 和姓名等。 ? 关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。 关系型数据模型还涉及一些较复杂的组成元素,涉及较多的数学知识,有兴趣的读者 可以参考一些理论性的读物。 1.1.2 数据库系统范式 为了规范化关系型数据模型,关系型数据库系统在设计时必须遵循一定的规则,这种 规则称为关系型数据库系统范式。了解范式是每个数据库设计或开发人员必须具备的基本功,范式的主要目的是降低数据冗余,设计结构合理的数据库。目前较常用的范式有如下3种。

服务器(ORACLE)启动与关闭

服务器(O R A C L E)启动 与关闭

一、重启服务器顺序: 关闭数据库(toppord/toptest)→重启设备(reboot)→开启数据 库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) # 设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正 确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例

-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas 备注: oracle数据库几种关闭方式: 1、shutdown normal 正常方式关闭数据库 关闭时间较长,等待事务完成才会关闭数据库。 2、shutdown immediate 立即方式关闭数据库(一般使用该方式) 会结束事务,将未提交的事务全部回滚。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 3、shutdown abort 直接关闭数据库 会造成数据库的不一致,再次启动数据库会自动执行恢复,会造成等待时间较长。正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

基于Oracle数据库的学生信息管理系统

基于数据库的学生信息管理系统 1 引言1.1 课题来源及意义21世纪是信息化的时代,信息化以更快捷更为方便为目标来融入各行各业。学校也不能例外。当前,我国的学校正在加紧实施信息化建设,其中学生信息管理是相当重要的一部分。目前社会上信息管理系统发展飞快,各个事业单位都引入了信息管理系统来管理自己日益增长的各类信息,学生信息管理系统也是有了很大的发展,商业化的学生信息管理系统也不少。但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作[1]。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都是至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段[2]。但一直以来人们使用传统人工的方式管

理文件,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。在各大高校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。1.2 研究内容与目标主要工作包括:新系统在原有系统的基础上加入新的数据库的支持,使用了现金的数据库技术与数据管理技术,是数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善。利用虚拟机的运行环境与数据库相结合实现了主要原型系统。设计了基于三层结构的设计思想。第 1 页共39 页尽量达到人力与设备费用的节省,并且是软件处理数据的速度提高,系统的整个设计过程必

事务管理与数据库安全性(二)有答案

事务管理与数据库安全性(二) 一、选择题 1. 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括________。 A.数据字典、应用程序、审计文档、数据库后备副本 B.数据字典、应用程序、审计文档、日志文件 C.日志文件、数据库后备副本 D.数据字典、应用程序、数据库后备副本 答案:C 2. 事务的持久性是指________。 A.事务中包括的所有操作要么都做,要么都不做 B.事务一旦提交,对数据库的修改就是永远的 C.一个事务内部的操作及使用的数据对并发执行的其他事务是隔离的 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 答案:B 3. 设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是________。

A.该操作序列不存在问题 B.该操作序列丢失修改 C.该操作序列不能重复读 D.该操作序列读出“脏”数据 答案:C 4. 在对数据库的系统故障进行恢复时,需要对日志文件进行________。 A.反向扫描 B.正向扫描 C.双向扫描 D.随机扫描 答案:C 5. 事务的持久性是由数据库系统中的哪个部件负责?________。 A.完整性控制部件 B.安全性控制部件 C.恢复管理部件 D.并发控制部件

答案:C 6. 设有两个事务T1和T2,其并发操作序列如下表所示。下面说法中正确的是________。 A.该操作序列不存在问题 B.该操作序列丢失更新 C.该操作序列不能重复读 D.该操作序列读出“脏”数据 答案:B 7. 下列权限中,哪一个不是数据库的访问权限?________。 A.Read权限 B.Resource权限 C.Update权限 D.Lock权限 答案:D

Oracle 数据库启动过程各步骤详解

Oracle 数据库启动过程各步骤详解 Oracle数据库的完整启动过程包含以下3个步骤:简单地说,就是:启动实例-->加载数据库-->打开数据库.------------------------------------------------------------------------------------------------------------------ 1.创建并启动与数据库对应的实例。在启动实例时,将为实例创建一系列后台进程和服务进程,并且在内存中创建SGA 区等内存结构。在实例启动的过程中只会使用到初始化参数文件,数据库是否存在对实例的启动没有影响。如果初化参数设置有误,实例将无法启动。 2.为实例加载数据库。加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库名称、数据文件的位置和名称等有关数据库物理结构的信息,为打开数据库做好准备。如果控制文件损坏,则实例将无法加载数据库。在加载数据库阶段,实例并不会打开数据库的物理文件----数据文件和重做日志文件。 3.将数据库设置为打开状态。打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件。控制文件中的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息,这时需要进行数据库恢复。只有将数据库设置为打开状态后,数据库才处于正常状态,这时普通用户才能够访问数据库。在很多情况下,启动数据库时并不是直接完成上述

3个步骤,而是逐步完成的,然后执行必要的管理操作,最后才使数据库进入正常运行状态。所以,才有了各种不同的启动模式用于不同的数据库维护操作。 ============================================== ===============================Oracle 数据库启动与关闭各种方式详解整理 前言: 首先要知道,Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤:启动实例-->加载数据库-->打开数据库详解看这里: https://www.sodocs.net/doc/2611841321.html,/lutinghuan/article/details/7484103因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。 小白:在启动实例之前,需要先启动SQL*Plus,并以一个用户身份连接到Oracle。启动模式详解1.NoMount 模式(启动实例不加载数据库)命令:startup nomount 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle 仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括V$PARAMETER、V$SGA、V$PROCESS 和V$SESSION等,这些视图中的信息都是从SGA区中获

数据库并发控制

数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的大部分时间处于闲置状态。因此,为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。 DM用封锁机制来解决并发问题。它可以保证任何时候都可以有多个正在运行的用户程序,但是所有用户程序都在彼此完全隔离的环境中运行。 一、并发控制的预备知识 (一) 并发控制概述 并发控制是以事务(transaction)为单位进行的。 1. 并发控制的单位――事务 事务是数据库的逻辑工作单位,它是用户定义的一组操作序列。一个事务可以是一组SQL 语句、一条SQL语句或整个程序。 事务的开始和结束都可以由用户显示的控制,如果用户没有显式地定义事务,则由数据库系统按缺省规定自动划分事务。 事务应该具有4种属性:原子性、一致性、隔离性和持久性。 (1)原子性 事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分的完成。这一性质即使在系统崩溃之后仍能得到保证,在系统崩溃之后将进行数据库恢复,用来恢复和撤销系统崩溃处于活动状态的事务对数据库的影响,从而保证事务的原子性。系统对磁盘上的任何实际数据的修改之前都会将修改操作信息本身的信息记录到磁盘上。当发生崩溃时,系统能根据这些操作记录当时该事

数据库oracle论文

数据库管理系统之 --oracle 姓名: 班级:学号: 东北大学秦皇岛分校

数据库管理系统之——Oracle 摘要:近些年来,ORACLE在资本层面频频发起重量级的并购,先后收购了PeopleSoft、BEA、SUN等知名软件企业,极大增强了自家整体实力。产品线上也是四面出击,现如今的ORACLE早已由一个单纯的数据库软件厂商,蜕变成涵盖了包括数据库、中间件、操作系统、企业化管理、商业智能、虚拟机、开发工具等,从软件到硬件,可对外提供完整企业解决方案的巨无霸厂商,完成从卖产品到卖服务的重大角色转变。 ——Oracle数据库的产品介绍 功能与发展:Oracle数据库是一个功能极其强大的数据库系统。它起始于七十年代末的关系型数据库技术。Oracle数据库的关键是怎样理解数据间的关系,然后构造反映这些关系的信息库。1984年Oracle成功地将关系型数据库转移到桌面计算机上,Oracle提供了一个完整的客户服务器体系结构的商用DBMS。利用软件层与多种操作系统支持通信协议的配合,为Oracle数据库提供了分布式环境,可以实现多点查询。Oracle数据库发布了革命式的航锁定模式,提高了事物的处理速度,使关系型数据库应用进入了一个全新的天地。 1992年推出的Oracle7采用了自协调的多线索服务器体系结构,动态调整高速数据库服务进程的个数。这都为构造产业化的以及企业类的应用提供了技术支持。 Oracle数据库系统的特点是支持大数据库、多用户的高性能事务处理,Oracle数据库具有良好的硬件环境独立性,支持各种类型的大型、中型、小型和微机系统。Oracle数据库遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准,有着更好地安全性和完整控制,并且Oracle数据库允许将处理分为数据库服务器和客户应用程序处理,所有共享的数据管理由具有数据库管理的系统的计算机处理,而运行数据应用的工作站侧重于解释和显示数据。 ——Oracle系统结构组成 Oracle的存储管理:数据库管理员终于可以将自己从单调而常用的增加、移动和删除存储磁盘的任务中解脱出来了—并且无需增加额外的成本。 假设您刚得到一个新的Oracle 数据库的全新的服务器和存储子系统。除操作系统配置之外,在您能够创建数据库之前,最重要的工作是什么?很明显,就是创建存储系统布局—或更具体地说,选择一种保护级别,然后构建必需的冗余磁盘阵列(RAID) 组。 在大多数数据库安装中安装存储器要花费大量的时间。从多种可能中选择一种特定的磁盘配置需要仔细的规划和分析,并且最重要的是,需要详细了解存储技术、卷管理器和文件系统。在这个阶段的设计任务可以大致说明如下: ● 确认存储器在操作系统级通过了认证,并确定冗余保护的级别,该级别可能已经提供(硬件RAID)。 ● 集中和构建逻辑卷组,并确定分段或镜像是否也是必需的。 ● 在逻辑卷管理器创建的逻辑卷上构建文件系统。 ● 设定所有权和权限,以便Oracle 进程可以对设备进行打开、读和写操作。 ● 在文件系统上创建数据库,如果可能的话务必在非RAID 的位置上创建特殊文件,例如重做日志、临时表空间和重做表空间之类的特殊文件。 在大多数公司中,这些步骤大部分是由对存储系统非常了解的某些人来执行的。这里的“某些人”通常不是数据库管理员。 Oracle的故障管理:故障管理的展开程序有以下六个方面:

oracle启动的三个阶段

oracle启动的三个阶段 三个阶段: 1. 启动到nomount状态,这个阶段数据库读取spfile/pfile文件中的参数,启动数据库实例。 1-1读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名1-2分配系统全局区 1-3启动后台进程 1-4打开alertSID.log文件和跟踪文件 补充说明: 在nomount阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为spfile.ora,init.ora,init.ora如果以上三个文件均查找不到oracle在此时就会报错,同时在此阶段oracle会查找alter文件,如果没有找到alter文件会自动创建;启动相应的后台进程至少包括五个 pmon,DBWn,ckpt,smon,LGWn。总之,这个阶段主要就是启动一个实例,并为加载数据库确定必要的参数。 2. 启动到mount状态,这个阶段数据库打开控制文件,验证控制文件。 2.装载数据库--startup mount,读控制文件等 2-1将数据库与一个已打开的实例相关联 2-2打开控制文件 2-3获取数据文件和重做日志文件的名称和状态.

补充说明: 在mount阶段,oracle会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。 3. 启动到open状态,这个阶段数据库打开控制文件里描述的文件。 3.打开数据库--database open 3-1打开数据文件 3-2打开联机重做日志文件. 补充说明: 在open阶段,就是打开数据库,在这个阶段SMON会对数据文件的检查点进行一致性检查,不一致时smon会介入进行恢复。 Oracle中数据库实例和数据库是独立实体,可以独立存在。因此启动过程分成多个阶段:首先在内存中构建实例,然后通过安装数据库启用到数据库的连接,最后打开数据库来使用它。Oracle数据库有四种状态:SHUTDOWN:所有数据库文件都关闭,不存在实例 NOMOUNT:实例在内存中创建(SGA已经被创建,根据参数文件指定启动某些后台进程),但没有连接到任何数据库。 MOUNT:实例定位并读取数据库控制文件。 OPEN:所有的数据库文件都被定位和打开,终端用户可以使用数据库。 数据库的启动可分为三个阶段:

基于Oracle数据库的学生信息管理系统

基于Oracle数据库的学生信息管理系 统 1 引言1.1 课题来源及意义21世纪是信息化的时代,信息化以更快捷更为方便为目标来融入各行各业。学校也不能例外。当前,我国的学校正在加紧实施信息化建设,其中学生信息管理是相当重要的一部分。目前社会上信息管理系统发展飞快,各个事业单位都引入了信息管理系统来管理自己日益增长的各类信息,学生信息管理系统也是有了很大的发展,商业化的学生信息管理系统也不少。但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作[1]。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都是至关重要,所以学生管理系统应该能够为用户提供充足的信息和快捷的查询手段[2]。

但一直以来人们使用传统人工的方式管理文件,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。在各大高校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。1.2 研究内容与目标主要工作包括:新系统在原有系统的基础上加入新的数据库的支持,使用了现金的数据库技术与数据管理技术,是数据的准确性与安全性得到了很大的提高,且在用户的并行操作与用户管理方面也有了极大地改善。利用虚拟机的运行环境与Oracle数据库相结合实现了主要原型系统。设计了基于三层结构的设计思想。第 1 页共39 页尽量达到人力与设备费用的节省,并且是软件处

数据库原理课程设计--基于oracle的CD管理系统

数据库原理课程设计--基于oracle的CD管理系统

湖南人文科技学院计算机系 课程设计说明书 课程名称:数据库原理课程设计 课程代码:408031 题目:基于oracle的CD管理系统 年级/专业/班:2011级计算机科学与技术专业2班学生姓名:马帝文董江流刘毅易宁王星卜 付昀姗王智雄易韬张旭 学号:11408219 11408213 11408211 11408215 11408218 11408212 11408214 11408216 11408210 指导教师:肖体敏 开题时间: 2013 年 7 月 1 日 完成时间: 2013 年 7 月 4 日

湖南人文科技学院课程设计

目录 摘要 (1) 一、引言 (2) 二、设计目的与任务 (2) 三、设计方案 (3) 1、总体设计 (3) 2、需求分析 (3) 3、概念设计 (12) 4、逻辑设计 (13) 5、详细设计 (14) 6、程序调试与体会 (17) 四、致谢 (18) 五、参考文献 (18)

摘要 当今社会是一个信息技术高速发展的时代,而数据库技术是计算机科学技术发展最快的应用最为广泛的技术之一。其中计算机设计,人工智能,商务管理,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。 利用数据库技术设计的唱片管理系统是一个专门针对唱片信息的实用管理系统,它方便了用户对唱片信息的查询和管理等操作。比起普通的查询方式,此唱片管理系统能够大大缩减用户的时间。此次课程设计是通过设计一个唱片管理系统来实现用户对其唱片进行一些相关信息的管理,其中包括添加、查询、删除、修改。 关键词:数据库;唱片;管理;系统 Abstract In today's society is an information technology era of rapid development, and database technology is computer science and technology one of the fastest growing one of the most widely used technology.Which computer design, artificial intelligence, business management, enterprise management, scientific computing, and many other fields has been widely used, has become a computer information system and application of the core technology and an important foundation. Using database technology to design the record management system is a practical management system for recording information, it is convenient for the user to record information query and management of https://www.sodocs.net/doc/2611841321.html,pared to ordinary way of query, the record management system management system can greatly reduce the user's time.This course is designed by design a records management system to realize the user to carry on some relevant information for their records management, including add, query, delete, modify. Key words: Database;Record;Management; System

数据库事务管理小结

数据库事务管理小结 --by 小马哥 前面一篇小结<数据库学习小结(JDBC-DAO)>是本文小结的基础,我觉得需要对数据库的事物管理单独作为一个章节来总结一下,否则有可能说不清楚. 先来个引子,其实就是把<数据库学习小结(JDBC-DAO)>文中第八章节的内容拷过来了. 一.jdbc 对事物的控制 事物本身,也不想多讲了.事物本身的定义可以参照书本<数据库系统概论>里面的讲解.这里只大致介绍一下jdbc 对事物的支持,jdbc 是通过commit()和rollback()两个函数来实现的. 书本里面,对事物的举例,用的是一个转账的例子,张三给李四转账1000元,不能扣了张三的钱之后李四的钱却没加上去,这就是一个事物.我这里由于不想改代码,所以我就不写转账的示例代码了,下面的例子,我们假定添加"李莉"和"李刚"两个操作,是一个原子性的操作,来理解下面代码(还是仔细看注释): 看代码中标黄的位置,我们最初把其注释掉(假定数据库之前没有"李莉"和"李刚"这两个人的数据).OK,执行完了之后查看数据库 : 发现"李莉"被添加了进来,但是"李刚"并没有被添加进去.而且控制台的输出打印了"haha2",说明后面添加李刚的代码并没有被执行到,而是走到异常处理中去了. OK,删掉数据库中"李莉"的数据,然后把注释的两行加上,再执行代码,发现控制台的打印依旧存在,但是"李莉"的数据如我们所愿,也没有被写入到数据库,这就和我们假定的是一样了.

二.数据库隔离级别 第一章节中,我们通过例子可以看到,jdbc 是通过commit()和rollback()两个函数来实现事物的提交和回滚(rollback 本文中没有给出范例代码).我们先来看看下面的这个表格table1,它是个抽象的概念,表示数据库的几种隔离级别,有的数据库(如mysql)支持很多种隔离级别,可以自己配置.有的就只支持很简单的一两种.表格中的V 表示,有可能会出现这种情况,x 表示,这种情况不会发生.隔离级别的作用是能够保证多个线程同时操作一条数据时的正确性,它是一个非常重要的概念,也是一个不容易理解透的概念.希望我能讲清楚: 读未提交(Read 数据,还没有进行提交,别人就可以看到,这个时候就会产生脏读,可以重复读,幻读了. 读已提交(Read committed):他的隔离级别稍微高一些,意思就是说当一个线程的操作事务没有提交,别人是无法读取的得到的,但是他还是不能解决不可重复读和幻读. 可重复读(Repeatable read ):隔离级别更高了,它是mysql 的默认隔离级别,它能保证不会读到其他线程未提交的数据,也能保证每次读到的数据是一样的,但是不能避免幻读的问题. 可串行化(Serializable ):这是级别最高的隔离级别,它可以避免脏读,不可重复读,幻读的问题. 隔离级别越高,对数据正确性的保证会越好,但同时牺牲很多的数据库性能,并发性会越差,具体的调整需要根据自己的需要进行,建议不要设置为可串行化与读未提交这样的级别,当然各个数据库提供对隔离级别的支持是不一样的,有些数据库压根就没有实现和支持相应的隔离级别。 ok ,我们还是通过在mysql 数据库中来操作一遍,根据例子来理解上面的那个表格table1,在做实验之前,先必须了解一个mysql 的知识. 要记住mysql 有一个autocommit 参数,默认是on,它的作用是每一条单独的查询都是一个事务,并且自动开始,自动提交.这种模式会在每条语句执行完毕后把它作出的修改立刻提交给数据库并使之永久化.事实上,这相当于把每一条语句都隐含地当做一个事务来执行.如果你想明确地执行事务,需要禁用自动提交模式并告诉MySQL 你想让它在何时提交或回滚有关的修改. 我们来看看默认的mysql 中,这个autocommit 模式是什么: 可以看到,autocommit 默认是打开的. 执行事务的常用办法是发出一条START TRANSACTION (或BEGIN )语句挂起(暂停)自动提交模式,然后执行构成本次事务的各条语句(即从start transaction 语句开始,到commit 语句结束这中间的语句),最后用一条COMMIT 语句结束事务并把它们作出的修改永久性地记入数据库.万一在事务过程中发生错误,用一条ROLLBACK 语句撤销事务并把数据库恢复到事务开始之前的状态. START TRANSACTION 语句"挂起"自动提交模式的含义是:在事务被提交或回滚之后,该模式将恢复到开始本次事务的START TRANSACTION 语句被执行之前的状态.(如果自动提交模式原来是激活的,结束事务将让你回到自动提交模式;如果它原来是禁用的,结束当前事务将开始下一个事务) 比如说这个就表示,一个线程有 可能会读取到另外一个线程的未 提交的某个数据

相关主题