Oracle数据库的体系结构_第1页
Oracle数据库的体系结构_第2页
Oracle数据库的体系结构_第3页
Oracle数据库的体系结构_第4页
Oracle数据库的体系结构_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、Oracle数据库的体系结构完整的O racle数据库通常由两部分组成:实例和数据库。1、数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参 数文件等);2、实例则是一组Oracl e后台进程/线程以及在服务器分配的共享内存区。Oracle数据库的存储结构分为逻辑存储结构和物理存储结构:逻辑存储结构:用于描述Oracle内部组织和管理数据的方式;物理存储结构:用于描述Oracl e外部即操作系统中组织和管理数据的方式。在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个实 例来访问和控制

2、磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区 (SGA)。Oracl e服务器请求有两种最常见的方式:专用服务器连接:Oracle数据库为每个用户请求分配一个专用服务器进程为 其提供服务,当用户请求结束时,对应的服务器进程也相应被终止。如果同时存 在大量的用户请求,则需要同等数量的服务器进程提供服务。共享服务器连接:Oracle数据库始终保持一定数量的服务器进程,用户的请 求首先被连接到一个称为“调度程序”的特殊服务进程,然后由调度程序为用户分 配一个服务器进程为其提供服务。这意味着只需要使用很少的服务器进程,便可 以为多个用户进程提供服务。Oracle 与 SQL Serve

3、r 的区别随着信息技术的飞速发展,数据处理不仅在数量上要求越来越大,而且在质 量上也要求越来越高。Oracle数据库在大多数企业中受到广泛使用,而SQL Server数据库也因为和Windows的联系,在企业中的使用也是非常广泛。操作系统的稳定对数据库来说是十分紧要的,在数据库可操作平台上, Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客 户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应 用程序、工具。对开发商来说是很大的支持。而SQL Server却只能在Windows 上运行了,这个就显得比较单调了,但SQL Sever在Windo

4、w平台上的表现,和 Windows操作系统的整体结合程度,使用方便性,和Microsoft开发平台的整合 性都比O racle强的很多。但Windows操作系统的稳定性及可靠性大家是有目共睹 的,再说Microsoft公司的策略目标是将客户都锁定到Windows平台的环境当中, 只有随着Windowstt能的改善,SQL Server才能进一步提高。从操作平台这点 上Oracle是完全优胜于SQL Server的了。从资料上可以看到,Oracle的安全认证获得最高认证级别的ISO标准认证, 而SQL Server并没有获得什么安全认证。这方面证明了。racle的安全性是高于 SQL Serve

5、r 的。购买一个产品,首先考虑的当然是产品的性能了,当考虑性能的同时当然少 不了究竟要花多少钱在这产品也是个很关键的问题。要建立并运行一个数据库系 统。不仅仅包含最初购置软件、硬件的费用,还包含了培训及以后维护的费用。Orcale数据库的价格是远比SQL Server数据库要高,为什么Oracle数据库比SQL Server数据库价格上要高出那么多,一方面Oracle的初始花费相对较高,特别是 在考虑工具软件的时候,Oracle很多工具软件需要另外购买,与Microsoft提供免 费的SQL Server工具软件相比,Oracle更显价格的不菲。但由于SQL Server只 能在Windows

6、下运行的原因,普遍认为SQL Server数据库的可靠性是比较差的。 Oracle的性能优势体现在他的多用户上,而SQL Server的性能优势在多用户上就 显得力不从心了。操作上SQL Server明显要比Orcale简单,如果你用过Java和D OTNET的开 发平台,区别的基本就是Oracle和SQL Server不同,Oracle的界面基本是基于 Java的,大部分的工具是Dos界面的,甚至SQLPlus也是,SQL Server是跟VB 一样,全图形界面,很少见到DOS窗口。SQL Server中的企业管理器给用户提 供一个全图形界面的集成管理控制台来集中管理多个服务器。Oracle

