1. Oracle数据库的文件结构
数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。
控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。
数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。
日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
参数文件:记录基本参数。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享服务器连接
跟踪文件:show parameter user_mp_dest---使用专用服务器连接
2. 数据库oracle简介
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
特点
1、完整的数据管理功能:[2]
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的操作。
这是一个技术发展的趋势,不在这里讨论。
优点
■ 可用性强
■ 可扩展性强
■ 数据安全性强
■ 稳定性强
3. Oracle数据库的逻辑结构
它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。
段(Segment):
是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
其中包括:
数据段:用来存放表数据;
索引段:用来存放表索引;
临时段:用来存放中间结果;
回滚段:用于出现异常时,恢复事务。
范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。
数据块(Block):
是数据库进行IO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。
4. 简要说明oracle数据库体系的内存结构
内存结构 oracle内存结构大致具有四个区:软件代码区、系统全局区、程序全局区和排序区。 1、系统全局区。(SGA) 系统全局区为一组由oracle分配的共享数据结构,它是实例的主要部分,它含有数据维护、SQL语句分析与重做缓存所必须的所有内存结构,系统全局区的数据是共享的,也就是说,多个进程可以在同一时间对SGA中的数据进行访问和修改。它包含以下内容: <1>、数据块缓冲区 该区存放最近使用过的数据块,使用LRU(最近最少使用算法)进行管理。 <2>、字典缓冲区 该区用于保存数据字典中的行,数据字典中存放oracle系统管理自身所需的所有信息。该区也使用LRU算法管理。 <3>、重做日志缓冲区 任何事务在记录到重做日志之前都先放到该区,数据库系统定期将该区内容写入到联机重做日志中。 <4>、SQL共享池 存放所有通过SQL语法分析、准备执行的SQL语句。 <5>、JAVA池 为JAVA命令提供语法分析。 <6>、多缓冲池 可以在SGA中创建多个缓冲池,能够用多个缓冲池把的数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区相同资源的可 能性。 2、程序全局区(PGA) 包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。 3、排序区 排序需要内存,这部分空间成为排序区,排序区存在于请求排序的用户进程的内存中,该空间的大小为适应排序数据量的大小,可增长,但受初始化参数SORT_AREA_SIZER所限制。 4、软件代码区 用于存储正在执行或可以执行的程序代码。 </FONT></SPAN>
5. 大型Oracle数据库如何设计
超大型系统的特点为: 1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB; 2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。 为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。 一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle 8.0.6并行服务器为例来谈谈超大型数据库设计方法: 确定系统的ORACLE并行服务器应用划分策略 数据库物理结构的设计 系统硬盘的划分及分配 备份及恢复策略的考虑 二、Oracle并行服务器应用划分策略 Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁,并通过专门的LCK进程实现INSTANCE实例间的数据一致。 考虑这种情况:INSTANCE1对BLOCK X块修改,这时INSTANCE2对BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK X从INSTANCE 1的SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2的SGA区中。发生这种情况即为一个PING。PING使原来1个MEMORY IO可以完成的工作变成2个DISK IO和1个 MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。 Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING。 合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING。 所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING。设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法: 1、根据功能模块划分,不同的节点运行不同的应用 2、根据用户划分,不同类型的用户运行在不同的节点上 3、根据数据划分,不同的节点访问不同的数据或索引 4、根据时间划分,不同的应用在不同的时间段运行 应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。 三、数据库物理结构的设计 数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。 表及索引数据量估算及物理存储参数的设置 表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。
6. 2. 简述oracle数据库的逻辑存储结构(麻烦知道的告诉下)
Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间(tablespace)、段(segment)、区(extent)和块(block)四种。一个表空间由多个段构成;一个段由多个区构成,一个区由多个块构成。数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或多个数据文件,但一个数据文件只能属于一个表空间。
逻辑存储结构概念存储在数据字典中,用户可通过查询数据字典获取逻辑存储结构信息。