ImageVerifierCode 换一换
格式:DOCX , 页数:100 ,大小:2.57MB ,
资源ID:9447747      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9447747.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(oracle9i数据库基础培训郑国斌.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

oracle9i数据库基础培训郑国斌.docx

1、oracle9i数据库基础培训郑国斌ORACLE 9i数据库基础培训1 Oracle9i数据库体系结构谈及Oracle 数据库结构时,我们应该从两个角度来探讨:分别是数据库的“逻辑层面”与“物理层面”。简单的说,“逻辑层面”是由”数据库内部”观看其组成要素,包括:表空间(tablespaces)、段(segments)、区块(extents)、数据块(data block)、以及数据库对象(Schema objects)。而“物理层面”则是从”操作系统”角度来看数据库的实体构成项目,包括:数据文件(Data files)、重做日志文件(redo log files)、控制文件(control

2、files)、口令文件(password)、初始化参数文件(initialization parameter files)等。1.1 逻辑结构 数据块(data block)许多初次接触数据库的读者最好奇的一点是:“数据究竟是如何存放在数据库呢?”。其实,Oracle9i 数据库有几种数据储存体,其中最小的储存单元就称为“数据块” (data block)。数据块大小是由初始化参数文件的DB_BLOCK_SIZE参数所决定,且在新建Oracle9i 数据库之前就必须明确地定义。实际上,数据块大小与”操作系统的磁盘读写块”(O.S. blocks)也有关系,所以必须将DB_BLOCK_SIZE

3、设定为O.S. blocks 的整数倍。附带一提:Oracle9i 在存取数据时是以data block 为最小读取单位,而不是以OS block 为单位。从Oracle9i 开始,数据库内可以设定多种数据块大小。换句话说,Oracle9i数据库内分为“标准数据块”与“非标准数据块”;预设情况下SYSTEM 资料表空间就是以“标准数据块”建立而成。 区(extents)除了数据块之外,Oracle9i 数据库还有所谓的“区”(extents)。虽然数据块是Oracle9i 最小的资料读写单位,但值得注意的是:Oracle9i 在分配储存空间时,并不是以数据块为单位,而是改采“区”的方式来分配空

4、间。那么,使用“区”究竟有何好处呢?当执行DDL 指令建立数据库对象时(例如CREATE TABLE 指令),Oracle9i 会先分配出一连串的数据块;直到这些数据块全部存满数据后,下次再分配一连串的数据块。这些连续的数据块就统称为“区”。举例来说,假定您准备在Oracle9i 数据库内存放80 KB 的资料,Oracle9i 可以先分配一个“区”,其大小可为数据块(8 KB)的5 倍;然后视实际需要再配置第二个“区”(大小还是40 KB)。如此一来,只要两次的空间配置动作就可以存放80 KB 的资料了!试想,如果Oracle9i 每次只配置8 KB 的“数据块”让存放资料,总共需要10 次

5、空间配置动作才能放满80 KB 的资料,比较没有效率。由此可见,“区”的确有其存在的必要性。 段(segments)依照不同的数据处理性质,可能需要在表空间内划分出不同区域,以存放不同的数据;我们将这些区域称之为“段”(segment)。例如,存放数据的称为“数据段”、存放数据的称为“索引段”。而“段”其实就是由许多“区块”(extents)组合而成。除了上述两种“段”以外,Oracle9i 数据库内还有另外两种段结构,分别是:“临时段”(temporary segment)与“回退段”(rollbacksegment)。 表空间(tablespaces)表空间是数据库中最大的逻辑单位。数据库

6、可以划分为一个或多个逻辑单位,该逻辑单位称为表空间。下图说明了Oracle9i 数据库内各逻辑组成之间的关系:1.2 物理结构 数据文件每个Oracle9i 数据库都包含为数不等的“数据文件”。数据库内所有逻辑数据库对象都是存放在数据文件内,如:数据表、索引.等。一但数据文件被建立后,系统就会在磁盘上分配出适当空间给数据文件;但尚未存放任何用户数据。等到未来使用者将数据存入数据库时,Oracle9i 才会在数据文件内分配出“段”,以存放数据。而这些动作都是由Oracle9i 自动完成的。当然了,如果数据文件剩余空间不足,您就必须调整数据文件大小;或增加新的数据文件。所以在Oracle9i 数据

7、库内,一个数据库对象有可能横跨多个数据文件。如前所述,Oracle9i 数据库内可规划一个以上的“数据表空间”。但如果由操作系统角度来看,“数据表空间”其实是由一个或数个“数据文件”所组成。换句话说,数据库的所有数据就是位于操作系统的各“数据文件”内。所以: 一个“数据文件”只能对应的一个“数据表空间”。 一个“数据表空间”可包含多个“数据文件”。 重置日志文件除了“数据文件”外,最重要的Oracle9i 数据库实体文件就是“重做日志文件”(redo log files)。虽然它与“数据文件”不同,但是彼此间却有密不可分的关系!简单的说,Oracle9i 重日志文件会负责纪录数据库内除查询以外

8、的任何数据增、删、修改情况。当数据被改变时,有改动纪录会先保留在内存的重做记录缓冲区(redo buffer),并在适当时机由LGWR 后台处理程序负责写入至硬盘上重做日志文件。如此一来,所有数据改动情况都会完整地保留下来。万一您的Oracle9i 数据库不小心当机或是遭遇毁损,Oracle9i 将凭借重做日志文件内相关纪录将数据复原至最完整的状态。 控制文件每个Oracle9i 数据库至少会有一个“控制文件”,用以纪录与描述数据库的实体结构。“控制文件”内记录以下重要信息:数据库名称与建立时间。数据文件与重做日志文件的名称及其所在位置。交易纪录序列码(log sequence number)

9、。每当打开数据库时,Oracle9i 会在数据库mount前读取控制文件内容,待所有数据库实体组成文件的信息都收集完毕,数据库才会被mount和open。为了避免控制文件毁损导致数据库系统启动不了,建议至少配置两个控制文件,并存放在不同实体硬盘。 初始化参数文件在启动数据库,Oracle必须依照特定参数设定值来分配内存空间,并激活相关后台处理程序。可以事先规划这些参数,并存放在操作系统内的某个文件。往后将利用这个文件来启动数据库。这个文件就是所谓的“初始化参数文件”。该文件可以设置数据库的近250个系统参数,包括内存中SGA大小、数据库大量的默认值、数据库的限制、定义数据库的各种物理属性、指定

10、数据库控制文件名称及路径等。参数文件是一个文本文件,允许重新编辑修改。1.3 实例的进程结构1.3.1 总体结构Oracle 服务器是一种对象关系数据库管理系统(ORDBMS),它为信息管理提供开放、综合、集成的方法。Oracle 服务器由一个Oracle例程(Instance)和一个Oracle数据库组成。Oracle 例程(Instance)是后台进程和内存结构的组合。必须启动例程才能访问数据库中的数据。每次启动例程都会分配系统全局区 (SGA) 并启动 Oracle.后台进程。 SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享。 后台进程代表调用进程执行功能。它们把为每个用

11、户运行的多个 Oracle 程序所处理的功能统一起来。后台进程执行 I/O 并监控其它 Oracle 进程以增加并行性,从而使性能和可靠性更加优越。 用户进程是产生 SQL 语句的应用程序 服务器进程执行用户进程发送的 SQL 语句1.3.2 ORACLE数据库文件Oracle 数据库由三种文件类型组成 数据文件:包含数据库中的实际数据 重做日志:包含对数据库所做的更改记录这样万一出现故障可以启用数据恢复一个数据库至少需要两个重做日志文件 控制文件:包含维护和验证数据库完整性的必要信息例如控制文件用于识别数据文件和重做日志文件。一个数据库至少需要一个控制文件。其它关键文件 参数文件:定义 Or

12、acle 例程的特性,例如它包含调整 SGA 中一些内存结大小的参数。 口令文件:认证哪些用户有权限启动和关闭 Oracle 例程。 归档的重做日志文件:是重做日志文件的脱机副本这些副本可能对于从介质失败中进行恢复很必要。1.3.3 系统全局区(System Global Area)SGA 是用于存储数据库信息的内存区。它包含Oracle 服务器的数据和控制信息。SGA 由几种内存结构组成: 共享池(Shared Pool):用于存储最近执行的 SQL 语句和最近使用的数据字典数据(procedure). 数据库缓冲区高速缓存(Database buffer):用于存储最近使用的数据. 重做日

13、志缓冲区(Redo log buffer):用于跟踪服务器和后台进程对数据库所做的更改.在 SGA 中还有两种可选的内存结构 Java 池(Java pool):用于存储 Java 代码. 大型共享池(Large pool):用于存储并不与 SQL 语句处理直接相关的大型内存结构例如在备份和复原操作过程中复制的数据块.1.3.4 共享池组件在分析阶段, 服务器进程使用 SGA 中称作共享池的区域来编译 SQL 语句.共享池有两个基本组件 库高速缓存(Library Cache) 数据字典高速缓存(Dictionary Cache)库高速缓存在称为共享 SQL 区域(Shared SQL Are

14、a)的内存结构中存储最近使用的SQL 语句信息. 共享 SQL 区域包含: SQL 语句文本 分析树:语句的已编译版本 执行计划:执行语句时要采取的步骤如果重新执行 SQL 语句而且共享 SQL 区域已经包含语句的执行计划, 那么服务器进程就不需要分析语句. 库高速缓存通过减少分析时间和内存要求来改善重新使用 SQL 语句的应用程序的性能. 如果 SQL 语句没有重新使用,那么它最终会从库高速缓存中超龄(老化)释放.数据字典高速缓存是数据库中最近使用的定义的集合,它包括有关数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。在分析阶段,服务器进程在字典高速缓存中查找信息,以解析 SQ

15、L 语句中指定的对象名并验证访问权限。1.3.5 数据库缓冲区高速缓存数据库缓冲区高速缓存的功能处理查询时,服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并且在缓冲区高速缓存中放置一个副本。由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要物理读取。Oracle 服务器使用最近最少使用算法来释放近期未被访问的缓冲区,以便在缓冲区高速缓存中为新块腾出空间。1.3.6 程序全局区程序全局区或进程全局区 (PGA) 是一个内存区域,它包含单个服务器进程或单个后台进程的数据和控制信息。与几个进程共享的

16、 SGA 正相反,PGA 是只被一个进程使用的区域。在专用服务器配置中,服务器的 PGA 包括下面的组件: 排序区:用于处理 SQL 语句时可能需要的任何排序 会话信息:包括用于会话的用户权限和性能统计 游标状态:标明处理会话当前使用的 SQL 语句中的阶段 堆栈空间:包含其它会话变量1.3.7 重做日志缓冲区服务器进程在重做日志缓冲区中记录对数据文件的大部分更改,这个缓冲区是SGA 的一部分。重做日志缓冲区有下面的特点: 它记录被更改的块、更改位置、以及重做条目中的新值。重做条目不区分被更改块的类型;它只记录块中哪些字节发生了更改。 重做日志缓冲区连续使用,而且一个事务处理所做的更改可能会与

17、其它事务处理的更改交叉存取。 它是在已满后可以重新使用的循环缓冲区,但是只有在所有旧的重做条目都记录在重做日志文件之后才能使用。1.3.8 回滚段进行更改之前,前服务器进程将旧的数据值保存到回退段中。这些旧的图像数据用于 回退事务时撤销更改 通过确保其它事务处理不会看到 DML 语句所做的未提交更改,来提供读一致性 在数据库恢复过程中,可以使用它将数据库恢复到一致状态。当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORACLE将在下次打开数据库时利用回滚段来恢复未提交的数据。回退段就象表和索引那样存在于数据文件之中,而回退块将根据需要被放入数据库缓冲区高速缓存中。1.3.9

18、 后台进程执行用于处理并行用户请求所需的通用功能, 每个例程都包括下面五个必需的后台进程: 数据库写入程序 (DBW0) 负责将更改的数据从数据库缓冲区高速缓存写入数据文件. 日志写入程序 (LGWR) 将重做日志缓冲区中注册的更改写入重做日志文件. 系统监控程序 (SMON) 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复. 过程监视器 (PMON) 负责在一个 Oracle 进程失败时清理资源. 检查点进程 (CKPT) 负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时更新控制文件和数据文件中的数据库状态信息.1.3.10 日志写入程序日志写入程序LGWR 在下列情况下

19、执行从重做日志缓冲区到重做日志文件的连续写入: 当提交事务处理时 当重做日志缓冲区的三分之一已满时 当重做日志缓冲区中记录了超过 1 MB 的更改时 在 DBW0 将数据库缓冲区高速缓存中修改的块写入数据文件以前1.3.11 数据库写入程序数据库写入程序服务器进程在缓冲区高速缓存中记录回退和数据块的更改。数据库写入程序(DBW0) 将灰数据缓冲区从数据库缓冲区高速缓存写入数据文件。它确保有足够数量的空闲缓冲区(即当服务器进程需要读取数据文件中的块时可以覆盖的缓冲区)在数据库缓冲区高速缓存中可用。由于服务器进程只在缓冲区高速缓存中进行更改,因此数据库性能得到改善,而且 DBW0 延迟写入数据文件

20、直到发生下列事件之一: 灰数据缓冲区的数量达到阈值 当进行扫描而无法找到任何空闲缓冲区时进程扫描了指定数量的块 出现超时(每三秒) 出现检查点1.3.12 SMON 系统监控程序如果 Oracle 例程失败,那么 SGA 中尚未写入磁盘的所有信息都会丢失。例如,操作系统的失败导致例程失败,例程丢失后,后台进程 SMON 在数据库重新打开时自动执行例程恢复。恢复例程需要进行以下步骤:1. 前滚以恢复尚未记入数据文件但已经记入联机重做日志中的数据。由于例程失败过程中 SGA 的丢失,这些数据尚未写入磁盘。在这个进程中,SMON读取重做日志文件并将重做日志中记录的更改应用到数据块中,由于所有提交的事

21、务处理都已被写入重做日志,因此该进程完全恢复这些事务处理。2. 打开数据库以允许用户登录。未被未恢复事务处理锁定的任何数据都立即可用。3. 回退未提交的事务处理。它们由 SMON 回退,或在访问锁定的数据时由单个服务器进程回退。SMON 也执行一些空间维护功能: 它联合或合并数据文件中空闲空间的邻近区域。 它回收临时段。将它们作为数据文件中的空闲空间返回。临时段用于在SQL 语句处理过程中存储数据1.3.13 PMON 进程监视器PMON 功能进程失败后后台进程 PMON 通过下面的方法进行清理 回退用户的当前事务处理 释放当前保留的所有表锁或行锁 释放用户当前保留的其它资源1.3.14 处理

22、查询查询处理步骤查询不同于其它类型的 SQL 语句,因为如果查询成功,它们会返回作为结果的数据。查询可以返回一行或者上千行,而其它语句只是返回成功或失败。查询的处理有三个主要阶段:1 分析2 执行3 提取a)分析 SQL 语句在分析 阶段,SQL 语句从用户进程传递到服务器进程,并且SQL 语句的分析说明被载入共享的 SQL 区。在分析过程中,服务器进程: 在共享池中搜索 SQL 语句的现有副本 通过检查语法验证 SQL 语句 执行数据字典查找来验证表和列的定义 获取对象的分析锁以便在语句的分析过程中对象的定义不会改变 检查用户访问引用方案对象的权限 确定语句的最佳执行计划 将语句和执行计划载