7、也有自己的 企业管理器,而且它的性能在某些方面甚至超过7SQL Server的企业管理器, 但它安装较为困难。Orcale数据库和SQL Server数据库那个更快?其实是一个很难答的问题, 因为存在许多不定因素,包括处理类型、数据分布以及硬件基础设施等。SQL Server 2000是一个具备完全Web支持的数据库产品,提供了可扩展标 记语言核心支持以及Internet上和防火墙外进行查询的能力,具有可伸缩性、灵 活性、扩充性好,而且价格便宜等特点,而O racl e则有着可靠安全性,速度比 SQL Server快上百倍,但其价格在实施中却比SQL Server它高出了几百倍。其实各行业考虑

8、选择那种数据库,是由数据库的特点以及根据自己的业务需 求和基础设施综合考虑来决定的。oracle中有复合数据类型sql server中没有声明方式:变量名对象名% type 这里的变量类型可以是所有以存在的数据类型,具有依赖性,存储过程中用这 种变量比较灵活,但效率应该会低些。oracle存储过程中借助cursor类型变量返 回并访问记录集sql server中我没用过类似功能。oracle里这么用:存储过程中 边查询边给变量赋值select某一列名into变量名from table where ;相当于oracle中的select变量名=列 。Oracle数据库的优缺点oracle数据库的优

9、点1、ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了 ORACLE的资源占用,并增强了。RACLE的能力,使之在低档软硬件平台上用 较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。2、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整 性检查、安全性、一致性方面都有良好的表现。3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。4、提供了与第三代高级语言的接口软件PRO*系列,能在C,C+等主语言中 嵌入,1语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有 许多优秀的前台开发工具如POWER B

10、UILD、SQL*FORMS、VISIA BASIC等, 可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。5、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库 里的数据,并有对称复制的技术。Oracle数据库的缺点:1、自增长字段Oracle的数据类型里没有自增长字段类型,Oracle的官方解决方案是采用 sequence实现,sequence比较灵活,可以指定增长间隔等参数,虽然最终可以 实现与其它数据库一样的效果,但是本来一个简单的数据类型可能解决,在 Oracle却需要增加一个sequence,insert的时候还需要用sequence.nextval才行,

11、 为了兼容Oracle数据库很通用系统还不得不自己设计自增长字段解决方案,比如 增加一张专用表来保存自增长字段的表和字段名,每次新增记录时都把这个记录 值加1再取出使用。2、安装Oracle的安装是比较复杂,特别是在非windows系统中,在网上可以找到遍 地的O racl e安装文档,但依然有很多人花了大量时间才安装成功,如果要搭建rac 系统,那就更复杂了。3、外连接外连接(left join ,rightjoin,full join)在SQL标准语法中就有明确的定义,但是 Oracle的语法确与标准完全不同,这个是历史原因了,没有左连接与右连接的概 念,也不支持全外连接,Oracle语法

12、如下所示:select * from t1,t2 where t1.id=t2.id(),采用()来表示外连接,但是大部份人第一眼会认为这是一个右连 接的语法,其实在Oracle中它相当于左连接,我直到现在还有时会搞错左右。好 在Oracle9i中增加了标准外连接的语法支持。4、NUMBER类型在10g以前NUMBER类型是Oracle唯一数值类型,可以用来表示整数和小数, 范围也足够我们使用,Oracle也支持INTEGER语法,但是INTEGER只是 NUMBER的一个同义词,不明白Oracle为什么没有专用的整数类型。NUMBER 类型很灵活,但是存储空间很大,性能也不好,如果用4字节可

13、以表示的整数, 用NUMBER平均需要6字节存储,如果采用number类型做指数或对数运算,与 标准的浮点数性能可能会相差50倍。好在Oracle10g中增加了高效的浮点类型 binary_float,binary_double,从而弥补了浮点数性能的问题。Oracle在pl/sql语 法中有专用的整形pls_integer,但是pls_integer不能做为字段的类型。5、DATE类型Oracle主要有两种日期类型,date和timestamp,从词面看以为是date表示 日期,timestamp可以存储时间,但是实际是date类型可以表示日期和时间, timestamp可以存储更高精度的时

