[计算机]Oracle Database 10g基础教程.ppt_第1页
[计算机]Oracle Database 10g基础教程.ppt_第2页
[计算机]Oracle Database 10g基础教程.ppt_第3页
[计算机]Oracle Database 10g基础教程.ppt_第4页
[计算机]Oracle Database 10g基础教程.ppt_第5页
已阅读5页,还剩388页未读 继续免费阅读

下载本文档

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

文档简介

,第1章 网格计算时代,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,了解Oracle产品的发展历史 理解网格计算的概念和特点 了解Oracle Database 10g产品的特点 理解Oracle Database 10g产品的版本 理解Oracle Database 10g的可选产品的特点 理解和掌握Oracle管理程序包的特点,教学难点和重点,网格计算的概念和特点 Oracle Database 10g产品的特点 Oracle Database 10g产品的版本 Oracle Database 10g的可选产品的特点 Oracle管理程序包的特点,教学过程,1.1 Oracle产品的发展简史 1.2 网格计算的概念和特点 1.3 Oracle Database 10g的产品特点,1.1 Oracle产品的发展简史,Oracle数据库系统是世界上最早商品化的关系型数据库管理系统,是数据库专业厂商Oracle公司的核心产品 1991年,Oracle在中国成立了Oracle中国独资公司,即北京甲骨文软件系统有限公司。 1996年,Oralce公司成功地推出了专门面向中国市场的数据库产品,即Oralce 7。 1997年,Oracle公司推出了基于网络计算的数据库产品,即Oracle 8。 1999年,针对Internet技术的发展,Oracle公司推出了第一个基于Internet数据库Oracle 8i。 2001年,Oracle公司又推出了新一代Internet电子商务基础架构Oracle 9i 2003年9月,Oracle公司发布了Oracle Database 10g,1.2 网格计算的概念和特点,引起网格计算的根源 网格计算的概念 网格计算的基本特点。,网格计算的根源,企业IT不断承受着使用越来越少的资源做好越来越多事情的压力。变化是持续的,公司需要快速地适应这些变化以保持竞争力。同时,对于可用性和性能的需求在不断增长,但是公司的财政预算在紧缩。为了应付计算需求的不可预测性和即时性,公司一般扩大服务器规模来适应高峰负载,并为IT组织配备人员来处理即席请求。 为了解决这些问题,出现了一种新的计算模型,即网格计算模型。,网格计算的概念,网格计算的核心思想是计算应当和公用设施一样可靠、深入和透明。用户的数据或者应用程序在哪里,或者什么计算机处理用户发出的请求变得无关紧要。用户将能够请求信息或者计算,然后发布它随时按需发布。 网格计算的目标是使计算成为一项公用设施 一种无处不在的数据日用品。因此,它有了这个新名称:“网格”。,网格计算的特点,每一层计算堆栈上的虚拟化; 根据策略和动态需求来供应工作和资源; 集中资源以提高利用率; 自我调整和修补的自适应软件; 统一管理和供应。,1.3 Oracle Database 10g的产品特点,版本特点 可选产品 Oracle管理程序包,版本特点,Oracle Database 10g提供的四个版本分别是: Oracle Database 10g标准版1 Oracle Database 10g标准版 Oracle Database 10g企业版 Oracle Database 10g个人版,可选产品,Oracle真正应用集群(Real Application Cluster,RAC) Oracle 高级安全性为Oracle数据库提供了网络加密和一整套功能强大的验证服务 Oracle标签安全性为详细的访问控制提供了先进和灵活的基于行标签的安全性 Oracle OLAP是一个可伸缩、高性能的计算引擎 Oracle数据挖掘允许公司构建高级商务智能应用程序 Oracle Spatial允许用户和应用程序开发人员将他们的空间数据紧密集成到企业应用程序中 Oracle Programmer为构建访问和操作Oracle Database 10g的企业应用程序的开发人员提供了一组丰富的接口,Oracle管理程序包,Oracle更改管理程序包 Oracle诊断程序包 Oracle调整程序包 Oracle配置管理程序包,第2章 安装和配置,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,了解和掌握安装的环境要求 理解Oracle Universal Installer工具的特点 了解安装过程的特点 掌握如何升级以前的版本数据库技术 理解和掌握验证安装是否成功 技术,教学难点和重点,安装的环境要求 Oracle Universal Installer工具的特点 详细的安装过程 如何升级以前的版本数据库 如何验证安装是否成功,教学过程,2.1 安装前的要求 2.2 安装过程 2.3 升级到Oracle Database 10g 2.4 验证安装结果,2.1 安装前的要求,硬件环境要求,检查当前系统的配置,第一,确认物理RAM的大小。 第二,确认所配置的页面文件大小 第三,确定temp目录可用的磁盘空间大小 第四,确定当前系统可用的磁盘空间大小,软件环境要求,详细的软件环境要求:如表2-2所示 系统体系架构 操作系统 编译器 网络协议,2.2 安装过程,Oracle Universal Installer的特点 详细安装过程,Oracle Universal Installer的特点,这是一个基于Java引擎的安装工具。该工具提供了所有基于Java平台的安装解决方案,允许用户在多种平台上执行Oracle的安装; 该安装工具可以自动地检测组件之间独立性,并且根据选择的产品和安装类型来执行安装过程; 在安装过程中,预先确定的产品集可以很方便地由用户来确定; 可以使用该安装工具指向一个拥有Oracle Database 10g系统的URL,以便进行远程安装; 使用该工具安装的产品可以被轻易地使用该工具卸载; 支持多种不同的Oracle安装主目录; 该工具可以检测操作系统环境使用的语言,并且根据这种语言来执行安装操作; 支持使用响应文件的无人参与的“无提示”安装。,详细安装过程,把Oracle光盘插入到光驱中,双击setup命令,则启动Oracle Universal Installer工具 “指定文件位置”对话框 “选择安装类型”对话框 “选择数据库配置”对话框 “指定数据库配置选项”对话框 “选择数据库管理选项”对话框 “指定数据库文件存储选项”对话框 “指定备份和恢复选项”对话框 “指定数据库方案的口令”对话框 “概要”对话框 “安装”对话框,2.3 升级到Oracle Database 10g,使用Oracle Database Upgrade Assistant (DBUA)。以前,该升级工具的名称是Oracle Data Migration Assistant; 执行手工升级; 使用exp/imp工具,可以把当前数据库中的数据拷贝到Oracle Database 10g的新建数据库中; 使用SQL*Plus的copy命令或create table as select命令可以把当前数据库中的数据拷贝到Oracle Database 10g的新建数据库中,2.4 验证安装结果,在注册表中查看Oracle Database 10g系统的配置信息; 在程序组中查看其已安装的工具; 在控制面板中查看Oracle Database 10g系统的服务; 查看其安装主目录中的内容。,第3章 Oracle Database 10g的新增功能,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,理解和掌握服务器可管理性方面的新增功能; 理解和掌握性能调整方面的新增功能; 理解和掌握安全性方面的新增功能; 理解和掌握可用性和可恢复性方面的新增功能; 理解和掌握商业智能方面的新增功能; 理解和掌握应用开发方面的新增功能。,教学难点和重点,服务器可管理性方面的新增功能的特点 性能调整方面的新增功能的特点 安全性方面的新增功能的特点 可用性和可恢复性方面的新增功能的特点 商业智能方面的新增功能的特点 应用开发方面的新增功能的特点,教学过程,3.1 服务器可管理性 3.2 性能调整 3.3 安全性 3.4 可用性和可恢复性 3.5 商业智能 3.6 应用程序开发方面 3.7 其他新增的数据库功能,3.1 服务器可管理性,服务器的可管理性提高,就是指数据库管理人员管理数据库的操作变得更加简单和方面。 在服务器可管理性方面,Oracle Database 10g系统新增的主要内容包括: 统计采集 刷新高速缓冲存储器 数据库资源管理器的新功能 调度器的改变 用户可配置的默认标空间 重命名表空间 删除数据库 大LOB 自动化撤销保留 压缩联机段 使用新的联机重定义功能,统计采集,Oracle Database 10g提供了一些可以帮助用户采集数据库统计信息的新功能。这些新功能包括: 自动化采集统计信息 采集数据字典统计信息 dbms_stats程序包新增功能 监视数据库中表行为的新功能,刷新高速缓冲区存储器,在Oracle Database 10g以前,如果希望刷新数据库的高速缓冲区存储器,那么必须首先关闭数据库,然后再打开数据库。实际上,这种关闭后重启的做法,会严重影响到应用程序的性能、断开正在连接的用户。现在好了。在Oracle Database 10g中,可以使用带有参数flush buffer_cache的alter system来刷新高速缓冲存储器,数据库资源管理器的新增功能,在Oracle Database 10g系统中,Database Resource Manager(数据库资源管理器)增加了一些新功能。这些新功能包括: 重新返回原始消费者组 设置消费者组的闲暇超时 创建从指定消费者组到指定会话的映射,调度器的改变,Oracle Database 10g提供了一种新的调度作业的方法,即提供了调度器(Scheduler)。 该调度器可以通过新增的dbms_scheduler程序包执行。 该程序包取代了以前使用的dbms_job程序包。,用户可配置的默认表空间,在Oracle Database 10g系统中,提供了用户可配置的默认表空间。可以使用alter database set default tablespace命令来完成这种操作。 一旦配置了一个新的默认表空间,那么所有新用户将被指向该默认的表空间,而不是system表空间。 这种功能增强了使用表空间的灵活性。,其他新增功能,在服务器管理方面,除了前面讲述的新增功能之外,还包括: 删除数据库 提高LOB对象的限制 自动化重做保留 联机压缩段等,3.2 性能调整,性能调整就是优化Oracle RDBMS系统的操作性能。为了增强Oracle RDBMS的性能,系统在很多方面有了改变。这些变化包括: 在等待接口方面的增强 数据库通用管理基础设施 自动化的SGA调整 新增的跟踪功能 预排序的散列集群 在共享的服务器架构方面的改进,在等待接口方面的增强,在Oracle Database 10g系统中,为了辅助用户提高系统性能,系统提供了一些新的数据库视图和修改了一些原有的视图。这些经过修改的视图包括v$event_name、v$session、v$session_wait,新增的视图包括v$session_wait_history、v$session_wait_class、v$system_wait_class。另外,还新增了一些直方图视图,即v$event_histogram、v$temp_histogram和v$file_histogram。,数据库通用管理基础设施,在Oracle Database 10g系统中,新增的Common Management Infrastructure(CMI,通用管理基础设施)带来许多性能方面的好处。通过CMI,Oracle Database 10g系统可以监视和调整数据库的性能。 CMI包括了很多组件,即Automatic Workload Repository(AWR,自动化负载中心库)、基于服务器的顾问程序、自动化的任务管理、服务器端的警报等。自动化的任务管理主要是通过调度器完成的,AWR,自动化SGA调整,不知道你是否问过这样的问题:“我应该为数据库的高速缓冲区存储器分配多少内存?”ASMM(Automatic Shared Memory Management,自动化共享内存管理)工具可以做到这一点儿。如果你希望简单点儿,那么可以定义sga_target参数来完成这件工作。,新增的跟踪功能,为了方便对用户会话的跟踪操作,Oracle Database 10g系统提供了新的跟踪功能。通过使用dbms_monitor程序包的client_id_trace_enable过程,用户可以跟踪某个用户的所有会话。,预存储的散列集群,如果用户自己的应用程序可以快速、反复地访问同样顺序的数据,那么可能非常希望按照预存储的散列集群方式浏览数据。在Oracle Database 10g系统以前,没有办法控制访问堆表中的数据。除非用户在自己的SQL语句中包括了order by子句,否则只能按照无序的方式访问数据。 Oracle Database 10g系统对此做了改进。在10g系统中,提供了一种预存储的散列集群方式。这种方式可以按照用户定义的顺序存储数据。如果在SQL语句中包括了order by子句,那么系统的性能就大大地受到了影响。使用预存储的散列集群方式,可以大大提高按照顺序方式访问数据的效率。,共享服务器架构的变化,在共享服务器架构方面,Oracle Database 10g系统改变了共享服务器的配置、废弃了MTS参数、新增了一个v$dispatcher_config视图以及新增的对共享服务器会话的跟踪。下面简述这些变化。,3.3 安全性,安全性是数据库系统的一个非常重要的指标。没有安全的数据库,也就谈不上对数据库系统的保护。在Oracle Database 10g系统中,新增的安全性方面的功能包括: 在虚拟的私有数据库方面的新增功能 增强的审计功能 新增的目录功能,新增的虚拟私有数据库功能,虚拟私有数据库(Virtual Private Database)简称VPD。在Oracle Database 10g系统中,增强了VPD功能。这些新增的功能包括:列级隐私、新的VPD策略和支持并行查询。,增强的审计功能,在Oracle Database 10g系统中,增强的审计功能包括两个方面,第一,在dba_audit_trail视图中增加了一些新列,使得审计结果更加完整;第二,对审计粒度的改变。,新增的目录功能,远程认证的用户被称为目录用户。目录用户是在数据库外部认证的。当某个企业用户访问数据库时,该用户可以通过Oracle Internet Directory(OID)认证,而不是通过数据库认证。 在Oracle Database 10g系统中,提供了认证目录用户的新方式。这些新方式包括: 基于口令的认证 基于Kerberos的认证 基于X.509v3证书的认证,3.4 可用性和可恢复性,系统的可用性就是指系统正常运行的时间。正常运行的时间越长,系统的可用性就越高。系统的可恢复性是指系统在遭到破坏之后,迅速恢复正常状态的能力和速度。在可用性和可恢复性方面,新增的主要功能包括: 在数据库备份和恢复方面的改进 RMAN的新增功能 新增的闪回功能(在本书后面第16章中详细介绍) 新增的事务恢复监视功能 新增的数据保护功能,数据库恢复方面的增强,在Oracle Database 10g系统中,与数据库备份和恢复有关的新增功能包括: 使用resetlogs命令使得恢复操作更加简单 alter database archivelog命令的变化 Oracle Database 10g系统的backup命令的变化。,在RMAN方面的增强,可以使用闪恢复区 使用备份拷贝和快速恢复 使用catalog和uncatalog命令 在RMAN中删除数据库 在RMAN中注销数据库 制作和使用RMAN备份拷贝 配置默认的磁盘备份类型 增强了增量备份功能 恢复非备份操作的数据文件 错误报告方面的增强 压缩RMAN备份,新增的事务恢复监视功能,Oracle Database 10g系统增强了对事务回滚的监视,并且可以提供有关恢复和回滚操作的历史信息。这样,用户可以确定恢复期间操作的工作量。这种监视操作可以通过v$fast_start_transaction视图和v$fast_start_servers视图来完成。 v$fast_start_transaction视图存储了有关数据库恢复时的事务信息。 v$fast_start_servers视图存储了有关数据库服务器执行的恢复操作的信息。,增强的数据保护功能,实现物理备用数据库和逻辑备用数据库的实时重做日志应用 新增了valid_for属性 增强的重做日志传输功能 增强的备用数据库功能 启动备用数据库方面的变化 直接写入备用重做日志方面的增强,3.5 商业智能,商业智能是当前的一个热门话题,涉及到了知识管理的领域。商业智能程度的高低,也是衡量一个数据库产品发展的程度。在Oracle Database 10g系统中,新增的商业智能方面的功能包括: 新增的Oracle数据泵(本书后面第18章介绍,这里就不详细讲述了) 新增的大文件表空间 新增的可跨平台传输的表空间 增强的合并功能 增强的外部表功能 增强的物化视图和汇总管理DDL的功能 增强的分区管理功能,新增的大文件表空间,大文件表空间(Bigfile Tablespaces,BFT)是Oracle Database 10g系统中新增的功能。一个普通的表空间可以包含一个或多个数据文件,但是一个BFT只能包含一个数据文件。BFT的最大值随着数据库块的尺寸不同而不同,变化范围是从8TB到128TB。BFT要么是一个本地管理的表空间,要么是一个重做日志表空间,要么是一个临时表空间。,可跨平台传输的表空间,Oracle Database 10g现在提供了跨平台移动表空间的功能。作为一个DBA,想想看,能够把Windows上Oracle数据库的表空间移动到Solaris上的Oracle数据库中,这是多么令人高兴的。这种新增的可跨平台传输的表空间,有许多的好处: 有效地在不同的内容提供系统之间出版数据 轻易地在数据仓库、数据集市、OLTP系统之间移动数据 简单地跨平台移动数据库,增强的合并功能,Oracle Database 10g增强了merge语句的功能。这些新增的功能包括:可以省略update或insert子句;可以使用条件update子句和insert子句;可以使用on关键字指定合并条件;增强了可选的delete子句。,增强的外部表功能,有关外部表增强的功能包括:可以把数据库中的数据写入到外部表中,可以在外部表上执行并行操作,有选择地引用外部表中的数据。,新增的物化视图和查询重写功能,Oracle Database 10g系统新增了许多与物化视图和查询重写有关的功能。这些增强的功能包括: 增强的分区变化跟踪(partition change tracking,PCT) 增强的查询重写功能 增强的物化视图快速刷新功能 增强的DDL语句功能,增强的分区功能,适应式索引表的增强 散列分区式全局索引 分区式索引的维护等,3.6 应用程序开发方面,在SQL、PL/SQL等应用程序开发方面,也有许多新增的功能。这些新增的应用程序开发功能包括: 增强的块绑定操作 新增的SQL和PL/SQL正规表达式 新增的大小写敏感和音调敏感搜索功能 新增的用户指定的引号 新增的PL/SQL程序包 PL/SQL编译器,增强的块绑定操作,使用块绑定操作可以提高PL/SQL语句的操作性能。在块绑定操作方面,Oracle Database 10g提供了2个方面的新功能 处理稀疏集合 新的异常处理,新增的SQL和PL/SQL正规表达式,提供了在SQL和PL/SQL语句中使用正规表达式的功能。这些正规表达式可以使用标准的正规表达式的语法。 在Oracle Database 10g系统中,可以通过一些新增的函数来使用这些正规表达式。,根据大小写和音调排序,现在,Oracle Database 10g系统支持按照大小写排序和音调排序。使用nls_sort参数可以执行这种排序操作。注意,对于音调排序,使用_ai后缀;对于大小写排序,使用_ci后缀。,新增的用户指定的引号,SQL语句中可以包含文字引号,例如Johnsonss book。在10g以前,文字引号必须是双引号,即Johnsonss book。这种方式使得代码看起来不太舒服,甚至还可能引起其他错误。 Oracle Database 10g系统提供了一种解决这种问题的方案。单引号可以被任意的单个或多个分隔符代替。分隔符的定义是:引号运算符q,加上引号,再加上指定的引号替换符。,新增的PL/SQL程序包,在Oracle Database 10g系统中,新增了许多PL/SQL程序包。部分新增的程序包包括: dbms_advanced_rewrite dbms_advisor dbms_datapump dbms_dimension dbms_file_transfer dbms_frequent_itemset dbms_frequent_itemset dbms_monitor dbms_scheduler,新增的PL/SQL编译器功能,现在,PL/SQL代码的编译结果存储在Oracle Database 10g系统中,也就是说,可以作为BLOB数据存储在数据库中。因此,PL/SQL代码的执行效率非常高。另外,这种本地编译结果也可以存储用在Real Application Clusters(RAC)环境中。,3.7 其他新增的数据库功能,了前面介绍的新增功能之外,还包括许多功能。这些新增的主要功能包括: 增强的工作空间管理器 增强的流功能 增强的SQL*Plus功能 新增的SQL语句 在returning子句中使用合计函数,第4章 体系结构,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,理解和掌握如何连接到数据库实例 理解服务器进程的作用和特点 理解Oracle文件系统的结构层次 理解Oracle Database 10g是如何管理内存的 了解后台进程的作用 了解Oracle Database 10g系统新增的进程,教学难点和重点,如何连接到数据库实例 服务器进程的作用和特点 Oracle文件系统的结构层次 Oracle Database 10g是如何管理内存的 后台进程的作用 Oracle Database 10g系统新增的进程,教学过程,4.1 概述 4.2 连接数据库实例 4.3 服务器进程 4.4 文件系统 4.5 内存区域 4.6 后台进程,4.1 概述,Oracle系统的体系结构是指组成Oracle系统的主要组成部分和这些组成部分之间的关系以及这些部分的工作方式。 在Oracle系统的体系结构中,主要涉及下面5个组件: 连接数据库实例的能力。 服务器进程。 文件系统的结构层次。 内存区域的管理,尤其是系统全局区域(system global area,SGA)的特点和作用。 后台进程。,4.2 连接数据库实例,用户进程 Oracle监听器 Oracle网络客户,用户进程,用户进程(User Process)可以看作是一些试图连接数据库的软件,例如客户工具。用户进程可以使用Oracle Net Services(Oracle网络服务)与数据库进行通讯。Oracle Net Services是一组通过网络连接协议提供网络连接的组件。对应用开发人员和数据管理员来说,Oracle Net Services屏蔽了不同硬件平台上设置不同网络的复杂性。,Oracle监听器,Oracle监听器(Listener)是一个运行于Oracle数据库服务器上的进程,其职责是监听来自于客户应用的连接请求。 客户负责在初始化连接请求中向监听器发送服务名称。该服务名称是一个标识符,它可以唯一地标识客户试图连接的数据库实例。当然,Oracle监听器不仅仅能够监听数据库实例,而且还可以监听其他服务,例如HTTP服务器和IIOP服务器。,Oracle网络客户,对于SQL*Plus、Oracle Enterprise Manager、Oracle Net Manager这些客户工具来说,可以使用Oracle Net Services客户适配器与Oracle数据库进行交互。,4.3 服务器进程,当Oracle Net Services接收到用户进程的连接请求之后,就会将用户进程路由到一个服务器进程(Server Process)。服务器进程负责在用户进程和Oracle实例之间调度请求和响应。当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。 在专用服务器(Dedicated Server)模式中,系统会向每个要与数据库进行连接的用户进程赋予它自己的专用服务器进程。 在共享服务器模式中,有一个调度程序组件。该组件负责在用户进程与服务器进程之间进行路由。,4.4 文件系统,在Oracle数据库的进程的日常操作中,该进程使用数据词典、应用数据、用于数据库启动的参数、事务处理日志、管理数据库物理结构的文件以及其他类型的文件。,参数文件,参数文件(Parameter Files)用于在启动实例时配置数据库。当建立数据库的时候,用户就可以运行初始化文件,该文件规定了数据库中所使用的各种设置值。这些设置包括数据库实例名称(SID)、数据库主要文件的位置、实例所使用的主要内存区域的大小等。该文件的名称通常为init.ora。,控制文件,控制文件(Control Files)是Oracle服务器在启动期间用来标识物理文件和数据库结构的二进制文件。控制文件提供了建立新实例时所需要的文件目录。Oracle系统可以在常规的数据库操作期间,更新控制文件,以便下次使用。 当用户建立控制文件时,最好建立多个控制文件副本。,数据文件,数据文件是用来存放用户数据的地方。这些数据文件对于用户数据的稳定性和完整性十分重要。如果失去了这些数据文件,用户就不会有数据了,当然也就不会有数据库了。 每一个数据库至少有一个与之相关的数据文件。通常情况下,一个数据库有多个数据文件。为了理解Oracle系统是符合组织文件的和如何组织数据的,那么必须理解什么是表空间(Tablespace)、段(Segment)、盘区(Extent)、块(Block)等用于保存数据库对象的分配单元。,表空间,表空间是用户可以在Oracle系统中使用的最大的逻辑存储结构。用户在数据库中建立的所有内容都会存储在表空间中。每个Oracle数据库都提前配置了system表空间,它存储了数据字典和系统管理信息。一般地,用户和应用程序使用自己的表空间来存储数据。写入到临时表中的数据、为大规模排序操作写入磁盘的数据块以及其他许多类型的临时数据都会写入到表空间中。,段,段是用户建立的数据库对象的存储表示。用户建立的每一个表都会有一个在表空间中存储的逻辑段。为用户所建立的对象生成的段都要在磁盘上占用空间。在Oracle系统中,有3种类型的段,即数据段、临时段和回滚段。 数据段是存储表、索引、簇、表分区等常规应用数据的地方。,盘区,段是由一个或多个盘区构成的。盘区是用来为段存储数据的逻辑上连续的数据块的集合。当建立数据库对象时(无论如何,该对象都会消耗空间),系统就会建立一个或多个盘区来存储数据。盘区数量和盘区大小可以在正在建立的对象的storage子句中规定。 在Oracle系统中,默认的表空间的盘区管理风格是本地化管理,而不是字典管理。,数据块,数据块代表了数据库中最小颗粒的逻辑数据存储层次。在数据块层次上,才是盘区结构。盘区是由连续的数据块集合构成,而盘区构成了段,段则构成了表空间,表空间构成了数据库。,重做日志文件,重做日志文件对Oracle数据库至关重要,他们是数据库的事务日志。重做日志文件仅用于恢复数据库。当实例或介质失败时,使用重做日志文件来维护数据库。 如果关掉了数据库所在机器的电源,造成实例失败,Oracle将使用联机重做日志,以将系统恢复到电源停止之前的那一刹那。如果包含数据文件的磁盘驱动器发生了永久性故障,那么Oracle将使用归档的重做日志,与使用联机重做日志一样,将驱动器的备份及时恢复到那一时刻点。,临时文件,在Oracle系统中,临时文件是一个特殊类型的数据文件类型。当内存不足于在RAM中保存一个大规模排序操作的中间结果或结果集时,Oracle使用临时文件来保存他们。永久数据对象,例如表或索引,是不会存储到临时文件中的,但是临时表或临时索引的内容则可能存储到临时文件中。,Oracle管理文件,使用Oracle管理文件并不阻止数据库管理员使用以前的文件管理方式。用户仍然可以为表空间、重做日志文件和控制文件规定明确的文件名。,4.5 内存区域,在Oracle系统的体系结构中,有许多不同的内存区域。不同的内存区域用于不同的目的。Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。理解内存区域的目的,有助于理解数据库操作期间的数据和进程流程。在Oracle实例中,3个主要内存区域是: 系统全局区域(system global area,SGA) 程序全局区域(program global area,PGA) 用户全局区域(user global area,UGA),系统全局区域,系统全局区域实际上是内存中的一块区域,由系统自动分配,用来存储由数据库进程共享的数据库信息。它包含了Oracle服务器的数据和控制信息。该区域位于Oracle服务器所在的计算机的虚拟内存中。系统全局区域的结构示意图如图4-4所示。由图4-4可知,系统全局区域由数据块缓存区、重做日志缓存区、共享池、大型池等4部分组成。,系统全局区域的结构示意图,程序全局区域和用户全局区域,程序全局区域是为单独的服务器进程存储私有数据的内存区域。与所有服务器进程都可以访问的共享内存区域SGA不同,数据库写入器、日志写入器和许多其他后台进程,都只为各个服务器进程提供一个PGA。PGA只能由他们的服务器进程访问。 用户全局区域是用于存储会话状态的内存区域。UGA的位置依赖于服务器是运行在共享服务器模式中,还是专用服务器模式中。在专用服务器模式中,UGA会在PGA中分配,只能够由服务器进程访问。,4.6 后台进程,进程监控器,进程监控器(process monitor,PMON)。PMON的主要职责是监控服务器进程和注册数据库服务。 监控服务器进程,确保能够销毁发生损坏或出现故障的进程,释放这些进程占用的资源。 在主机操作系统上使用Oracle监听器注册数据库服务,系统监视器,系统监视器(system monitor,SMON)的主要职责包括重新启动系统、清除临时段、执行盘区结合等。 在出现故障实例的情况下,SMON负责重新启动系统,执行崩溃恢复。这项职责包括回滚未提交的事务处理,为实例崩溃时还没有写入数据文件的事务处理在数据库上应用重做日志表项(来自于归档的重做日志文件)等任务。,数据库写入器,数据库缓存包含了由用户所使用的数据。数据块会从磁盘读入缓存,各种服务器进程会在那里对他们进行读取和修改。当要将这些缓存中的数据块写回到磁盘时,数据库写入器(database writer,DBWn)负责执行这些数据的写入。,日志写入器,日志写入器(log writer,LGWR)负责向在线重做日志文件中记录索由数据库的已提交事务处理。该进程会将所有数据从重做日志缓存中写入到现行的在线重做日志文件中。日志写入器会在下面4种不同情况下执行写入操作: 事务处理进行提交; 重做日志缓存已经填充了1/3; 重做日志缓存中的数据量达到了1MB; 每3秒的时间。,归档器,这就是引入归档器(archiver,ARCn)的原因。大多数数据库产品都会运行在archivelog模式中。该模式可以把所有日志文件归档,而不只是在没有进行备份的情况下重新使用他们(noarchivelog模式)。归档器会随着数据库的运行来完成其工作,有效地采用热备份或在线备份。不需要关闭数据库就可以运行归档器,因为它会随着记录数据库改变日志而工作。,检查点,检查点(checkpoint,CKPT)进程负责使用最新的检查点信息更新所有的控制文件和数据文件标题。这种操作称为检查点。,作业队列协调器和作业进程,Oracle提供了在Oracle中规划将要在数据库后台运行的进程或作业的功能。这些规划的作业可以在指定的日期和时间运行,并且可以为随后的执行指定时间间隔。 作业进程可以通过作业队列协调器(job queue coordinator,CJQ)的进程来建立和管理。CJQ能够启动最多1000个作业队列进程,即从J000到J999。,恢复器,在单独的Oracle实例中,PMON负责周期性地启动,来判断是否有服务器进程发生故障,必须清除实例中的事务处理数据。对于分布式事务处理,这项工作就由恢复器(recoverer,RECO)进程完成。,新增的进程,在Oracle Database 10g系统中,新增了ARB、ASMB、CTWR、MMAN、MMON、RBAL、RVWR等进程。这些新增进程的主要作用如表4-2所示。,第5章 SQL基础,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,理解和掌握SQL的基本概念和作用 理解SQL与SQL*Plus、PL/SQL之间的关系 掌握检索数据技术 掌握排序和分组数据技术 掌握插入、更新和删除数据技术,教学难点和重点,SQL的基本概念和作用 SQL与SQL*Plus、PL/SQL之间的关系 检索数据 排序和分组数据 插入、更新和删除数据,教学过程,5.1 概述 5.2 select语句 5.3 修改数据 5.4 子查询,5.1 概述,SQL是结构化查询语言(structure query language)的简称,是关系型数据库管理系统中最流行的数据查询和更新语言。用户可以使用SQL语言在数据库中执行各种操作 从SQL的出现到现在,已经出现了许多不同版本的SQL语言。最早的版本是由美国IBM公司的San Jose研究所提出的,该语言的最初名称是Sequel。因此,可以说SQL语言并不是Oracle产品独有的。但是,SQL语言是由Oracle公司第一个商品化的。,5.2 select语句,基本语法、规则和执行方式 执行select语句 使用where子句 使用order by子句 合计计算 使用group by和having子句 连接查询 集合运算符,基本语法、规则和执行方式,在SQL语言中,最简单的语句是select语句。使用select语句可以检索数据库中的信息。具体地说,使用select语句可以完成选择、投影、连接等运算 在Oracle系统中,可以采用下面4种方式的一种来执行SQL语句: 在子句的最后添加分号(;) 在缓存区的最后一行的后面放置斜杠(/) 在SQL提示符后面放置斜杠(/) 在SQL提示符后面使用run命令,执行select语句,如果在select子句后面使用星号(*),那么表示检索表中所有的数据,包括所有的列和所有的行。 当然,也可以在select子句后面列出将要检索的数据列名。 select子句和from子句都是必须的,使用where子句,为了提高查询语句的效率,总是希望得到的数据就是我们要的数据,一些无关的数据最好不要出现在结果集中。如果结果集中出现了大量无关的数据,那么会带来许多消极的影响,例如:数据太多查询起来比较麻烦、数据在网络上传输由于数据流量过大引起传输速度降低而成本升高等。 使用select语句中的where子句可以限制数据量,实际上,select语句中的where子句可以用来指定检索数据的条件。,使用order by子句,在前面介绍的数据检索技术中,只是把数据库中的数据直接地取出来。这时,在结果集中的数据的排列顺序是由数据的存储顺序决定的。但是,这种存储顺序经常不符合我们的各种业务需要,因此需要对数据库中的数据在检索时进行排序。 在select语句中,可以使用order by子句执行数据排序操作。,合计计算,合计计算就是把一组数据作为计算的对象而执行的计算,这种计算包括求最大值、平均值、方差等。进行合计计算必须使用Oracle系统提供的合计函数。在Oracle系统中,可以使用的合计函数及其语法和功能描述如表5-5所示。,使用group by和having子句,可以在select语句中使用group by子句进行分组计算 having子句用来指定分组的条件,连接查询,连接查询的理论基础是笛卡尔乘积。 在连接运算中,根据指定的连接条件,可以把连接查询划分成三种类型: 内连接 外连接 自连接,集合运算符,在Oracle Database 10g系统中,如果希望把多个SQL查询语句合并成一个单独的查询与语句,增强SQL语句的查询能力,那么可以使用集合运算符来实现。 可以使用的集合运算符包括union、union all、intersect和minus。,5.3 修改数据,修改数据包括插入数据、更新数据和删除数据。 插入数据就是在指定的表中插入数据。虽然可以使用图形工具来完成数据的插入操作,但是在许多情况下,使用insert语句执行数据的插入操作更加方便和高效率。 如果表中的数据出现了错误,那么可以更新数据的错误。更新数据可以使用update语句。通过在该语句中指定表名称、列名称和条件,可以更新指定的数据。 如果数据没有使用价值了,那么就可以把数据删除。这种删除操作可以使用delete语句来完成。,插入数据,向表中插入数据,可以使用insert语句。insert语句的语法形式如下: insert into table (column, column) values (value, value),更新数据,如果表中输入的数据有错,那么可以使用update语句来更新。使用update语句更新表中数据的语法形式如下: update table set column = value, column = value where condition,删除数据,如果表中指定的数据没有用了,那么可以删除指定的数据。在Oracle Database 10g系统中,删除表中的数据使用delete语句。delete语句的语法形式如下: delete from table where condition,5.4 子查询,子查询基本用法 单行子查询 多行子查询 多列子查询,子查询基本用法,在select语句中使用子查询的语法形式如下: select select_list from table where expression operator (select select_list from table),单行子查询,在单行子查询中,该内查询只返回单行单列值,因此可以把这种子查询作为一个常量来对待。 在where子句中,可以使用单行比较运算符来比较某个表达式与子查询的结果。可以使用的单行比较运算符如表5-6所示。,多行子查询,子查询可以返回单列多行数据。执行返回单列多行数据的子查询被称为多行子查询。在这种多行子查询中,必须使用多行运算符来判断条件,而不能单行运算符。使用多行运算符可以执行与一个或多个数据的比较操作。 在Oracle系统中,可以使用的多行比较运算符如表5-7所示。,多列子查询,如果子查询返回了多个列的数据,那么称该子查询为多列子查询。 在一般的查询中,如果需要比较两个或两个以上的列,这时,必须在where子句中使用逻辑运算符写一个复合条件。但是,使用多列子查询可以把一个复合的where条件写成单个where子句。,第6章 SQL*Plus基础,Oracle Database 10g基础教程 清华大学出版社,教学目标 教学难点和重点 教学过程,教学目标,掌握启动SQL*Plus和设置其运行环境技术 掌握格式化输出结果技术 掌握执行各种SQL*Plus命令技术 掌握使用help命令技术 掌握使用SQL*Plus缓冲区技术 理解和掌握执行脚本技术,教学难点和重点,启动SQL*Plus和设置其运行环境 格式化输出结果 执行各种SQL*Plus命令 使用help命令 使用SQL*Plus缓冲区 执行脚本,教学过程,6.1 启动和设置SQL*Plus 6.2 格式化查询结果 6.3 使用SQL*Plus命令 6.4 内置的SQL*Plus Help命令 6.5 使用SQL*Plus缓冲区 6.6 脚本 6.7 SQL*Plus增强的功能,6.1 启动和设置SQL*Plus,在Oracle Database 10g系统中,可以使用两种方式启动SQL*Plus: 一种方式是命令行模式 另外一种方式是GUI方式 启动SQL*Plus之后,还可以设置其运行环境。,启动SQL*Plus,为了在命令行中启动SQL*Plus,可以从DOS中输入sqlplus命令。 也可以使用GUI工具启动SQL*Plus。从Windows的开始菜单中,选择“程序”| Oracle | Application Development | SQL Plus命令。这时打开Oracle SQL*Plus窗口,设置SQL*Plus运行环境,SQL*Plus运行环境就是SQL*Plus的运行方式、查询执行结果显示方式的总称。设置SQL*Plus运行环境,可以使得SQL*Plus更能按照用户的要求运行和执行各种操作。 SQL*Plus环境选项的默认值如表6-1所示。,6.2 格式化查询结果,SQL*Plus提供了大量的命令用于格式化结果集。这些命令包括column、pause、pagesize、linesize、feedback、numformat、long等。 本节将详细描述如何使用这些命令执行格式化查询结果。,column,column命令用来控制某个列的显示格式,其详细语法形式如下: column column | aliasoption,ttitle和btitle,使用ttitle命令和btitle命令可以设置报表的页眉和页脚。其语法形式和功能描述如表6-4所示。,pause,不同的查询语句可以返回不同的结果。有些查询语句可能会返回成千上万行数据。当SQL*Plus输出数据时,速度非常快,用户的眼睛很难跟上。如果查询结果所包含的数据超过用户屏幕一次可以看到的数据,那么用户就需要在

温馨提示

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

评论

0/150

提交评论