23、入共享的 SQL 区b)执行 SELECT 语句此时,Oracle 服务器已经具有了所有必要的信息和资源,因此该语句得以执行,到了 SELECT 语句这一步,服务器进程准备要检索数据了。c)提取查询行在提取阶段对行进行选择和排序(如果有必要的话)。并且由服务器返回给用户,可能需要一个或多个提取将查询结果传送给用户。1.3.15 处理 DML 语句DML 处理步骤数据操纵语言 (DML) 语句只需要两个处理阶段: 分析阶段与处理查询时所用的分析阶段相同 执行阶段需要额外的处理来更改数据DML 执行阶段执行 DML 语句:1 如果缓冲区高速缓存中尚不存在数据和回退块,那么服务器进程就会从数据文件中

24、将它们读入缓冲区高速缓存。2 服务器进程在将要修改的行上放置锁。3 在重做日志缓冲区中,服务器进程记录将要对回退和数据进行的更改 回退块更改记录数据修改以前的值。回退块用于存储成图象前的数据,以便必要的情况下 DML 语句能够回退。 数据块更改记录数据的新值。4 服务器进程将成图象前的数据记录到回退块中,并且更新数据块。这两种更改都是在数据库缓冲区高速缓存中进行的。DELETE 或 INSERT 命令的处理使用类似的步骤。DELETE 命令的成图象前数据包含已删除的行中的列值,而 INSERT 命令的成图象前数据中包含行的位置信息。1.3.16 提交处理快速提交Oracle 服务器使用快速提交