14、间,为什么date不叫datetime算了,Oracle没 有只保存日期的类型,如果我们的数据仅要保存日期,那2-4个字节就可以搞定 了,但Oracle的date类型需要7个字节存储。6、用户 与SCHEMAschema的概念在很多数据库之间都没有统一的定位,有些数据库可以有多 个database,每个database下面有多个schema,Oracle中的schema有点怪怪 的,因为Oracle只有一个database的概念,所以schema就与其它数据库中的 database有点类似,我们一般理解是schema(database) 与用户没有直接关系, schema是逻辑概念,user是

15、为了安全认证,只与权限有关,但Oracle用户与 schema关系与其它数据库不一样,一个用户就对应一个schema,且不能更改, 而且对schema的权限管理不方便,比如想让某个user可以访问另一个schema 所有对像的权限就很麻烦。这种设计也是oracle特有的,估计Oracle也不会去改 变。7、客户端装个客户端,给我个几百M大小的软件,为什么客户端安装好了还要做什么 TNS配置,直接提供数据库连接信息(ip port dbname)不行吗。Oracle的TNS配 置确实让开发人员头痛了很久,特别是那种要把C/S软件发布给客户端使用的场 景,本来安装客户端就不方便,还要配置TNS,故

16、障诊断时总是要检查一下TNS 是否配置正确,不小心选错了 TNS名连错了数据库导致误删除了数据的情况也时 有发生。因为客户端软件的庞大,有些人还专门制做了只有几M或几十M的简易 客户端安装软件,还有人开发了不需要客户端的插件,可以集成在软件里发布, 可见Oracle的客户端安装配置不是一般人能接受的。好在现在很多应用都是B/S 系统了,Oracle SQL DEVELOPER也不需要配置客户端,用jdbc连接Oracle仿 佛世界清静了许多。8、管理及开发工具大部份数据库系统都会有一个比较官方全面的数据库管理工具,尤其是微软 的产品,但是Oracle发展到现在自身的管理工具还是没有定型,8i用

17、企业管理器, 9i用J AVA重写了,10g用WEB重写了,现在11g官方推荐用O racle SQL DEVELOPER做开发,用B/S架构的OEM做管理与监控。对于Oracle官方的开发 管理工具,一直认为太不专业了,远没有其它第三方面工具好用,plsql developer 和toad应该是Oracle管理及开发人员用得最多的工具,其次就是sqlplus 了。Oracle SQL DEVELOPER采用JAVA开发,很强大,可以用JDBC连接管理任何 数据库,但是还是不专业,使用起来不方便。10g的OEM有一些公司开始用了, 它的监控功能应该还是不错的,但是不能做开发管理,这个是产品定位

18、的问题了。 期待有一天Oracle能有一个像SQL SERVER那个强大的开发及管理工具。第十章数据库备份与恢复一、相关概念什么是数据备份数据备份就是拷贝。包括:控制文件和数据文件。备份是针对预想不到的数据 丢失和应用程序错误发生的安全保证。备份分为物理备份和逻辑备份。物理备份,用Oracle Recovery Manager(恢复管理器)工具或操作系统实用工具 来进行物理备份。Oracle在一个事例失败后自动进行奔溃备份(crash backup)和事例备份 (instance backup).恢复:指包含重建、向前卷动、向后卷动一个备份的多个操作。Oracle8i Concept 以联机和

19、归档重复日志的概述。Oracle8i Administrators Guide 了解管理这些数据结构基础。单元备份和恢复战略在不同的磁盘上维护联机重复日志的多个相同拷贝。把重复日志归档到多个位置,或者频繁备份归档重复日志。使用Oracle多路技术以及操作系统镜像,维护控制文件的多个并行拷贝。频繁备份数据文件和控制文件,并把它们存储在多个介质的安全地方。大多数数据备份就是这些原理的变化对于备份和恢复,哪些数据结构是重要的。数据文件每个Oracle数据库都有一个或多个物理数据文件(datafile)。数据库的数据文件 属于称为表空间(tablespace)的逻辑结构,它包含数据库数据。通常在操作期

