Oracle10g数据库基础知识培训教材Word文件下载.docx
《Oracle10g数据库基础知识培训教材Word文件下载.docx》由会员分享,可在线阅读,更多相关《Oracle10g数据库基础知识培训教材Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
2003年9月8日,Oracle公司总裁拉里·
埃里森在旧金山Oracle用户大会上宣布了全球首个企业网格计算中间件——Oracle数据库10g。
Oracle从“i”到“g”的演进:
网格是建立在Internet和Web技术和分布计算技术上的,软硬件一体化的新一代网络计算的基础设施,它采用开放、标准的协议,通过对大规模分散资源的有效共享,为动态参与的、由多机构所形成的虚拟组织(virtualorganization,VO)协同完成某类应用,提供可扩展的、安全的、一致的、不同等级质量的服务。
二、Oracle10g的体系结构
数据库的体系结构是从某一角度来分析与考察数据库的组成、工作流程与原理以及数据在数据库中的组织与管理机制。
Oracle系统体系结构是整个Oracle服务器系统的框架,是管理和应用Oracle数据服务器的基础和核心。
Oracle系统体系结构由两部分组成:
存储和实例。
存储结构包括逻辑结构、物理结构。
实例是维系物理结构和逻辑结构的核心。
2.1存储结构
ORACLE数据库的存储结构分为逻辑存储结构和物理存储结构。
逻辑存储结构与操作系统平台无关;
物理存储结构与操作系统平台有关。
从物理上看,数据库是由控制文件、数据文件、重做日志文件、初始化参数文件等组成的;
从逻辑上看,数据库是由表空间组成的。
表空间是最大的逻辑存储单位,块是最小的逻辑单位,逻辑存储结构中的块对应于操作系统中的块。
2.1.1逻辑存储结构
●许多初始化参数都是针对逻辑存储结构来定义的。
●逻辑存储结构包括表空间、段、区、块。
逻辑存储结构之间的关系是:
多个块组成区,多个区组成段、多个段组成表空间、多个表空间组成逻辑数据库。
●一个区只能存在一个数据文件中,一个段中的各个区可以分别在多个数据文件中。
组成区的块是连续的。
2.1.1.1表空间
表空间是最大的逻辑单位,一个数据库由多个表空间组成,一个表空间可以包含多个数据文件,一个数据文件只能属于一个表空间。
ORACLE自动创建的表空间包括:
SYSTEM系统表空间、SYSAUX辅助系统表空间、SYSAUX辅助系统表空间、TEMP临时表空间、UNDOTBS1重做表空间、USERS用户表空间等。
当SYSTEM表空间被创建为一个本地管理的表空间时,TEMP表空间就是必不可少的,否则他是可选的。
SYTEM和SYSAUX表空间值存放系统信息,不存放非系统信息。
2.1.1.2段
●段用于存储表空间中某一个特定的、具有独立存储结构的的数据库对象的数据,它由一个或多个连续的区组成。
●ORACLE中可用的段类型:
TABLE表段、TABLEPARTITION表分区段、INDEX索引段、INDEXPARTITION索引分区段、CLUSTER簇段、ROLLBACK回退段、DETERREDROLLBACK延迟回退段、UNDO撤销段、TEMPORARY临时段、CACHE高速缓存段、LOB二进制大对象段、LOBINDEX二进制大对象索引段
●段的增大过程是通过增加区的个数而实现的(每次增加一个区)。
每个区的大小是块的整数倍。
(1)表段
表段存储表的所有数据。
当用户创建表时,就会在该用户的默认表空间中为该表分配一个与表名相同的表段,以便将来存储该表的所有数据。
(2)表分区段
表分区段用于存储分区表的所有数据。
当用户创建分区表时,就会在该用户的默认表空间中为该表的每个分区分配一个表分区段。
通过将一个达标的数据分散到不同的表分区段中,就能降低I/O次数,提高性能。
(3)索引段
索引段存储索引的所有数据。
当用户用CREATEINDEX语句创建索引,或在定义约束而自动创建索引时,就会在该用户的默认表空间中为该索引分配一个与索引名相同的索引段。
(4)索引分区段
如果为分区表创建分区索引,则会为每个区分区索引分配一个索引分区段,其功能与表分区段相同。
(5)临时段
临时段存储排序所产生的临时数据。
临时数据首先会被暂存到排序区(属于PGA区)中,当排序区不足以暂存这些临时数据时,则会在该用户的临时表空间中自动创建一个临时段,用于暂存这些临时数据,排序结束时,临时段会自动消除。
执行以下操作时会产生临时数据:
CREATEINDEX,SELECT..ORDERBY,SELECT...GROUPBY,SELECTDISTINCT...,SELECT...UNION,SELECT...INTERSECT,SELECT...MINUS,ANALYZE命令。
在ORACLE中,每个用户都有一个用户分配临时段的临时表空间。
临时表空间一般通用,所有的用户的默认临时表空间都是TEMP表空间。
也可以创建另外的临时表空间,然后在创建用户时或创建用户之后,指定其临时表空间。
建议使用专用的临时表空间作为用户的临时表空间。
(6)回退段
回退段存储数据修改之前的位置和值。
利用这些信息,可以回退未提交的事务,维护数据库的读一致性,并能从例程的崩溃中进行恢复。
回退段的原理与实现是一项十分复杂的技术,已经面临淘汰。
自ORACLE9I来,增加了UNDO(撤销或还原)表空间,并增加了自动撤销管理功能来代替回退段的功能,即用撤销表空间代替回退段,但功能相同。
建议使用自动撤销管理功能中的撤销段,不要使用手动撤销管理的回退功能。
(7)撤销段
撤销表空间用于分配撤销段。
撤销段也用于存储数据修改之前的位置和值。
默认的撤销表空间由初始化参数UNDO_TABLESPACE指定的。
撤销表空间是循环使用的,已提交的撤销记录可能被覆盖,但可以用初始化参数UNDO_RETENTION指定撤销记录在撤销段中的保留时间。
即使在ORACLE中设置初始化参数UNDO_MANAGEMENT为AUTO,即启动自动撤销管理功能,也会在SYSTEM表空间中保留一个SYSTEM回退段,以便存放和处理由ORACLE系统事务产生的撤销数据。
在创建数据库后,运行SQL.BSQ脚本时会自动创建SYSTEM回退段,DBA不需要对它进行任何的维护和管理,也不能删除它。
(8)二进制大对象段
二进制大对象段用于存储LOB数据类型列中的数据,如:
文档,图像,音频,视频等。
创建表时,可以定义LOB数据类型的列,ORACLE会为此自动分配对应的二进制大对象段。
对于LOB列来说,如果数据长度少于40000字节,则与其他列的数据会一起存放在表段中;
否则数据就会被存储到二进制大对象段中。
2.1.1.3区
区是由物理上连续存放的块构成。
由一个或多个区组成段。
一个区只能属于一个数据文件。
当在数据库中创建带有实际存储结构的方案对象时,ORACLE将为该方案对象分配若干个区,以便组成一个对应的段,来为该方案对象提供初始的存储空间。
当段中已分配的区都写满后,ORACLE就要在该方案对象所在的表空间中为该段分配下一个新的空白区,以便容纳更多的数据。
2.1.1.4块
●块是最小的数据管理单位。
即数据管理中输入输出的最小单位。
相应的,操作系统执行输入输出操作的最小单位是操作系统块。
块的大小是操作系统块大小的整数倍。
●块大小是一个表空间的属性。
SYSTEM和SYSAUX表空间具有相同的标准的块大小,这个大小是在创建数据库时由DB_BLOCK_SIZE初始化参数指定的。
在创建数据库之后这个初始化参数值将不能再改变。
●在ORACLE9I前,同一个数据库中的所有表空间必须使用相同大小的块;
从ORACLE9I开始,允许表空间使用各自不同的块大小,这个大小是在创建该表空间时用BLOCKinteger[K]子句指定的。
如果不适用该子句,则可以使用DB_BLOCK_SIZE初始化参数指定的块大小。
在使用非标准块之前,必须先为非标准的块分配相应的数据告诉缓存。
2.1.2物理存储结构
数据库的物理存储文件有:
控制文件、数据文件、重做日志文件、密码文件、参数文件和归档重做日志文件等。
逻辑存储结构只有创建、删除的操作;
而物理存储结构除了创建、删除之外,还有一个最重要的将其移动到另外一个位置的操作。
2.1.2.1控制文件
●控制文件是一个很小的二进制文件。
在装载数据库时,ORACLE将读取控制文件中的信息,以便判断数据库的状态,获得数据库的物理结构信息及物理文件的使用权。
因此,控制文件对于数据库的成功装在,以及其后的打开都是至关重要的。
只有控制文件正常才能装载、打开数据库,否则不能。
●在数据库运行的过程中,每当出现数据库检查点(checkpoint)或修改数据库结构之后,ORACLE就会修改控制文件的内容。
DBA可以通过OEM工具修改控制文件中的部分内容,但是不应该认为的修改控制文件中的内容,否则会破坏控制文件。
●应该定期对数据库的控制文件进行备份,并将备份保存在不同的硬盘上;
另外,处于安全考虑,可以创建多个控制文件,互为镜像进行复用。
2.1.2.2数据文件
●数据文件是实际存储插入到数据库表中的实际的操作系统文件。
数据文件的大小与它们所存储的数据量的小小直接相关,会自动增大,但删除其中的数据,数据文件的大小不会减少,只能使其有更多的空闲区。
●一个表空间在物理上对应于若干个数据文件,而一个数据文件只能属于一个表空间。
●在创建表空间时,ORACLE会同时为该表空间创建第一个数据文件。
处SYSTEM表空间之外,任何表空间都可以由联机状态切换到脱机状态。
当表空间进入脱机状态时,组成该表空间的数据文件也就进入脱机状态了。
也可以将表空间中的某一个数据文件单独的设置为脱机状态,以便进行数据库的备份或恢复。
正在使用的联机数据文件是不能备份的。
2.1.2.3重做日志文件
●当用户对数据库进行修改时,ORACLE实际上是在内容中进行修改,过一段时间后,再几种将内存中的修改结果成批的吸入上面的数据文件中。
●如果在将内存中的修改结果写入到数据文件之前发生故障,导致计算机或数据库崩溃,那么,这些修改结果就会被遗失。
ORACLE是用重做日志文件来随时保存这些修改结果的,即ORACLE随时将内存中的修改结果保存到重做日志文件中。
“随时”表示在将数据修改结果写入数据文件之前,可能已经分好几次写入重做日志文件了。
因此,即使发生故障导致数据库崩溃,ORACLE也可以利用重做日志文件中的信息来恢复丢失的数据。
只要某项操作的重做信息没有丢失,就可以利用这些重做信息来重现该操作。
●因为ORACLE是以循环方式来使用重做日志文件的,所以每个数据库至少需要2个以上重做日志文件。
当第一个重做日志文件被写满之后,后台进程LGWR开始写入第二个重做日志文件。
当第二个重做日志文件写满后,又开始写入第一个重做日志文件。
●当循环使用的重做日志文件比较多、比较大时,可以记录的重做日志就比较多。
还可以启动自动归档功能,将即将被覆盖的重做日志文件中的内容存储到另外的归档文件总,以便不丢失任何重做日志,得以恢复任何数据。
2.1.