25、机制来保证提交的更改能够在例程失败的情况下得以恢复。系统更改号每当事务处理提交时,Oracle 服务器就把一个提交系统更改号 (SCN) 分配给该事务处理。SCN 是简单递增的,而且在数据库中是唯一的。Oracle 服务器使用它作为内部时间戳以使数据同步,并且在从数据文件检索数据时提供读一致性。使用 SCN 使 Oracle 服务器能够执行一致性检查,而不用依赖操作系统的日期和时间。处理提交的步骤发出 COMMIT 命令时,执行下面的步骤:1 服务器进程随同 SCN 一起在重做日志缓冲区中放置一个提交记录2 LGWR 向重做日志文件中连续写入直到提交记录含提交记录的所有重做日志缓冲区条目。这之

26、后,Oracle 服务器就能够保证即使存在例程失败也不会丢失更改。3 通知用户 COMMIT 命令已完成。4 服务器进程记录信息以指出事务处理已完成并且可以释放资源锁。注:将脏数据缓冲区刷新到数据文件由 DBW0 独立执行,在提交之前或之后进行都可以。快速提交的优势快速提交机制将更改写入重做日志缓冲区而不是写入数据文件,这样确保数据得以恢复。它有如下优势: 连续写入日志文件比写入数据文件的各个块更快。 只将记录更改必须的最少信息写入日志文件,然而写入数据文件却需要写入整个数据块, 如果多个事务处理同时请求提交,那么例程将重做日志记录合成为单个写入。 除非重做日志缓冲区特别满,否则每个事务处理只

