ORACLE培训资料初级系统管理员Word文件下载.docx
《ORACLE培训资料初级系统管理员Word文件下载.docx》由会员分享,可在线阅读,更多相关《ORACLE培训资料初级系统管理员Word文件下载.docx(77页珍藏版)》请在冰豆网上搜索。
4.2.3Oracle数据库的关闭21
4.3创建和管理数据库对象21
4.3.1TABLESPACE的建立、修改和删除22
4.3.2建立、修改、删除用户24
4.4系统状态查询27
4.5系统备份与恢复28
4.5.1Oracle数据库的备份28
4.5.1.1物理备份28
4.5.1.2逻辑备份—export30
4.5.1.3各种备份方法比较32
4.5.1.4一个完全备份方案样例33
4.5.2Oracle数据库的恢复33
4.5.2.1故障类型33
4.5.2.2使用物理备份恢复34
4.5.2.3使用逻辑备份恢复36
4.6网络配置38
4.6.1配置客户机/服务器结构步骤38
4.6.2服务器的配置38
4.6.3客户端的配置40
4.6.4启动和停止SQL*NET41
4.6.5客户机和服务器的连结41
4.7多线程的配置41
五.Oracle数据库性能优化42
5.1监控数据库运行情况及性能的方法42
5.2初始化参数文件43
5.3设计合理的数据库结构,减少I/O和资源竞争46
5.4分配和调整Oracle使用的内存(SGA)资源48
5.4.1检测和调整共享缓冲区(sharedpoolarea)48
5.4.2调整数据缓存区(DataBufferPool)50
5.4.3调整redo日志缓存(RedoLogBuffer)51
5.4.4调整排序区(SortAreas)51
5.5优化数据库对象52
5.6优化SQL语句53
5.8根据Oracle特性来优化应用程序57
六.Oracle与Informix数据库性能比较58
6.1插入数据测试58
6.2删除数据测试59
6.3测试结论60
Oracle数据库介绍
一.Oracle产品介绍
1.1Oracle公司及产品介绍
Oracle公司是年收入72亿美元全球最大的信息管理软件供应商,也是全球第二大软件公司,在全世界140多个国家为客户提供数据库系统、工具、应用产品以及相关的咨询、培训和支持服务。
1997年数据库市场份额:
UNIX市场WindowsNT市场
1.2Oracle数据库的特点
Oracle数据库的许多卓越性能使oracle公司在数据库行业力拔头筹。
1.大型数据库
Oracle7:
支持2-32TB数据库规模
Oracle8:
支持512PB数据库规模
Oracle8i:
2.多用户
支持用户数:
几千
几万
支持用户数:
几十万
3.大量的工具
Oracle公司提供大量的工具来支持用户从前端以屏幕、报表,甚至数据图表的形式访问数据库。
这些工具也可以与非Oracle数据库连结,它们目前正不断扩充。
4.开放性
OracleRDBMS软件可以运行于100多个不同的硬件平台和操作系统平台。
Oracle提供和其它软件连结的开放式接口。
通过加载到Oracle的数据库,可以利用存放在其它数据库中的信息,如IBM的DB2、Sybase或者Microsoft的Access。
反之,也可以在Oracle的数据库中存放数据而在其它软件中访问,如VB、PB等。
5.备份与恢复
在备份与恢复时,Oracle提供了很多选项。
Oracle的备份和恢复把数据丢失的可能性降到最小,并使出现故障的排错时间最少。
6.安全性
标准Oracle数据库提供许多安全机制,包括对数据库的访问权限、限制可执行的命令、定义对数据的访问级别等。
除此之外,TrustedOracle提供了更高级别的安全性,它可授予用户和数据库对象的各种安全级别,能满足政府和军队的需要。
7.支持多种配置方式
支持基于主机的配置、客户机/服务器结构、分布式处理、基于Internet的Web计算。
1.3Oracle数据库的系列产品
数据库产品:
数据库服务器
应用服务器
开发工具
决策支持工具
应用产品
应用服务器
决策支持工具
数据库服务器
开发工具
Oracle数据库服务器的基本产品---关系型数据库管理系统OracleRDBMS,提供了所有支持大多数Oracle用户的功能,此外,为了满足用户需求的其它功能,还提供了一系列可供购买的选件:
ConTextOption:
文档数据选件
VideoServerOption:
多媒体服务器选件
SpatialDataOption:
空间数据选件
ParallelServerOption:
并行数据库服务器选项
Gateway:
与异种数据源连结的产品
ServerManagementProduct:
系列服务器管理产品
此外还有个人数据库PersonalOracle、方便移动用户使用的作为Oracle开发工具的核心数据库PersonalOracleLite,以及基于工作组的数据库服务器OracleWorkgroupServer。
当企业应用迈向网络运算,标准化的应用服务器将成为必要的支撑软件组成部分,以运行共享式的应用程序,从Client/Server环境转移到Internet时,它能继续维持应用程序的可用性与高效能.
Oracle应用服务器---WebApplicationServer提供了一个开放的标准架构,是开发部署Web上的应用的理想平台。
SQLTools
SQL*Plus
Sqlforms&
menu
SqlreportWriter
Designer/2000
Developer/2000
Programmer
--Precompiler(C、Cobol、Pascal、Fortran、Ada、PL/1、C++)
SQL*Plus是标准SQL的应用工具,为用户定义和操作Oracle关系数据库中的数据提供的一个交互式应用开发工具。
Sql*forms是一个功能强大的基于交互式屏幕界面的动态生成工具。
Sql*menu是设计动态菜单的开发工具。
SqlreportWriter是Oracle提供的功能强大的报表生成程序。
Designer/2000和Developer/2000为Oracle客户机提供了所需的设计、编程、运行和维护系统的解决方案。
它们在客户机/服务器窗口环境下提供了一个快速的应用开发环境。
两者与Oracle服务器紧密集成在一起,共享公共的数据存放点。
相对于其它开发工具,Developer/2000提高开发效率67-150%,Designer/2000提高开发效率200-600%。
(据UniversityofMunich1996.9)
Programmer是针对Oracle通用数据服务器开发版的一个全面的产品套件。
它是一个程序界面的集合,为程序开发者在开发过程中提供了一个广泛的选择,以充分利用OracleServer的所有功能。
Pre*compiler是预编译器,提供了丰富的第三代语言接口工具。
决策支持工具:
Experss
业务人员利用业务系统的数据库进行业务处理(OLTP),针对管理人员则可以利用管理系统的数据库进行管理信息的处理(OLAP)。
Oracle为管理人员提供了管理决策支持工具OracleExpress,利用它可以对数据进行综合、分析、快速获取信息;
为日常管理、决策提供科学依据。
OracleOLAP产品包括:
多维数据库服务器:
ExpressServer
开发应用工具:
ExpressObjects、ExpressAnalyzer、Discover
一个物品可以包含很多特征,如价格、生产日期等,每一个特征都可以认为是数据库中的一维,多维数据库服务器ExpressServer为管理人员提供了一个从多维数角度来考虑问题的工具。
ExpressAnalyzer是面向最终用户(分析人员,管理人员)的数据分析工具。
ExpressObjects是面向开发人员的OLAP应用开发工具.Discover是针对市场进行分析和预测的工具。
通过OracleDiscoverer和OracleExpress,Oracle是可以为厂商提供低成本解决方案,为各种复杂问题提供快速解答,满足接连不断的商业智能系统需求。
OracleFinancial财务软件
OracleManufacturing制造业软件
OracleHumanResources人力资源软件
OracleApplicationsTM(应用产品)所提供的财务管理、供应链管理、生产制造、项目管理系统、人力资源及市场管理等30多个集成的客户机/服务器软件模块可以使企业实现自动化。
1.4Oracle数据库产品的标准报价
Oracle标准报价(单位:
USD)
Product
version
Usernumber
Usertype
Licenseunitprice
Supportunitprice
Totalamount
Oracleserver
8
1
Con
2245
450
2695
Expressserver
5995
1080
7075
Videoserver
445
90
535
Webapplicationserver
295
60
355
SQL*Plus
D
745
300
1045
Programmer/2000
1495
1945
Oracledeveloper
8995
1800
10795
Oracledesigner
2400
11395
Oraclediscoverenduser
N
380
1875
Oraclediscoveradmed
2995
750
3745
Expressanalyzer
895
145
1040
Expressobject
150
Usertype:
con=concurrentdevice,N=nameduser,D=developer
1.5用户基本配置标准报价
用户基本配置标准报价(单位:
Licenseamount
Supportamount
OracleserverV8
128
2,245
287,360
57,600
344,960
2
1,490
600
2,090
1,495
2,990
900
3,890
8,995
1,800
10,795
Oracletraining
3,910
Total
365,645
注:
这里以128用户为例,实际可根据用户情况而定.
二.Oracle数据库的体系结构
Oracle数据库体系由以下几方面构成:
Oracle数据库的物理文件
Oracle数据库的逻辑结构
Oracle数据库的实例
Oracle数据库的用户及权限管理
Oracle数据库的系统表
Oracle数据库对象
2.1Oracle数据库的物理文件
每个Oracle数据库由多个物理文件组成:
一个或多个datafile,两个或多个redlog,一个或多个controlfile。
它们对应于系统的实际存储设备。
数据文件(Datafile)
数据文件是物理上实际的数据存储设备。
可以是一个文件,也可以是一个原始设备。
Oracle的表及其它对象的数据均放在数据文件中。
Redo日志文件(RedoLogfile)
Oracle保存所有事务的日志,这些日志被写入联机日志文件中(onlineredologfile)。
在数据库被破坏时,这些日志文件能够以正确的顺序来恢复数据事务。
每个Oracle必须有两个以上的日志文件,系统以循环方式写入日志文件,当一个日志文件写满时,写第二个日志文件,依次类推,当所有日志文件写满时,又回到第一个日志文件。
控制文件(ControlFile)
数据库控制文件用于记录数据库的物理结构。
它记录数据库中所有文件的控制信息,用于维护内部一致性和操作恢复的引导。
在数据库启动时,使用控制文件来找到数据库和redo日志文件的名字和位置;
如果控制文件不对,该系统就不能启动。
数据库管理员应该保留多个控制文件的备份。
归档日志文件(archivelogfile)
数据库可以设置成archivelog模式,这就是说当redo日志文件写满后,它将被拷贝到一个转储目标。
归档日志文件的名字和位置可以由数据库管理员指定。
归档日志文件完全是redo日志文件的备份。
只有在需要恢复的时候才会用到归档日志文件。
跟踪文件和修改日志(tracefileandalertlog)
在数据库运行的每一个后台进程都有一个跟踪文件与之相连,跟踪文件记载后台进程遇到的重大事件的信息。
除了跟踪进程之外,Oracle还有一个修改日志,它记录了数据库运行中主要事件的命令及结果。
修改日志是数据库工作管理器的实信息源,当需要寻找主要失败的原因时,跟踪文件就非常有用。
跟踪文件和修改日志的位置在configsid.ora文件的BACKGROUND_DUMP_DEST参数指定的目录中。
2.2Oracle数据库的逻辑结构(LogicalDatabaseStructure)
数据文件只是存放数据的物理空间,一个表的数据到底存放在哪个数据文件中是不确定的。
Oracle利用逻辑的存储结构对硬盘空间进行管理,从而划分数据的归属。
表空间(tablespaces)是用来存放数据的最大逻辑单元,在表空间内部由多个更小的逻辑单元层组成。
从大到小依次是:
表空间->
段->
区->
块。
表空间(Tablespace)
表空间是oracle数据库主要的逻辑存储结构,每个表空间与一个或多个数据文件相联系。
表空间和数据库都是逻辑上的概念。
在磁盘上真正存在的只是数据文件。
所有的数据文件组合起来,逻辑上我们叫它一个数据库。
这个数据库为了使用方便、易于管理,由从逻辑上划分为多个表空间。
所以说,数据库由一个或多个表空间组成;
表空间由一个或多个数据文件组成。
表空间和表空间之间是完全独立的,一个数据文件只能从属于一个表空间。
一张表可能跨越多个数据文件存放,但不能跨表空间存放。
任何一个oracle数据库系统都包含两类表空间:
系统表空间(systemtablespace),这是数据库创建时自动生成的表空间,它是oracle系统必不可少的。
应用表空间,这是为了某个应用而单独建立的表空间。
一个数据库只需要一个系统表空间,此外为了提高安全性,建立附加的一个或多个应用表空间来把系统数据和用户数据分开。
表空间有两种状态:
联机(online)和脱机(offline)。
当表空间处于联机状态时,表空间中的所有数据可以为用户使用。
当DBA作某种表空间维护工作时,或执行脱机的表空间备份时,为了不让其它用户访问其中的数据,要使表空间处于脱机状态,这时其中的数据不能被用户访问。
块(Blocks)
数据块(datablocks)是Oracle数据库进行数据存储时最小I/O单元。
一个数据块对应硬盘上一定字节的数据空间。
它的大小依数据库所在的操作系统平台而异。
典型值是2K。
数据块是用来存放数据的。
有两个空间管理参数PCTFREE、PCTUSED允许开发人员控制数据块的分配。
PCTFREE:
用来设置数据块中保持空闲的百分比,缺省值为20%。
即向数据块中插入数据时,只能使用80%的空间。
PCTUSED:
当数据块已使用空间高于PCTUSED值时,就不允许再插入数据了。
直到删除等操作后,数据块已使用空间低于PCTUSED值时,数据块才被认为是可以重新插入数据了。
其缺省值是40%。
这两个参数对系统性能影响很大:
常查询(select)的表:
使PCTFREE小一些,以减少存储空间的浪费。
常插入(insert)的表:
使PCTUSED大一些。
常更新(update)的表:
使PCTFREE大一些,以给更新操作留出更大空间,减少行移动。
区(Extents)
一个区域(Extent)是一定数量的连续数据块(datablocks)。
可以利用存储参数来控制区的分配。
例如:
createtable命令中指定storage存储参数,可以定义为这个表所分配的区的大小:
initial:
分配给表的第一个区的字节数,缺省值为5个数据块。
Next:
分配给表的第二个区的字节数,缺省值为5个数据块。
Pctincrease:
下一个要分配的区比上一个区增大的百分比,缺省值为50%。
当初始创建一个段时,分配由initial指定的第一个区;
以后当区空间不够用时,系统按next指定大小分配第二个区;
以后当空间还不够时,按上一个区的大小再加上比上一个区增加的Pctincrease指定的比率分配下一个区。
段(Segments)
oracle数据库中包含四种类型的段:
数据段,索引段,回退段,临时段。
段(segment)是区(Extents)的集合,每个段包含着表空间中某种特定数据类型的所有数据。
数据段(DataSegment)
所有的表(Table)的数据都存储在不同的数据段(DataSegments)的区域(Extents)中。
索引段(IndexSegment)
每个索引(index)都有一个索引段(indexsegment)用来存储它的所有数据。
回滚段(RollbackSegment)
系统建立一个或多个回退段(RollbackSegment)用来临时存储未完成的事务,其作用在于:
保证读一致性、在数据恢复时回退未提交的处理。
临时段(TemporarySegment)
当执行查询操作时,Oracle往往需要临时的空间存放语句执行中的数据。
Oracle自动分配一段磁盘空间称作临时段(TemporarySegment)。
如果系统可以在内存中完成这项操作,则不需要临时申请空间。
2.3Oracle数据库实例
Oracle数据库启动时,系统申请一块内存(SGA)并启动数个后台进程。
SGA是一段存储用户共享数据的内存。
数据库的后台进程和内部存储结构合称一个实例(Oracleinstance)。
2.3.1内部存储结构
Oracle的共享内存就是Oracle的SGA区—系统全局区(systemglobalarea),SGA存放数据库中所有用户的共同数据和信息,分配给SGA的内存越大,绝大多数信息均可以从内存中得到,而不必访问磁盘,数据库就运行的越快。
系统所需的内存总量大约为用于Oracle系统的三倍,三倍是最小值,如果存在大量并行用户(超过60个),则这个数量将会大些.
SGA由三部分组成:
数据库缓冲区(databasebufferpool)、共享缓冲池(sharedpoolarea)和redo缓冲区(redobuffer)。
数据库缓冲区
数据库缓冲区由许多与数据库块大小相同的内存块组成。
当用户访问数据库中的数据时,先到数据库缓冲区中查看是否已经存在于内存中,若存在则直接从内存中读取,若不在,才激活数据库读写进程(DBWR)去磁盘文件中寻找,找到后先把数据放进数据库缓冲区中,再传递给用户。
用户对数据库的操作并不是直接写入磁盘文件,而是先写入数据库缓冲,等满足一定的条件后(如缓冲区装满、检查点发生),才将自上次写磁盘文件以来的所有操作保存在磁盘文件中。
初始化参数DB_BLOCK_BUFFER控制数据库缓冲区的大小。
共享缓冲区
SGA中的共享缓冲区包含两个子区:
库高速缓存(librarycache)、字典高速缓存(dictionarycache)。
初始化参数SHARED_POOL_SIZE控制数据库缓冲区的大小。
1.库高速缓存
一条SQL语句的执行要经过分析、编译和运行三个阶段,其中分析和编译要占用70%的时间。
SQL语句被编译后存储在库高速缓存的共享SQL区中,存储在共享SQL区中的所有SQL语句下一次不经分析和编译就可以直接执行。
一条SQL语句在编译之前Oracle会检查语句是否已经被编译后存储在共享SQL区,如果已经存在,Oracle会重用该语句的可执行版本,从而缩短了SQL语句占用的分析和编译时间,能够提高性能。
调整SGA的一个重要问题就是确保库高速缓存足够大,以使Oracle能在共享池中保持足够多的SQL语句。
2.数据字典缓存
Oracle数据字典包含了数据库中所有表