- 浏览: 225784 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
插上翅膀的小猪:
同意三楼的意见。
下载服务器上的文件-纯java处理 -
ITQCF:
一楼所言极是啊,encodeFileName这个方法为嘛找不到 ...
下载服务器上的文件-纯java处理 -
u011296404:
这个不适用与ie浏览器
下载服务器上的文件-纯java处理 -
冬天秋天:
博主 这个貌似在oracle 数据库下没有成功啊……
更新一个表的字段值等于另一个表的字段值的SQL语句 -
pangpang514:
WebUtils是在org.springframework.w ...
下载服务器上的文件-纯java处理
1、Oracle介绍
本章提供了针对Oracle数据库服务器的概述,包含以下主题
- Oracle数据库体系结构
- Oracle数据库特点
- Oracle数据库应用开发
Oracle数据库体系结构
Oracle数据库是将数据作为基本处理单元的集合。数据库的目标是存储和取回关系型数据。数据库服务器是解决数据管理问题的核心。通常来说,一个服务器在一个多用户环境中可靠的管理大量的数据,所以许多用户可以同时访问同一数据。所有的这些以很高的性能完成。一个数据库服务器还能阻止未经授权访问和提供针对失败恢复的有效解决方案。
Oracle数据库是第一个针对企业网格运算设计的数据库,它提供了最灵活最低成本的管理信息和应用的方式。企业网格计算提供了基于工业标准的、模块化的存储和服务器的大池。在这种体系结构下,每个新系统可以从组件池中快速提供。因此没有必要关注负载峰值,因为计算能力可以根据需要很容易的添加或者在资源池中重新分配。
Oracle数据库包含物理架构和逻辑架构。因为物理架构和逻辑架构是分离的,所以可以在不影响逻辑存储架构访问的情况下管理数据的物理存储。
下面部分包含下列主题:
- l Oracle网格架构概述
- l 应用程序架构概述
- l 物理数据库结构概述
- l 逻辑数据库机构概述
- l 模式和通用模式对象
- l Oracle数据字典概述
- l Oracle实例概述
- l 数据库访问概述
- l Oracle实用工具概述
Oracle网格架构概述
网格运算是一个新的IT架构,它创造出了更灵活、成本更低的企业信息系统。在网格架构下,独立的、模块化的硬件和软件组件的分组可以连接起来,并可以根据商业需求的改变来重新组织。
网格运算的目标是解决企业IT中的一些常见问题:应用竖井问题,会导致低利用率问题,零散的笨重系统问题,维护代价很高且很难改变,分散零碎的信息问题,它们无法企业内部作为一个整体来使用。
网格运算的优势:和其他运算模型相比,使用网格方式设计和实现的IT系统可以提供高质量的服务,更低的成本以及更大的灵活性。高质量的服务来源于去除了单点失败问题、健壮的安全基础和集中式协议驱动的管理。低成本来源于提高了资源使用效率和大大减少了管理和维护成本。在网格计算中,不存在针对特定任务分配一系列软件和硬件的现象,所有的资源都是池化的,可以按需分配,因而消除了设备使用低效和冗余设备的问题。网格运算还可以使用小型的单独的硬件组件,因而可以减少每个组件的成本,并可以根据需要更灵活的分配资源。
网格运算的定义
当你在池中处理特定特征的资源时,网格运算方式将类似IT资源的集合整体上作为一个单独的池。在标识单个系统和碎片信息问题上,网格运算在整体资源管理和独立资源控制的基础上获得了一个平衡。网格包含的资源如下:
- 基础:创建数据存储和程序执行环境的软件和硬件
- 应用程序:定义特定商业过程的程序逻辑和流程
- 信息:用来指导商业的所有类型数据的含义
网格运算的核心原则 网格运算和其他方式的运算比如大型机、客户端服务器系统,以及多层结构相比有两个独特的地方:虚拟化和可配置性
- 虚拟化:硬盘、应用组件、信息资源等这类单独的资源是按照资源类型被池化的,客户(人或者软件程序)可以抽象的调用它们。虚拟化意味着打破了客户和服务之间的资源的硬连接,可以在透明的给客户提供资源满足特定的需要。
- 可配置性:当客户通过虚拟层请求资源时,在后台一个特定的资源被标识为实现这个请求,然后这个资源被分配给这个客户。
信息、应用程序、基础设施这些资源虚拟化和配置方式针对资源的类型会有所不同,但是概念上是相同的。简单来说,每类资源在网格运算中获得的优势是不同的,但是所有的都具备高性能、低成本和升级灵活的特点。
基础设施网格:基础网格资源包括硬件资源和软件资源,硬件资源指存储、处理器、内存、网络设备等,软件资源是管理硬件的工具,比如数据库、存储管理、系统管理、应用服务器以及操作系统等。
虚拟化和可配置性意味着池化资源可以组织起来并按照协议分配给特定的客户。例如,一个协议可能对一个Web服务器分配足够的处理能力,因而它可以提供次秒级的处理时间。通过软件配置采取不同的方式来执行这个规则可以达到均衡所有客户请求的目的。
将基础资源看作一个单个的池并按照需求分配这些资源可以达到减少低效和冗余处理能力的目的从而节约成本。从整体上管理硬件和软件资源减少了工作成本和人为错误的机率。
跨多个不同的计算机的分布式计算和跨多个磁盘和磁盘组的分布式存储能能够避免单点失败问题。因此当一个单独组件失败,整个系统仍然保持可用。而且网格运算还能提供更多的选择,比如使用小型硬件组件如刀片服务器和低成本存储等,这些可以依次递减每个单独组件的成本,从而给企业提供更高的灵活性和更低的成本。
基础设施是网格运算的维度,它是最熟悉也最容易让人理解的,但是针对应用程序和信息来说也同样简单。
应用程序网格:网格中的应用程序资源是应用软件中的商务逻辑和流程控制的代码。他们可能是打包或定制程序,可能使用任何编程语言,反映任何级别的复杂程度。比如,软件从客户得到一个指令,发送一个确认,打印工资表校验、将特定客户的请求路由到特定的客户端的进程都是应用程序资源。
从历史上来看,应用程序逻辑曾经和用户接口代码、数据管理代码、进程或页面流程纠缠在一起,并且缺乏良好的接口定义,这些已经在大型应用程序上得到印证,很难修改并很难集成。
面向服务架构已经被看作是构建程序的超级模式,而且面向服务架构概念和网格运算的两个核心优势紧密相连。应用资源的虚拟化和可配置性包含将应用程序组件做为服务发布给多个客户使用,客户可能是人或者进程,接着将这些服务构建到更强大的商业流程中。
同样,网格运算对IT基础资源提供更好的重用性和更好的灵活性,网格运算将一系列应用逻辑看作一个资源,可以更好的重用应用程序功能,并在修改和构建新的组合应用时提供更好的灵活性。
不仅如此,将发布的服务集成起来的应用还能作为一个整体在商业上显示活动情况,因此进程是标准化的,可以跨地域、跨商务单位并且自动的提供端对端服务。这样通过不断提高的自动化和降低相异性可以构建更健壮的更低的成本商务过程。
信息网格:在基础设施和应用程序之后,网格运算的第三个维度是信息。今天,信息倾向于是跨组织的,所以很难将商业看作一个整体来回答顾客的基本问题。没有关于顾客是谁,想要购买什么的信息是没有意义的。
相反,网格计算将信息整体看作一个资源,和对待基础资源和应用程序资源一样,因而可以得到信息的潜在内容。信息网格包含企业中的所有数据,还包括数据定义的元数据。这些数据可能是结构化的、半结构化的和非结构化的,可以保存在任何位置,比如数据库、本地文件系统或者e-mail服务器,也可以被任何应用程序创建。
网格运算的核心优势针对信息和对基础设施和应用程序是一样的。基础网格检查网络的拥挤程度来控制多个服务器或者多个存储设备组合起来为单独的服务,而且也可以根据需要很容易的重新配置。一个面向服务的架构或者说应用程序网格使独立开发的服务或者应用程序资源能够合并为大型的商业过程,而且可以根据需要进行改变而不会终端组合应用的其他部分。同样,信息网格对信息资源和相关信息资源之间提供一种更好的利用信息之间固有联系的价值的方法,而且也可以根据条件改变来创建新的连接方式。
比如关系数据库是个早期的信息虚拟化技术。和它的前任网状数据库和层次数据模型不同,数据之间的所有的联系都是预先定义的,关系型数据库可以针对通用目的的信息资源的灵活访问途径。今天,XML对信息虚拟化走的更远,它通过标准的方式来使用元数据表达信息,这样就解除了创建和显示信息的应用程序和信息之间的硬关联。
信息配置技术包括数据队列、数据传播、复制、抽取-转换-加载(ETL),还有映射和清理工具来确保数据质量。一种数据中心的模式已经作为首选模式出现,它从多个活动数据源不停的同步操作型数据来集中的保存,这既能保存分散控制的灵活性,也可以建立真实数据的单一来源。
网格运算单独工作很好,协同更佳:使用网格计算管理任何单个的IT资源,不论是基础设施、应用程序还是信息,即使其他资源不采用网格管理,企业都可以实现高质量、更灵活、更低成本。比如没有必要重写一个应用程序来针对基础设施网格来获益。也可能只发布一个应用程序网格或者一个面向服务架构,不需要修改信息管理的方式和硬件定义的方式。
上述现象是可能的,但是针对所有资源使用网格运算可以获得更大的收益。比如,在您可以根据单独服务的资源需求设置协议或者针对同一个组合程序中但是基础设施处理方式不同的服务(某些时候只能通过应用程序网格和基础设施网格集成才能实现)来设置协议的话,应用程序网格会变得更有价值。另外,通过集成更多的信息到真实的单一数据源来构建信息网格只有在基础设施设计为网格方式才能健壮,所以它可以跨越当一个计算机的界限。
Oracle 10g数据库的网格计算
在网格计算的远景大道上,企业需要真实的解决方案来支持他们迁移到更灵活更高效的IT架构。Oracle 10g数据库软件家族提供了大量网格核心技术的实现来帮助企业开始网格运算。Oracle在企业整体架构上发布网格计算功能,提供健壮的安装基础、集中式管理、容易理解的、功能强大的开发工具以及通用的访问方法。Oracle 10g数据库包括:
- ¨ Oracle 10g 数据库
- ¨ Oracle 10g应用服务器
- ¨ Oracle 10g企业管理器
- ¨ Oracle 10g协同套件
虽然Oracle 10g的网格特征包含在上述产品列表中,下面的讨论集中在Oracle 10g数据库的网格计算能力
基础设施网格
¨ 服务器虚拟化:Oracle真正应用集群(RAC)使一个数据库在网格中多个集群节点中运行,将多个标准机器中的处理资源池化成为可能。Oracle在跨机器平衡负载的配置方面具备独特的灵活性,因为它是唯一一种不需要根据工作分区或分布数据的数据库技术。Oracle 10g Release 2软件在基于协议的均衡跨RAC实例方面得到了增强。
- ¨ 存储虚拟化:Oracle 10g数据库的特征Oracle自动存储管理(ASM)在数据库和存储之间提供了一个虚拟层,所以多个磁盘可以当作一个磁盘组处理,并且磁盘可以在数据库运行时动态增加或者移除。现有的数据会根据性能和调优的要求自动在现存磁盘上重新分布。在Oracle 10g Release 2中,ASM支持不同的软件版本的数据库访问同一个存储池。
- ¨ 网格管理:因为网格计算将多个服务器和磁盘池化,并将他们分配给不同应用目的。所以单独资源的最大程度上的自我管理和其他的管理功能集中化就非常重要。
Oracle 10g企业管理器的网格管理特征提供了管理组成一个逻辑组的多个系统的单一界面。网格控制器在网格中通过适当的软件堆栈来配置节点,并且集中的维护系统组的配置和安全设定。
网格管理的另一方面是如何兼顾高安全性和易维护性的管理用户标识。Oracle 10g标识管理器包含一个兼容LDAP的目录来委托管理,现在在Release 2中是联合标识管理器,所以一个单独的单点登陆功能可以跨安全区域进行安全共享。Oracle 10g标识管理器非常符合网格原则,通过单点登陆服务器实现了针对认证用户的中心应用,在这种情况下,基于委派的分布和联合控制的标识符来优化系统的维护和全部操作。
应用程序网格:
支持标准的Web服务。除了在Oracle 10g应用服务器中支持健壮的Web服务之外,Oracle 10g数据库还可以发布和支持Web服务。DML和DDL操作可以作为Web服务公布,而且数据库中的函数可以使一个Web服务看上去类似一个SQL行资源,能够使用强大的SQL工具来检索基于关系型数据和非关系型数据的WEB服务。
Oracle 10g 企业管理器提高了对面向服务架构的支持,包括监控和管理Web服务和其他管理员定义的服务、跟踪端对端性能和在问题发生时执行底层分析。
信息网格:
- ¨ 数据提供:信息的基础是数据,当客户无论在哪里需要它都需要提供。比如,用户可能是按地域分布的,这种情况下对数据的快速访问的重要性要高于访问同一资源。所以,数据必须在系统之间共享,可以接近实时也可以批量更新。Oracle的批量数据迁移工具是表空间传输和数据泵。
对更细维度的数据共享,Oracle 10g数据库的流技术能够捕捉数据库事务的改变并传递它们,因而可以在更新发生之后保持两个或者更多数据库拷贝的同步。它也可以和传统的数据共享技术统一成为一个单独的技术,例如消息队列、复制、事件、数据仓库装载、通知和发布者/订阅者模式等。
- ¨ 数据管理集中化:Oracle 10g数据库提供通过SQL和XML查询的通用访问途径,管理所有类型的结构化、半结构化和非结构化的信息和按照它最优的方式展现、维护和查询数据。Oracle依赖传统的关系数据库架构本地实现了OLAP立方体、标准XML结构、地理空间数据和无限大小的文件管理,因而虚拟化了数据展现。综合这些数据类型使得创建在不同信息类型之间的连接和创建传统的关系数据库连接是一样的。
- ¨ 元数据管理:Oracle数据仓库构建器不仅仅是个传统的创建数据仓库的批量ETL工具。它执行规则来提高数据质量、使用模糊识别来客户数据不一致现象、使用统计分析来推断数据档案。在Oracle 10g Release 2中,使用Oracle的流特征将元数据管理能力从数据拉调度提升到数据事务界别推送的级别。
Oracle系列的企业数据中心产品(如Oracle客户数据中心)可以提供实时的操作信息源之间的同步,所以企业在保留分离的系统和应用程序的时候拥有真实的唯一数据来源,分离的系统或应用可能是打包程序、历史遗留程序或定制程序的集合。除数据清理和调度机制之外,Oracle还可以针对特定类型的信息如客户、财务和产品信息提供格式良好的模式,这些经验可以从以往多年构建企业应用程序的经验中获得。
- ¨ 元数据接口:Oracle 10g软件家族新增加了Oracle企业搜索产品。Oracle 10g企业搜索在企业内部搜索所有的数据源,不论公开还是秘密信息,比如数据库服务器、文档管理服务器、文件系统、Web站点、数据库和应用程序,然后从所有的相关资源中返回给定的搜索条件的搜索结果。爬虫和索引程序针对每个数据源采用了启发式特征来推断所有企业信息的元数据,这些可以针对任何查询返回最相关的结果。
应用程序架构概述
使用数据库有两种通用方式:客户/服务器结构和多层结构。随着互联网计算在计算环境中越来越流行,许多数据库管理系统都移植到多层环境。
客户/服务器架构:
多处理器:使用多个处理器为一系列相关工作服务。分布式处理通过允许不同的处理器执行相关工作的不同部分来减少单个处理器的负载,进而在整体上提高系统的性能和处理能力。
一个Oracle数据库系统可以很容易在客户/服务器架构下的分布式处理中受益。在此架构下,数据库系统被分为两部分:前端或客户,和后端/服务器。
客户端
数据库应用程序的客户端负责将一个操作的请求提交给数据库服务器来执行。它负责请求、处理和展现服务器管理的数据。客户端工作站可以针对它的工作优化。比如,它不需要大的硬盘容量,或者它可以从图形处理能力上获益。
通常,客户端和数据库服务器在不同的计算机上运行,不过在PC上,通常很多客户端和服务器同时运行。
服务器端
服务器端运行Oracle软件,处理并发、共享的数据访问的功能请求。服务器接受和处理从客户端传送的SQL或者PL/SQL语句。管理这个服务器的计算机也可以根据它的任务进行优化,它需要大容量的磁盘和快速的处理器。
多层架构:应用服务器
一个多层架构包含下列组件:
- 一个客户端或者启动程序来开始一个操作
- 一个或多个应用服务器来执操作的一部分。一个应用服务器对客户端提供数据访问和执行部分查询处理,因而可以减轻一些数据库服务器的负载。它可以看作在客户端和多重服务器之间的接口,还能提供额外的安全性。
- 一个末端或者说数据库服务器来保存大部分操作使用的数据
这个架构需要应用服务器完成下列功能:
- u 确认客户端如浏览器的认证
- u 连接一个Oracle数据库服务器
- u 为客户端执行请求的操作
如果启用了代理认证,那么客户端的标识会在整个连接的各个层保持。
物理数据库结构概述
下面的部分阐述了Oracle数据库的物理数据库结构,包括数据文件、重做日志文件和控制文件。
数据文件:
每个Oracle数据库都包含一个或多个物理数据文件。数据文件包含所有的数据库数据。逻辑数据库结构中的数据如表、索引都物理存储在分配给这个数据库的数据文件上。
数据文件包含以下特征:
- 一个数据文件只能和一个数据库相关联
- 数据文件都有确定的特性集使他们在数据库空间耗尽的时候可以自动增长
- 一个或多个数据文件组成了一个数据库存储的逻辑单位叫表空间
当在Oracle的缓存中进行通常的操作和存储时,数据文件上的数据根据需要会被读取,然后数据在内存中共享,当数据库后台数据库写进程(DBWn)被唤醒时会一次将所有的数据写入恰当的数据文件。
控制文件
每个Oracle数据库都有一个控制文件。一个控制文件包含描述数据库物理结构的条目。比如,它包含下列信息:
- 数据库名称
- 数据文件和重做日志文件的名字和位置
- 数据库的创建时间戳
Oracle可以多路复用控制文件,就是说可以同时维护多个控制文件的拷贝,避免控制文件中出现错误的现象。
每次一个Oracle实例启动的时候,它的控制文件会标识出数据库和重做日志文件,重做日志文件必须是打开的,这样Oracle才能继续启动。如果数据库的物理组成被修改(例如一个新的数据文件或重做日志文件被创建),然后Oracle会自动更新控制文件来反映这个变化。控制文件也用于数据库恢复。
重做日志文件:
每个Oracle数据库都有一套两个或多个重做日志文件。这些重做日志文件共同作为数据库的重做日志。一个重做日志由重做条目组成(也叫重做记录)。
重做日志的主要功能是记录所有的数据改变。如果一个错误造成修改数据没有写入数据文件中,那么这个改变可以从重做日志中获得,所以工作永远不会丢失。
为避免重做日志本身出现错误,Oracle允许多路复用日志,所以两个或多个重做日志的拷贝可以保存在不同的磁盘上。
在系统或媒体出问题造成数据库数据没有写入数据文件的时候,重做日志的信息可以用恢复数据库。例如,如果一个意外断电中断了数据库操作,这时内存中数据没有写入数据文件中,数据就丢失了,当重新加电数据库打开丢失的数据可以恢复。通过应用Oracle数据库数据文件的最近的重做日志信息,Oracle可以修复数据库到断电的时刻。
恢复操作中应用的重做日志的操作叫做向前滚动。
归档日志文件
你可以启用自动归档重做日志的功能。Oracle在归档模式下会自动归档日志文件。
参数文件
Oracle建议创建一个服务器参数文件(SPFILE)作为维护初始化参数的动态定义手段。一个服务器参数文件允许你在服务器端磁盘文件数上保存和管理你的初始化参数。
警告和跟踪日志文件
每个服务器和后台进程都会能够写入相关联的跟踪文件。当一个进程检测到一个内部错误,它会将错误信息转储到跟踪文件。某些写入跟踪文件的信息是针对数据库管理员,而其他的信息是针对Oracle支持服务。跟踪文件信息还可以用来调整应用程序和实例。
警告文件和警告日志是特殊的跟踪文件。数据库的警告日志按时间记录消息和错误记录。
备份文件
恢复一个文件就是使用一个备份文件代替它。比较有代表性的是在媒体失败或用户错误损坏或删除了原始文件时需要重新恢复文件。
用户管理的备份和恢复需要您在实际恢复备份文件之前实际测试一下备份的恢复。
服务器管理的备份和恢复管理着备份进程比如备份调度以及恢复进程比如在恢复需要的时候应用正确的备份等。
逻辑数据库结构概述
逻辑存储结构包括数据块、区段、段,使用它们Oracle可以精密的控制磁盘空间的使用。
表空间
数据库将逻辑存储的单位称为表空间,它将相关的逻辑结构组织起来。比如表空间通常将所有的应用程序对象放在一起来简化某些管理工作。
每个数据库逻辑上包含一个或多个表空间,每个表空间会明确的创建一个或多个数据文件来物理存储表空间中的所有逻辑结构。表空间的数据文件大小总和就是表空间的总存储量。
每个Oracle数据库都包含一个SYSTEM表空间和SYSAUX表空间。Oracle在数据库创建时自动创建它们。系统默认会创建小文件表空间,也就是Oracle表空间的传统类型。SYSTEM和SYSAUX表空间都是小文件表空间。
Oracle还可以创建大文件表空间。这种方式允许Oracle包含由单个大文件组成的表空间,而不是多个小文件组成的表空间。Oracle数据库因而可以利用64位系统的能力来创建和管理超大文件。这样做的结果是Oracle数据库可以扩展到8E(百万兆,相当于1024*1024*1024GB)字节的级别。在Oracle管理文件下,大文件表空间使得数据文件对于用户来说完全透明。换句话说,你是在表空间上执行操作而不是数据文件上执行操作。
在线和离线表空间
一个表空间可以是在线(可访问)的,也可以是离线(不可访问)的。通常表空间都是在线的,所以用户可以访问表空间上的信息,有时表空间会被离线,这样会使得数据库的一部分不可用,但不影响剩余部分的可用性。这使得很多管理工作执行起来更容易。
Oracle数据块
Oracle保存数据的最小粒度是数据块。一个数据块对应物理数据库上的磁盘空间一定数量的字节。标准块的大小由初始化参数DB_BLOCK_SIZE指定。另外,您可以定义其他5个块大小。数据库都以数据块为单位来使用和分配空闲的数据库空间。
区段
下一个逻辑数据库空间的粒度是区段。一次分配的空间大小就是一个区段,它由特定数目的连续的数据块组成,用来保存特定类型的信息。
段
区段之上的逻辑数据库存储单位是段。一个段是针对一个特定的逻辑结构分配的一系列区段。下表描述了不同类型的段。
段
描述
数据段
每个非聚集表拥有一个数据段。所有的表数据保存在数据段的区段中。
对于分区表,每个分区有一个数据段。
每个聚集都有一个数据段。聚集中的每个表的数据都保存在聚集的数据段中。
索引段
每个索引都有一个索引段保存全部数据。
每个分区索引,每个分区都有一个索引段
临时段
当一个SQL语句需要一个临时数据库区域完成执行时Oracle会创建一个临时段。当语句执行完毕,系统会回收临时段的区段等候将来使用。
回滚段
如果你在自动回滚段管理模式下工作,数据库服务器会管理回滚空间使用的表空间。Oracle建议你使用自动回滚管理。
早期版本的Oracle使用回滚段来保存回滚信息。回滚段的信息可以用来数据库恢复时产生读一致的数据库信息和回滚未提交的事务。
针对回滚段的空间管理是复杂的,Oracle不赞成这种方式。这本书讨论回滚表空间方式的管理回滚;它降低了管理回滚段空间的复杂性,使得你只要控制回滚被覆盖之前要保留多长时间就可以了。
Oracle使用一个SYSTEM回滚段来执行系统事务。只存在一个SYSTEM回滚段,并且在创建数据库时自动创建,并在实例启动的时候总是在线。没有提供任何的手段来管理SYSTEM回滚段。
当段的现存区段满了之后Oracle会动态分配空间。换句话说,当一个段的区段都被使用之后,Oracle会针对这个段分配另外一个区段。因为区段是根据实际情况分配的,所以一个段中的区段在磁盘上可能是不连续的。
模式和通用模式对象概述
一个模式是数据对象的集合。一个模式被同名的数据库用户拥有。模式对象是直接指向数据库数据的逻辑结构。模式对象包括表、视图和索引这些结构(表空间和模式之间没有联系)。同一模式的对象可以在不同的表空间上,同一个表空间可能包含多个模式的对象。
在下面的部分某些最常用的模式对象的定义
表
表是一个Oracle数据库的基本数据存储单位。数据库表包含所有用户访问的数据。每个表包含列和行。一个表包含雇员数据库,例如可以有一个叫雇员号码的字段,这一列的每一行数据都是雇员的号码。
索引
索引是关联表的可选结构。创建索引可以提高数据检索的性能。如同本手册的索引可以帮助快速定位特定的信息一样,一个Oracle索引提供了一个访问表数据的途径。
当处理一个请求时,Oracle可以使用部分或者所有的可用索引来高效的定位请求行。在应用程序经常访问表的一部分行(例如所有薪水大于1000美元的雇员)或一个特定行是非常有用的。
索引在表的一列或多列上创建。索引创建之后,Oracle会自动维护和使用它。对用户来说,修改表数据(比如增加新行、更新行、删除行)会自动、透明的反映到相关索引。
视图
视图是一个或多个表或其他视图的数据的定制表示。一个视图可以看作是保存好的查询。视图并不包含实际数据。但是他们从他们依赖的表取得数据,如果视图还指向视图,就指向视图依赖表的数据,以此类推。
和表类似,视图可以有限制的被查询、更新、插入和删除数据。在视图上执行的所有操作都影响视图的基表。
视图可以通过限制对预先定义的表的行和列的访问来提供额外的安全级别。它们还可以隐藏数据复杂性和保存复杂的查询。
聚集
聚集是一个或多个物理存储在一起的表的组合,这些表共享公用的列并经常一起被访问。因为相关行物理存储在一起的,所以可以提高磁盘访问时间。
和索引一样,聚集不会影响应用程序设计。一个表是否是聚集的一部分对用户和应用程序来说是透明的。聚集表存储的数据和非聚集表存储的数据一样通过SQL访问。
同义词
一个同义词是任何表、视图、实体化视图、序列、存储过程、函数、类型、Java类模式对象、用户定义对象类型或者另外一个同义词的别名。因为一个同义词仅是一个别名,它并不像数据字典中定义的那样需要存储空间。
Oracle数据字典概述
每个Oracle数据库都有一个数据字典。一个Oracle数据字典是一系列用做数据库的只读参考的表和视图。例如,一个数据字典保存了数据库的逻辑和物理结构的信息。一个数据字典还保存下列信息:
- u Oracle数据库的有效用户
- u 关于数据库的表的完整性约束的信息
- u 一个模式对象分配的空间大小和使用了多少空间
一个数据字典在数据库创建的同时创建。为随时准确反映数据库的状态,Oracle针对特定的动作比如数据库结构被修改会自动更新数据字典。数据库依赖数据字典来记录、核实和管理后续工作。例如,在数据库操作过程中,Oracle读取数据字典来核实模式对象是否存在以及用户是否有足够的访问权限。
Oracle实例概述
一个Oracle数据库服务器由一个Oracle数据库和一个Oracle实例组成。每次数据库启动时,会分配一块叫系统全局区(SGA)的内存和启动一些Oracle后台进程。这些内存缓存和后台进程合起来就叫做一个Oracle实例。
真正应用集群:多实例系统
某些硬件架构(例如共享磁盘系统)使多台计算机可以共享数据、软件或外围设备。真正应用集群(RAC)是利用类似的结构来共享一个物理数据库的多个实例。对多数应用程序来说,RAC允许在多台计算机上的用户以更高的性能访问单个数据库。
一个Oracle数据库服务器使用内存结构和进程来管理和访问数据库。所有的内存结构都在构建数据库系统的计算机的主存里。进程是在这些计算机里的主存里的一些任务。
实例内存结构
Oracle创建和使用内存结构来完成一些任务。例如,内存存储了正在执行的程序代码和用户共享的数据。Oracle基本的两个内存结构是系统全局区(SGA)和程序全局区(PGA)。下面的部分会详细解释他们。
系统全局区
系统全局区(SGA)是一个共享内存区域,保存了一个Oracle实例的数据和控制信息。实例启动的时候会分配SGA,实例管理的时候会释放SGA。每个实例都有它自己的SGA.
连接Oracle数据库的用户共享SGA中的数据。为获得最佳的性能,SGA应该尽可能的大,这样在内存(当然是真正的内存)中保存尽可能多的数据,最小化磁盘I/O。
SGA存储的信息被划分为几类内存结构,包括数据库缓存(Database buffers)、重做日志缓冲区(redo log buffer)和共享池(shared pool)。
SGA的数据库缓存(Database Buffer Cache of the SGA)
数据库缓存保存了最近使用的数据块。实例中的这一系列数据库缓存是database buffer cache。Buffer cache包括修改的和没有修改的数据。因为最近(经常是最经常)使用数据保存在内存中可以最小化磁盘I/O,进而提高性能。
SGA的重做日志缓冲区(Redo Log Buffer)
重做日志缓冲区保存重做条目(数据库的修改日志)。重做日志缓冲区中的重做条目会写入一个在线重做日志。如果数据库恢复必要时可以使用这个文件。重做日志的大小是固定的。
SGA的共享池(Shared Pool)
共享池包含共享内存结构,比如共享SQL区。一个共享SQL区是用来处理提交给数据库的非重复的SQL语句。一个共享SQL区包含对应语句的解析树和执行计划的信息。执行同一语句的多个应用程序可以使用同一个共享内存区,这样可以节省共享内存给其他用户使用。
语句句柄或游标
游标是一个私有SQL区域的名字或者句柄,这个区域保存语句执行的解析陈述和其他的信息。(Oracle访问接口(OCI)叫这些为语句句柄)虽然大部分Oracle用户依赖Oracle实现的自动游标处理,但可编程的游标接口还是可以让应用程序设计人员对游标进行更多的控制。
例如在预编译的应用开发中,一个游标是对于程序员可见的命名资源,所以可以用来执行特定的内嵌到应用程序内部的SQL语句。
程序全局区(PGA)
程序全局区是一个服务器进程的一块包含数据和控制信息的内存缓存。当一个服务器进程启动的时候Oracle会创建一个PGA。PGA中的信息依赖于Oracle的配置。
Oracle后台进程
一个Oracle数据库使用内存结构和进程来管理和访问数据库。计算机主存中的所有内存结构组成了数据库系统。进程是在计算机内存中运行的任务。
下面讨论的体系特点使Oracle数据库可以支持:
- u 多用户可以同时访问同一个数据库
- u 多用户、多应用程序并发的数据库系统需要的高性能
Oracle为每个实例创建一系列后台进程。Oracle后台进程增强了其他Oracle每个用户进程对应的多个程序的处理能力。
存在很多后台进程,每个Oracle实例可以使用多个后台进程。
进程体系结构
一个进程是一个“线程控制器”或者操作系统内部运行一系列步骤的一个机制。某些操作系统使用进程或任务。一个进程通常拥有私有的内存区域并在其中运行。
一个Oracle数据库服务器有两个类型的进程:用户进程和Oracle进程。
用户进程(客户端进程)
用户进程可以由某些应用程序(比如OCI或OCCI程序)的软件代码或者一个Oracle工具(比如企业管理器)创建和维护。用户进程还通过程序接口和服务进程连接,下面的部分会说到这部分内容。
Oracle进程
Oracle进程是响应其他进程请求为其他进程执行功能的进程。
Oracle创建服务器进程来处理连接的进程的请求。一个服务器进程和用户进程通信并且和Oracle交互来执行连接的用户进程的请求。例如,一个用户查询的数据不在SGA的数据库缓存(database buffers)中,然后相关的数据库进程从数据文件上的适当的数据块读入到SGA中。
Oracle可以配置针对每个服务器进程的用户进程数量。在专用服务器中,一个服务器进程针对单个用户进程来处理请求。在共享服务器中,多个用户进程共享少数服务器进程,这样可以减少服务器进程的数量和增加可用系统资源的大小。
在某些系统中,用户进程和服务器进程是分开的,在另外的系统中它们合并为一个单独的进程。如果系统使用专用服务器或者如果用户和服务器进程在不同的计算机上运行,这时候用户进程和服务器进程必须是分开的。客户端/服务器系统分开了用户和服务器进程并在不同的计算机上运行它们。
数据库访问概述
这部分描述了Oracle网络服务,还包括启动数据库。
网络连接
Oracle网络服务是Oracle关于网络通讯协议的交互机制,能够减轻分布式处理和分布式数据库的难度。
通讯协议定义了数据在网络上传播和接受方法。Oracle网络服务支持所有主要的网络协议通讯,包括TCP/IP,HTTP,FTP和WebDAV。
通过Oracle网络服务,应用程序开发人员不需要关心数据库应用程序的网络通讯问题。如果使用一个新的协议,然后数据库管理员做一些小的调整,应用程序不需要调整就可以继续工作了。
Oracle Net是Oracle网络服务的一个组件,在客户端应用程序和Oracle数据库服务器之间创建网络会话。一旦一个网络会话被创建,Oracle Net作为客户端程序和数据库服务器之间的中转。它在客户端程序和数据库服务器之间创建和维护连接并在它们之间交换消息。Oracle Net存在于网络中的每台计算机上,所以可以完成上述工作。
启动数据库
启动数据库并在系统范围内可用的三个步骤:
1. 启动实例
2. mount数据库
3. 打开数据库
一个数据库管理员可以使用SQL PLUS的STARTUP命令或者企业管理器来执行这些步骤。当Oracle启动一个实例,它读取服务器参数文件(SPFILE)或者初始化参数文件来确定初始化参数值。然后它分配SGA和创建后台进程。
Oracle如何工作
下面的例子描述了Oracle执行的最基本的操作。它涉及的Oracle配置是用户进程和相关服务器进程在不同的计算机上(通过网络连接)。
1. 一个实例已经在运行Oracle的计算机上启动(通常叫做主机或数据库服务器)。
2. 运行一个应用程序的计算机(本地计算机或者客户工作站)在一个用户进程中运行应用程序并针对用户进程创建专用服务器进程。
3. 服务器运行适当的Oracle网络服务器驱动程序。服务器检测到应用程序的连接请求并针对用户进程创建专用服务器进程。
4. 用户运行一个SQL命令并提交事务。例如,用户修改表中某行的名字。
5. 服务器进程接收到命令,检查共享池中包含类似SQL命令的任何共享SQL区域。如果找到一个共享内存SQL区域,然后服务器进程检查用户是否具备访问请求数据的权限,是否已经存在SQL共享区域用来执行命令。如果没有找到,会为了这个命令分配新的共享内存区域,然后就可以解析和执行这个SQL了。
6. 服务器进程从实际的数据文件(表)或SGA中已经存在的数据中得到任何必要的数据。
7. 服务器进程修改系统全局区的数据。DBWn进程在效率最高的时候永久的修改磁盘上的块。而事务提交之后,LGWR进程立刻在重做日志文件中记录这个事务。
8. 如果事务成功执行,服务器进程通过网络给客户端应用程序发送一个消息。如果不成功,会传输一个错误信息。
9. 在整个过程中,其他的后台进程也在运行,观察需要干预的情况。另外,数据库服务器管理其他用户的事务并阻止事务间请求同一数据的竞争。
Oracle组件概述
Oracle提供了几个数据传输、数据维护和数据库管理的工具,包括数据泵导入和导出、SQL *Loader和LogMiner。
Oracle数据库特征
这部分包括下列主题
- ¨ 可测量性和性能特征概述
- ¨ 易管理特征概述
- ¨ 数据库备份和恢复特征概述
- ¨ 高可用性概述
- ¨ 商业只能特性概述
- ¨ 目录管理特性概述
- ¨ 安全特性概述
- ¨ 数据完整性和触发器概述
- ¨ 信息集成特征概述
可测量性和性能特性概述
Oracle包括几个软件机制来执行下面的信息管理系统必须的重要功能:
- ¨ 多用户系统数据并发最大化
- ¨ 数据必须以一致的方式读写。用户查看或修改的数据在用户操作完这个数据之前是不能被其他用户改变的。
- ¨ 多用户的数据库系统需要最大生产率的高性能
这里包含下列内容
- ¨ 并发
- ¨ 读一致性
- ¨ 锁机制
- ¨ 数据库停顿
- ¨ 真正应用集群
- ¨ 便携性
并发
多用户数据库系统的一个主要问题是如何控制并发性,就是多个用户同时访问同一数据。没有足够的并发控制,数据可能不能恰当的更新或修改,进而破坏数据完整性。
一个管理数据并发的办法是使用户依次等待。数据库管理系统的目的是减少这些这些等待,所以等待对于每个用户来说都是不存在或者可以忽略的。所有的数据操纵语言命令尽可能的智能执行,当前进程之间的破坏性交互是完全禁止的。破坏性的交互指的是不正确的数据更新或者数据结构的错误更改。数据完整性和性能是需要兼顾的。
Oracle通过使用几个不同类型的锁和多版本一致模型来解决上述问题。这些特性依赖于事务概念。应用程序设计人员的责任是确认事务完全采用了这些并发和一致性特性。
读一致性
Oracle支持的度一致性支持下列功能:
- ¨ 确保语句看到的一系列数据在一个时间点上保持一致性,并在语句执行期间保持不变(语句级读一致性)
- ¨ 确保数据的读取用户不需要等待同一数据的写入和读取
- ¨ 确保数据写入不需要等待同一数据的读
- ¨ 确保只有在并发环境中更新同一行时才需要写入等待
理解Oracle读一致性的实现的最简单方法就是想象每个用户操作数据库的私有拷贝,因而就是多版本模型。
读一致性、撤销记录、和事务
为管理多版本一致性模型,Oracle必须在一个表同时被读写的时候创建一系列的读一致性数据。当发生一个更新时,更新改变的原始记录保存在数据库的撤销记录中。在更新还处在未提交的情况下,之后的任何查询这个数据的用户看到的是原始记录。Oracle在SGA中保存当前信息,在撤销记录中保存原始信息,这就构成了一个表数据针对查询的读一致性场景。
只有当一个事务提交,事务的修改才会永久化。在用户进程提交之后的语句只能看到已经提交的事务所有的修改。
事务是Oracle提供读一致性策略的核心。提交或未提交SQL语句的单元如下:
- ¨ 在读者的角度标识读一致性场景的起点。
- ¨ 控制其他数据库的读写进程何时能看到本事务修改的数据
只读事务
默认Oracle确保语句级的度一致性。单个查询返回的一系列数据都是基于某一个时间点的一致性。尽管如此,在某些情况下,你可以要求事务级的读一致性。在这个功能下,单个事务运行的多个查询都是基于同一个时间点的一致性,所以事务中的查询看不到在此期间提交的事务做的修改。如果你想针对多个表运行大量查询并且不做任何更新,你可以采用一个只读事务。
锁机制
Oracle还使用锁来控制数据并发访问。当更新信息时,数据服务器保持信息的锁直到更新提交为止。在那之前,没有其他用户可以对锁定信息进行修改。这个确保了系统的数据完整性。
Oracle是唯一提供行级别非升级的锁。不像其他数据服务器,可升级锁覆盖一组行或者整个表,Oracle总是在更新时只锁定行信息。因为Oracle在实际行本身保存了锁的信息,Oraclek可以锁定无限的行但是用户却可以并发工作,而不会受到无谓的耽搁。
自动锁
Oracle的锁是自动执行的,不需要用户手工启动。SQL语句根据事实需要而按需求启动隐含的锁。Oracle锁管理器自动在行级别锁定表数据。通过在行级别锁定表数据,可以最小化对同一数据的竞争。
Oracle锁管理器根据产生锁的操作类型维护几个不同类型的行锁。两个基本类型的锁是互斥锁和共享锁。只有一个互斥锁可以放在一个资源上(比如一行或一个表);虽然如此,某些共享锁也可以放置在单个资源上。共享锁和互斥锁都允许对锁定资源的查询操作,但是拒绝其他类型的操作(比如更新和删除)。
手动锁
在某些环境下,一个用户可能想覆盖默认锁。Oracle允许手动覆盖行级(首先查询一行并在后续的命令中修改它)和表级的自动锁特性。
静默数据库
数据库管理员有时候需要隔离非数据库管理员的操作,就是说隔离非数据库管理员的事务、查询和PL/SQL命令。隔离的一个办法是关闭数据库,然后以限制模式打开数据库。你也可以在不打扰用户的情况下进入静默数据库状态。在静默状态下,数据库管理员可以安全的执行非DBA用户不能同时执行操作的特定操作。
真正应用集群
真正应用集群(RAC)由运行在多个集群计算机上的多个Oracle实例组成,这些实例通过一个所谓内部连接的方式彼此通讯。RAC使用集群软件来访问一个构建在共享磁盘上的共享数据库。RAC通过合并这些多个内部互联的计算机的处理能力来提供系统冗余、近乎线性的可量测性和高可用性。RAC对OLTP和数据仓库环境都提供充分的优势,所有的系统和应用程序都可以高效的使用集群环境。
你可以升级RAC环境的应用程序来适应增长中的数据处理需求,而不需要修改应用程序节点。当你增加类似节点或存储的资源,RAC在这些资源上扩展处理能力来超越单个组件的限制。
便携性
Oracle提供跨越所有主要平台的独一无二的便携性,确保你的应用可以改变平台而无需修改应用程序。这是因为Oracle代码基础就是跨平台的,所以你可以拥有跨越所有平台的特性,对于所有应用程序来说是完全透明的。因为这个便携性,你可以很容易的根据需求的改变升级到一个更强大的服务器上。
易管理性概述
管理一个Oracle数据库系统的人被称为数据库管理员(DBA),负责创建Oracle数据库,确保他们平稳运转,以及监控它们的使用。除了Oracle提供的一些警告和建议信息,Oracle还提供下列特性:
自我管理的数据库
Oracle数据库提供高水平的自我管理功能,将DBA日常工作自动化并减少了空间、内存和资源管理的复杂性。Oracle数据库自管理特性包括下列内容:自动回滚段管理、动态内存管理、Oracle管理文件、平均恢复时间、空闲空间管理、多个块大小以及恢复管理器(RMAN)。
Oracle企业管理器
企业管理器是一个系统管理工具,提供了集中管理你的多样化环境的集成解决方案。企业管理器包含一个图形控制台、Oracle管理服务器、Oracle智能代理、通用服务和管理工具,对管理Oracle产品提供了综合的系统管理平台。
从企业管理控制台这个客户端接口,你可以执行下列任务:
- u 管理整个Oracle环境,包括数据库、应用服务器、应用程序和服务。
- u 诊断、更改和调整多个数据库
- u 多个系统不同时间间隔的任务调度
- u 通过网络监控数据库情况
- u 管理多个网络节点和多个位置运行的服务
- u 和其他管理员共享任务
- u 相关目标一起分组从而减少管理任务的难度
- u 启动Oracle集成和第三方工具
- u 定制企业管理器管理员的显示
SQL *Plus
SQL *Plus是一个录入和运行特定数据库命令的工具。它可以用来运行SQL语句、PL/SQL块,以及许多额外的任务。
自动存储管理
自动存储管理简化和自动化了数据文件、控制文件和日志文件的分布。数据库文件会跨越可用磁盘自动分布,数据库存储在存储配置改变时会自动均衡负载。它通过数据库文件镜像来提供冗余,通过跨越当前可用磁盘的方式来分布数据库文件从而提高性能。当存储配置修改时,数据库存储的重新均衡功能会自动运行。
调度
为帮助简化任务管理,Oracle针对复杂的调度需求提供了大量的功能。Oracle在DBMS_SCHEDULER包内提供一组函数和过程。这些功能整体叫调度程序,它们可以被任何PL/SQL程序调用。
调度程序允许数据库管理员和应用开发人员控制何时何地不同的任务在数据库环境中运行。比如,数据库管理员可以调度和监控数据库维护工作,比如备份或者数据仓库每天晚上数据的抽取和装载。
数据库资源管理
传统上来说,操作系统负责控制系统内包括Oracle数据库在内的不同应用程序的资源管理。数据库资源管理器通过控制数据库内正在运行的调度程序来控制不同会话之间的资源分布。通过控制哪个会话可以运行以及可以运行多长时间,数据库资源管理器可以确保资源分布可以满足经营目标和计划指令。
数据库的备份和恢复特性概述
在任何数据库系统中,系统或硬件失败的可能性始终存在。如果一个失败发生并影响到了数据库,那么数据库必须可以恢复。失败之后的目标是确保所有已经提交的事务结果在恢复的数据库中同样存在,还有就是可以尽可能快的返回日常操作,最大限度的减少失败对用户的影响。
Oracle提供了下列不同的集中机制:
- u 针对不同类型失败的数据库恢复
- u 适合任何情形的恢复操作
- u 运行时备份和恢复操作,不影响系统的工作进行
失败类型
某些条件下Oracle数据库的操作会中断。下表描述了几个最常见的失败类型:
失败
描述
用户错误
需要一个数据库能够恢复到错误发生前的一个时间点。例如,一个用户可能无意中删除了表。为确保从用户错误中恢复并且适应其他特定的恢复需求,Oracle提供了精确的时间点恢复。例如,如果用户无意中删除了一个表,数据库可以将这个实例恢复到表删除的时候。
语句失败
Oracle程序中正在处理的语句中包含一个逻辑失败时。当发生语句级失败时,这个语句所做的任何操作都自动被Oracle撤销,用户重新获得控制权限。
进程失败
当一个访问Oracle的用户进程发生失败时,比如一个异常连接中断和进程终止。后台进程(进程监控进程,PMON)自动检测到失败的用户进程,回滚用户进程没有提交的事务,并释放这个进程正在使用的任何资源。
实例失败
在实例无法继续工作时发生。实例失败可能来源于硬件问题,比如断电或者软件问题比如操作系统失败。当发生实例失败时,系统全局区中缓存的数据没有写入到数据文件中。
实例失败之后,Oracle会自动执行实例恢复。如果RAC环境中的一个实例失败,那么其他实例会为这个实例失败恢复重做信息。在一个单实例数据库中或者一个RAC数据库中所有实例全部失败时,Oracle会在你启动数据库时自动应用所有重做信息。
媒体(磁盘)失败
在数据库的操作需要读写硬盘上的文件发生的错误。一个通常的例子是磁盘磁头损坏,这会导致磁盘驱动器上的所有文件丢失。
这种类型的磁盘失败会影响不同的文件,包括数据文件、重做日志文件和控制文件。而且因为数据库实例不能持续工作了,系统全局区中的数据库缓存的数据不能永久的写入数据文件。
一个磁盘失败需要你重建丢失的文件然后进行媒体恢复。和实例恢复不同,媒体恢复必须用户干预。媒体恢复会更新重建数据文件所以它们中的信息可以恢复早磁盘失败前的最近时间,内存中的已经提交的数据由于失败会丢失。
Oracle提供了针对所有可能类型的硬件错误的完全媒体恢复方案,甚至包括磁盘错误。这些提供的选项可以使数据库完全恢复或者之恢复到特定时间点。
如果磁盘失败时某些数据文件损坏,而数据库大部分还正常运行,相应的表空间可以单独恢复而数据库可以保持对外服务。因而数据库的损害部分可以恢复,数据库没有损害的部分对正常的客户还是可用的。
恢复使用的结构
Oracle针对实例或磁盘失败提供的完全恢复使用了几个结构:重做日志、回滚记录、控制文件和数据库备份。
重做日志
数据库内存中的修改数据在没有写入数据文件之前由一系列的文件保护,它们就是重做日志文件。重做日志由在线重做日志和归档重做日志组成。
在线重做日志是一系列两个或多个记录数据库生成的所有修改记录的在线重做日志文件,包括已提交和未提交的修改。重做条目先在系统全局区的重做日志缓冲区中临时保存,然后后台进程(LGWR)将重做条目依次写入一个在线重做日志文件中。LGWR持续的写入重做条目,而且在每次用户进程提交一个事务时写入每个提交的记录。
在线重做日志写满时可以在重用之前采用手动或者自动归档的方式创建归档重做日志。下面两种模式可以启动或者关闭归档功能:
- u ARCHIVELOG:写满的在线重做日志文件在循环重用之前被归档
- u NOARCHIVELOG:写满的在线重做日志文件不归档
在ARCHIVELOG模式下,数据库可以从实例和磁盘失败中完全恢复。数据库还可以在打开对用户可用的情况下回退。即使如此,维护归档日志还是需要额外的管理工作。
如果数据库在NOARCHIVELOG模式下,数据库只能从实例失败中完全恢复,不能从磁盘失败中恢复。而且数据库只能在完全关闭的情况下才能备份。因为没有归档重做日志产生,数据库管理员不需要额外的工作。
回滚记录
回滚记录保存在回滚表空间上。Oracle使用回滚数据有几个不同的目的,包括访问未提交事务改变的块的前映像。在Oracle恢复过程中,Oracle先应用重做日志中的所有修改记录,然后使用回滚信息回滚所有没有提交的事务。
控制文件
控制文件包含数据库的文件结构信息和LGWR写入的当前日志序列码。在通常的恢复过程中,控制文件中的信息指示恢复操作的自动过程。
数据库备份
因为磁盘失败可能会物理损害一个或多个文件,媒体恢复需要从数据库的最近的操作系统备份中重建损坏的文件。你可以用恢复管理器(RMAN)来备份数据库文件或者操作系统工具备份。RMAN是一个管理备份和恢复操作的Oracle组件,可以用来创建数据库文件(数据文件、控制文件、归档重做日志文件等)的备份,还可以从备份中重建和恢复数据库。
高可用特性概述
为提供近乎不间断服务而配置的计算机环境就是常说的高可用系统。这些系统大多拥有冗余的硬件和软件,所以在失败时系统也可以使用。设计良好的高可用系统可以避免单点失败问题。
当事故发生时,失败转移进程会将失败组件上的执行的处理转移到备份组件上。这个进程会重新管理系统范围的资源,恢复不完全或失败的事务,在最短的时间内(微妙级别)重建系统达到正常状态。系统可用性越高,对客户来说失败转移越透明。
Oracle提供了一些工具和特性在非计划停机和计划停机的情况下都能提供高可用特性。这些包括快速启动故障恢复、真正应用集群(RAC)、恢复管理器(RMAN)、备份和恢复解决方案、Oracle闪回、分区、Oracle Data Guard、LogMiner、重做日志文件的多路复用。这些可以任意组合使用来满足特定高可用的需要。
商业智能特性的概述
下面的内容描述了几个商业智能特性。
数据仓库
一个数据仓库是以查询分析为目的的关系数据库,不同于平常的事务处理型数据库。它通常包含来源于事务数据的历史数据,并且还可以包括来自于其他数据源的数据。它将分析负载和事务负载分离,使一个机构可以合并多个数据源的数据。
除具备关系数据库的特性外,一个数据仓库环境还包括抽取、传输、转换和装载解决方案(ETL)、在线分析处理引擎(OLAP)、客户端分析工具和其他的负责收集数据并发布给商业用户的应用程序。
抽取、转换和装载(ETL)
你必须有规则的装载你的数据仓库,因而可以方便的用于商业分析的目的。为这个目的,来源于一个或多个操作型系统的数据必须被抽取和拷贝到数据仓库里。从源系统中抽取数据和导入数据仓库的过程通常叫做ETL,这代表抽取、转换和装载。
实体化视图
一个实体化视图提供了一种保存查询结果到另外的模式对象的表数据的访问途径。普通视图不包含任何数据和不占有任何存储空间,一个实体化视图包含基于一个或多个基表或视图的查询的行结果。一个实体化视图可以保存在基表的同一个数据库中,也可以保存在不同的数据库中。
一个实体化视图保存在基表相同的数据库中可以通过查询重写提高查询效率。查询重写是Oracle自动将访问原始表的SQL查询改写为使用实体化视图的技术,这样Oracle或应用程序的最终用户可以明显的提高查询反应时间。查询重写在数据仓库环境中尤其有用。
数据仓库的位图索引
典型的数据仓库环境拥有大量的数据和特定的查询,而不是底层的并发数据操纵语言(DML)事务。对于这样的应用程序,位图索引提供如下功能:
- u 减少很大一部分特定查询的反应时间
- u 比其他索引技术减少存储需求
- u 较少CPU和较低内存的硬件条件下获得令人惊异的性能
- u 在并发执行数据管理语言(DML)和装载时高效的维护
使用传统的B树索引来大表全面索引的话会造成高昂的空间占用,因为索引会是表数据的几倍大。典型的位图索引只是表索引数据的一小部分而已。
表压缩
为减少磁盘和内存(特别是缓存 Buffer Cache)的使用,你可以在数据库中按照压缩格式保存表和分区表。这样只读操作的性能会更好。表压缩还能加快查询速度。还有就是CPU负载也会比较低。
并发执行
当Oracle并行方式运行SQL语句时,单个SQL语句同时由多个处理器执行。通过将必须的工作分成几部分在多个处理器之间运行命令的方式,比单个处理器运行SQL的速度快得多。这叫做并发执行或者并发处理。
并发执行可以显著的减少大型数据库中数据密集型操作的反应时间,因为在单个Oracle系统中处理过程分成几部分而由多个CPU同时处理。
分析型SQL
Oracle在数据库中提供了很多执行分析型操作的很多SQL语句。包括分级、移动平均数、累积和、比率报表和周期性比较。
OLAP能力
应用程序开发人员可以使用SQL的在线分析处理(OLAP)功能来生成标准的特定的报表。针对额外的分析功能,Oracle提供了多维度计算、预测、模型和预测脚本。这些帮助开发人员构建复杂的分析和计划应用程序,比如销售和市场分析、企业预算和财务分析、需求计划系统。数据可以保存关系表或者多维对象之中。
Oracle在线分析处理对关系型平台提供了以前只存在于多维数据库中的计算和分析能力。另外它还提供了JAVA OLAP API,适合进行在Internet上提供分析能力的应用程序开发。和其他OLAP和RDBMS混合的技术不同,Oracle OLAP不是将数据从关系型数据方式转换到多维数据方式的多维数据库。相反,它是一个具备OLAP能力的关系型数据库。这样Oracle对多维数据库提供了Oracle数据库的可测量性、易访问性、安全性、易管理性和高可用性。为在Internet上服务的分析应用设计的Java OLAP API提供了产品级的数据访问。
数据挖掘
当Oracle数据挖掘中,数据从来没有离开数据库,包括数据、数据展现、模型构建、模型计分结果都保存在数据库中。这使得Oracle为应用开发人员将数据库应用程序和数据挖掘集成起来提供了坚实的基础。这方面有些典型的例子,如数据挖掘在呼叫中心、自动取款机(ATM)、企业风险管理(ERM)和商业计划等应用程序中使用。如模型构建、测试和计分这些数据挖掘功能通过一个Java API实现。
分区
分区支持将非常大的表和索引分为更小和更容易管理的叫做分区的多个部分。SQL查询和DML命令不需要调整就可以访问分区表。虽然如此,定义分区之后,DDL命令可以直接访问和操作单独的分区,当然也可以访问整个表和索引。这样分区可以简化大数据库对象的管理。另外,分区对于应用程序是完全透明的。
分区对很多不同的类型应用都非常有用,尤其对管理大量数据的应用程序。OLTP系统可以受益于管理方面和可用性方面的提升,而数据仓库系统可以在性能和易管理性上受益。
内容管理特性概述
Oracle包含很多数据类型来处理所有的Internet的多种条目,比如关系
发表评论
-
更新一个表的字段值等于另一个表的字段值的SQL语句
2012-02-10 09:22 3374将id相同的B表的name更新到A表 表a 字段id ... -
Oracle完全卸载
2012-02-04 11:40 703Oracle完全卸载 系统环境: 1、操作系统:Windo ... -
计算两个日期之间的月份
2011-11-21 15:34 870select round(months_between(TRU ... -
oracle修改排序内存及批量插入数据
2011-08-19 16:22 941显示内存大小:show parameters area_s ... -
集合参数绑定变量的实现
2010-03-11 10:44 1399问题的引出 select ename from em ... -
oracle函数
2010-03-03 15:18 694向前按自然日推n个月的函数 select add_month ... -
SQL 的解析顺序
2009-12-23 11:44 757SQL code标准的 SQL 的解析顺序为: (1). ... -
Orcale创建临时表
2008-11-05 16:49 1933在Oracle8i或以上版本中 ... -
Oracle学习(-)概念
2008-10-02 13:37 2508一、SQL语句可分为5类: 1. 查询语句 :用于检索数据库 ... -
explain plan,autotrace,tkprof,执行计划和静态统计信息的解读
2008-08-29 09:58 3452explain plan,autotrace,tkprof,执 ... -
表的其他的重要物理参数
2008-08-29 09:56 1007表的其他的重要物理参数 1、MSSM(Manual segm ... -
平面数据的导出与导入
2008-08-29 09:54 1320平面数据的导出与导入_1 较少数据的导出 1、 proc ... -
层次查询
2008-08-29 09:51 1063层次查询 create table emp_hire as ... -
按照一定顺序提取数据
2008-08-29 09:46 1028按照一定顺序提取数据研究 create table xxx ... -
查询key唯一 时间最早的记录列表
2008-08-28 14:41 1489查询key唯一 时间最早的记录列表 select a.* ... -
Oracle的结构体系的抽象(2)
2008-07-23 14:30 861数据库的体系结构---老王家与ORACLE的基本内容的对照 ... -
Oracle的结构体系的抽象(1)
2008-07-23 14:23 986Oracle的结构体系的抽象 一个狂热摄影爱好者—老王的幸福家 ... -
3—如何构建高效的、稳定的、高可用性的oracle应用
2008-07-23 14:14 966发展趋势 oracle成为主流数据库 ... -
序列-sequence 的使用
2008-06-19 17:51 1018创建序列,生成唯一的主键id; create sequenc ... -
com.opensymphony.xwork2.util.LocalizedTextUtil.fi
2008-05-26 13:53 446913:34:14,328 ERROR [[jsp]] Serv ...
相关推荐
oracle 10.2.0.4安装包 windows
Oracle 10.2.0.4 64位客户端
Oracle_10.2.0.3.zip
oracle 10.2.0.5 patch 下载地址 windows linux aix 等
oracle linux 10.2.0.4安装包
Oracle 10.2.0.5 客户端 精简版,可用sqlplusw、PL/SQL Developer 包含exp、imp功能(仅在10.2.0.5及以上版本数据库上可用)
Oracle10.2.0.1.0升级Oracle10.2.0.4.0补丁安装手册(x).pdf
ORACLE RAC 从10.2.0.5.0 升级到 10.2.0.5.8 还有个OPatch 升级补丁 我也上传了。从我上传的资源里找
Oracle 10.2.0.5 客户端 精简版,包含exp、imp功能Oracle 10.2.0.5 客户端 精简版,包含exp、imp功能Oracle 10.2.0.5 客户端 精简版,包含exp、imp功能Oracle 10.2.0.5 客户端 精简版,包含exp、imp功能Oracle 10.2....
Oracle 10.2.0.4 64位服务端,在网上找了很久也没找到,这里分享一下。
oracle10.2.0.1升级到10.2.0.4
ArcSDE 10.2 FOR Oracle10g、11g安装包,Windows平台的。
Oracle10.2 Client Lite 共两个文件(2)
Oracle 10.2.0.4 rac 详细安装文档
oracle 10.2.0.1 精简客户端 oracle 10.2.0.1 精简客户端 学校用的,可以用。
Oracle 10.2 ASM 最佳实践 ASM installation ASM SGA and parameter sizing ASM and privileges ASMLIB Disks ASM and Multipathing DiskGroups Diskgroups and databases ASM redundancy and Failure Groups New ...
oracle10.2补丁包 Patch 5689937 : Created on 8 Jan 2007, 13:14:29 hrs US/Eastern Bugs fixed: 4671216, 4925103, 4604970, 4616376, 5689937, 4288876, 5225798, 5694720 4754888, 4750469, 4369235, ...
Oracle的 10.2版本文档 基于官网整理,支持跨文档索引和搜索,一份Oracle文档对应一个CHM文件
oracle windos版安装步骤,weblogic安装步骤
Oracle 10g客户端v10.2.0.3.0 64位/32位是一款非常好用且功能强大的主要用于oracle数据库的开发和编辑等操作的软件,这个精简版本从官方的oracle客户端中提取,软件解压后就可以运行,操作方法也比较简单,可以...