27、需要一个同步写入,如果发生合成。那么每个事务处理的同步写入可能不到一个。 因为提交之前可能会刷新重做日志缓冲区,所以事务处理的大小并不影响实际的提交操作所需的时间量。注:回退事务处理并不会触发 LGWR 写入磁盘。从数据库失败恢复时,Oracle 服务器总是回退未提交的更改。如果回退之后出现失败,在回退之前未将条目记录到磁盘上,那么缺乏提交记录就足以确保将事务处理所做的更改回退。2 安装Oracle9i for unix软件各种版本UNIX的ORACLE安装大同小异,下面以AIX5.1为例介绍一下ORACLE的安装。2.1 软件的获取可以到Oracle Technology Network(O

28、TN)网站注册成为OTN 会员,然后就可以下载任何Oracle 最新的技术文件、软件以及安装文档。但是要注意的是所有下载的软件其授权方式为“程序开发者授权”(Developer License),虽然具备完整版的功能,但是只能运用于开发测试或是进行评估,不能进行商业用途!OTN 网址为:2.2 安装Oracle9iRelease2的系统需求硬件要求:安装oracle软件的磁盘至少需要4G的空闲空间,最好在10G以上。注:Oracle 9i 安装程序Oracle Universal Installer 在执行安装动作时会使用/tmp作为文件暂存目录。如果/tmp目录的剩余空间不足,建议设定TMP