20、 间,读取在数据文件中的数据,把它存储在内存中的高速缓冲中。控制文件每个数据库都有一个数据文件。控制文件是一个相对重要的二进制文件,他包含 了组成数据库的所有其他文件的操作系统文件名,它也包含了用于恢复的一致性 信息。数据库名,创建数据库的时间性标记,数据库的数据文件以及联机和归档重 复日志文件的名字,检查点,即表示在重复日志中一个点的纪录,在该点之前的 所有数据库变化都已经存储在数据文件中。回退段每个数据库都有一个或多个会推段(rllback segment),回退段事包含在数据文件 中的逻辑结构。一旦数据修改了数据块,那么一个回退段记录信息改变前的状态。二、Oracle数据库的备份与恢复O

21、racle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热 备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。(一)导出/导入(Export / Import)利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据 送回到Oracle数据库中去。1、简单导出数据(Export)和导入数据(Import)Oracle支持三种方式类型的输出:(1)、表方式(T方式),将指定表的数据导出。(2)、用户方式(U方式),将指定用户的所有对象及数据导出。(3)、全库方式(Full方式),瘵数据库中的所有对象导出。数据导入(Import)的过程是

22、数据导出(Export )的逆过程,分别将数据文件导 入数据库和将数据库数据导出到数据文件。2、增量导出/导入增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作 为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件 名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命 令行中指出要用的文件名。增量导出包括三种类型:(1)、“完全”增量导出(Complete)即备份三个数据库,比如:exp system/manager inctype=complete file=040731.dmp(2)、“增量型”增量导出备份上一次

23、备份后改变的数据,比如:exp system/manager inctype=incremental file=040731.dmp(3)、“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:exp system/manager inctype=cumulative file=040731.dmp数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的 完成。比如数据库的被封任务可以做如下安排:星期一:完全备份(A)星期二:增量导出(B)星期三:增量导出(C)星期四:增量导出(D)星期五:累计导出(E)星期六:增量导出(F)星期日:增量导出(G

24、)如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:第一步:用命令CREATE DATABASE重新生成数据库结构;第二步:创建一个足够大的附加回滚。第三步:完全增量导入A:imp system/manager inctype=RESTORE FULL=y FILE=A第四步:累计增量导入E:imp system/manager inctype=RESTORE FULL=Y FILE=E第五步:最近增量导入F:imp system/manager inctype=RESTORE FULL=Y FILE=F(二)冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提

25、供给我们一个完 整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份 Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:1、是非常快速的备份方法(只需拷文件)2、容易归档(简单拷贝即可)3、容易恢复到某个时间点上(只需将文件再拷贝回去)4、能与归档方法相结合,做数据库“最佳状态”的恢复。5、低度维护,高度安全。但冷备份也有如下不足:1、单独使用时,只能提供到“某一时间点上”的恢复。2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是 说,在冷备份过程中,数据库必须是关闭状态。3、若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。4、

26、不能按表或按用户恢复。如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用 户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:1、所有数据文件2、所有控制文件3、所有联机REDO LOG文件4、Init.ora文件(可选)值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时, 执行数据库文件系统备份是无效的。下面是作冷备份的完整例子。关闭数据库sqlplus /nologsql;connect /as sysdbasql;shutdown normal;用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初

27、始化参数 文件sql;cp ; ;重启Oracle数据库sql;startup(三)热备份热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题 时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式 下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以 做备份了。热备份的命令文件由三部分组成:数据文件一个表空间一个表空间的备份。设置表空间为备份状态备份表空间的数据文件回复表空间为正常状态备份归档log文件临时停止归档进程log下那些在ar

28、chive rede log目标目录中的文件重新启动archive进程备份归档的redo log文件用 alter database bachup controlfile 命令来备份控制文件热备份的优点是:可在表空间或数据库文件级备份,备份的时间短。备份时数据库仍可使用。可达到秒级恢复(恢复到某一时间点上)。可对几乎所有数据库实体做恢复恢复是快速的,在大多数情况下爱数据库仍工作时恢复。热备份的不足是:不能出错,否则后果严重若热备份不成功,所得结果不可用于时间点的恢复因难于维护,所以要特别仔细小心,不允许“以失败告终”。三、用RMAN备份和恢复Oracle数据库1、首先我们要了解Oracle数据