29、 或是TMPDIR等环境变量,指向具有足够空间的目录即可。但是该目录必须开放可写入权限。2.3 安装Oracle9iRelease2的前置工作2.3.1 配置UNIX核心参数在大部分UNIX操作系统(如HP-UX)上安装ORACLE都需要对操作系统进行适当的配置。安装ORACLE前需要配置的主要操作系统核心参数如下:SHMMAX:一个共享内存段的最大字节数,是一个上界最大值。SHMMIN:一个共享内存段的最小字节数。SHMMNI:一个共享内存段的最大数目。SHMSEG:一个进程能连接的共享内存段的最大数目。SEMMNS:系统信号量的最大值。SEMMNI:系统信号的最大设置数。SEMMSL:一个

30、信号组中最大的信号数。AIX不需要对系统核心参数进行配置,但象HP-UX、Solaris、Linux等都需要配置。具体配置步骤请参考相关文档,如ZXWN HLR的AIX+ORACLE 9.2安装的文档.本文档仅供培训使用,以下关于oracle的安装说明以测试验证过的安装文档为主。2.3.2 Oracle权限组和用户建立 打开一个Terminal窗口; 在#提示符下打smitty命令; 第一屏可选栏目中,选择Security & Users; 第二屏可选栏目中,选择Groups; 第三屏可选栏目中,选择Add a Group; 第四屏中,填入:Group NAME: dbaGroup ID: 1

31、23其它默认 确认以上输入后回车; command显示为ok时退回到上述第二屏,选择Users; 接下来选择Add a User; 填入:User NAME: oracleUser ID: 223(双机两机相同)Primary GROUP: dbaHOME directory: /oracleSoft FILE size: -1(表示无限制)其它默认 确认以上输入后回车; command显示为ok时退回到#提示符下; 执行chown oracle:dba /oracle命令;2.3.3 编辑profile文件编辑profile文件定义ORACLE数据库与操作系统结合的环境变量参数,通过这些参数可以在操作系统中对ORACLE进行相应的设置。操作如下: 在Terminal中进行如下操作:#su - oracle$cd /oracle$vi .profile 进入

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1