29、文件的组成:数据库文件、控制文件、重做日志文件;归档日志文件;参数文件、口令文 件。其中,口令文件可以通过命令的方式重建,所以不需要备份;重做日志文件, RMAN备份不了。2、Oracle的两种备份与恢复方式a)逻辑备份与恢复:EXP (备份)、IMP (恢复)。在该方式下,Oracle的恢复可 以跨平台。b)物理备份与恢复:在该方式下又分为两种备份与恢复方式:冷备份/恢复和热备份/恢复。其中,冷备份/恢复,就是在整个数据库处于关闭的状态下,给Oracle数据文 件做文件级别的备份与恢复;热备份/恢复,就是通过Oracle自带的备份恢复管 理工具RMAN(Recovery Manager)来完

30、成,其间不需要停止数据库。3、RMAN的备份又分两种方式:a)备份集,Backupset:RMANBackup current controlfi l:备份控制文件。RMANBackup Database :备份数据库文件、控制文件及参数文件。RMANBackup Database plus archivelog delete input :备份数据库文件、控 制文件、参数文件及归档日志文件,其中归档日志文件在备份后被删除。RMANBackup tablespace xxx:备份表空间,其中xxx是要输入的表空间名, 表空间的名称,可通过命令:RMANreport schema;来查询得到。R

31、MANlist Backupset:查询备份记录。b)映像备份,Image Copies:RMANcopy datafileto /路径/文件名,其中可以是数据库文件名及路 径,旷/路径/数据库文件名,也可以是数据库文件的编号(1、2、3、4.),数 据库文件的编号,可通过命令:RMANreport schema;来查询得到。RMAN copy current controlfile to /路径/文件名:备份控制文件。RMANcopy archivelog /路径/文件名to /路径/文件名:备份归档日志文件RMANlist copy:查询备份记录。注:RMAN备份及恢复数据库,要以SYSD

32、BA的权限来展开。4、RMAN的两种备份命令方式:a)单命令:RMANBackup Databaseb)批命令:RMANrun2allocate channel t1 type sbt_tape;3backup database;4release channel t1;5也可以,把批命令写成脚本,然后运行如下命令来让RMAN自动执行:$rman target / msglog=bak.log cmdfile=/路径/脚本名5、RMAN备份注意事项:a)数据库的DBID,该参数将在恢复参数文件和控制文件的时候用到。b)在RMAN里设置自动备份控制文件为打开状态:RMANconfigure con

33、trolfile autobackup on。c)在备份脚本里设置归档日志在备份后,要及时删除,以防归档日志文件撑爆 磁盘空间:Backup Database plus archivelog delete input;6、用RMAN恢复数据库:a)口令文件的恢复:口 令 文 件 的 存 放 位 置: $ORACLE_BASE/product/10.2.0/db_1/dbs/orapwSID,(SID 表示数据库的实例名,以 下同)重建口令文件的命令:$orapwd file=orapwSID password =* entries=5,( *表示我们现在要 设置的密码).如果我们忘记了原来数据

34、库的密码,使用该方法还可以重置密码。b)参数文件的恢复:参数文件的存放位置:$ORACLE_BASE/product/10.2.0/db_1/dbs/spfileSID.ora RMANstartup nomount;RMANset dbid %;RMANrestore spfile from autobackup;如果这一句不奏效,可以使用指定备份 文件名及路径的方式:RMAN restore spfile from /路径 / 文件名,;上文中%表示原来数据库的DBID数值。c)控制文件的恢复:RMANstartup nomount;RMANrestore controlfile from autobackup ;或者RMANrestore controlfile from /备份控制文件的路径/文件名,RMANalter database mount;RMANrecover database;RMANalter database open resetlogsd)重做日志文件的恢复:切换到SQLPLUS下:SQLstartup mount;SQLrecover database until cancel;SQLalter database open resetlogs;e)数据库文件的恢复:RM

温馨提示

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

评论

0/150

提交评论