第二章 Oracle体系结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.字典缓冲区
字典缓冲区用于保管数据字典中的行。 数据字典缓冲区也经过最近最少运用 〔LRU〕算法来管理。大小由数据库外 部管理。字典缓存区是SQL共享池的一 局部,共享池的大小〔以字节为单位〕 由数据库文件init.ora中的 SHARED_POOL_SIZE参数来设置。
3.重做日志缓冲区
对数据库停止修正的任何事务〔Transaction〕 在记载到重做日志之前都必需首先放到重做日 志缓冲区〔Redo Log Buffer.〕中。重做日志缓 冲区是专为此开拓的一块内存区域,重做日志 缓存中的内容将被LGWR后台进程随时写入重 做日志文件。
文件丧失
Redo Log文件组
Log File 1
Log File 2
Log File 3
Group1 Member A
Group2 Member A
Group3 Member A
Group1 Member B
Group2 Member B
Group3 Member B
Group1 Member C
2.2.4 数据库块
数据库块也称逻辑块或Oracle块,它对 应磁盘上一个或多个物理块,它的大小由 初始化参数db_block_size〔在文件init.ora 中〕决议,典型的大小是2k。
Pctfree和Pctused两个参数用来优化数据 块空间的运用。
PCTFREE:块中保管用于UPDATE 操作的空间百分比,当数据占用的空间到 达此下限时,新的数据将不能再拔出到此 块中;
2.1.1 数据文件( datafiles)
数据文件是用于存储数据库数据的文件,如基表、索引数据 等都物理地存储于数据文件之中,同时数据文件也是Oracle 三类文件中占用磁盘空间最大的一类文件。 存储了数据库的全部数据,数据文件一旦添加到数据库中, 那么不能删除,除非删除表空间。特征如下:
1、一个数据文件只与一个数据库相联络。 2、数据文件大小是静态可以改动的。 3、一个表空间由一个或多个数据文件组成。 查询数据文件信息,dba_data_files、v$datafile。 select tablespace_name,bytes/1024/1024 〝bytes(m)〞
6.多缓冲池
缓冲池把大数据集与其他的运用顺序分 开,以增加它们争夺数据块缓冲区内相 反的资源。可以在SGA中创立多个缓冲 池。
2.3.2 顺序全局区
顺序全局区PGA〔Program Global Area,PGA〕, 是单个Oracle进程运用的内存区域,不属于实例的 内存结构。它含有单个进程任务时需求的数据和 控制信息,PGA是非共享的,只要效劳进程自身 才可以访问它自己的PGA区。
2.1.3 控制文件
控制文件是描画数据库结构的二进制文件
一切必需的数据文件和日志文件在控制文件中标识
数据库名存储在控制文件中
控制文件用于翻开和存取数据库
数据库恢复所需的同步信息存储在控制文件中
数据库的物理组成与控制文件中的记载不同时,系统那么 不能正常启动或发作down机现象 建议设置:
至少运用两个控制文件,并寄存于不同磁盘 参数 Control_Files指明控制文件 控制文件的镜像可以在数据库创立或创立完成后停止
INITIAL:段树立时分配的第一个区的大小 〔单位:字节〕 NEXT:段内分配的下一个增量区大小〔单 位:字节〕 MAXEXTENTS:分配给段的区总数。 MINEXTENTS:树立段时分配的区的总数, 也就是段的最小区数量。 PCTINCREASE:为段分配的每个增量区超 越上一个区的百分比。 INITRANS:初始数量的DML事务条目〔并
〔4〕可以将某个表空间设置为脱机形状或联机 形状,以便对数据库的一局部停止备份和恢复。 〔5〕可以将某个表空间设置为只读形状,从而 将数据库的一局部设置为只读形状。 〔6〕可以为某种特殊用途专门设置一个表空间, 比如暂时表空间等,以优化表空间的运用效率。 〔7〕可以愈加灵敏地为用户设置表空间限额。
PCTUSED:指定块中数据运用空间 的最低百分比;
2.2.5 形式对象
Oracle数据库的形式对象包括表、视 图、序列、同义词、索引、触发器、存 储进程等。
2.3 内存结构
2.3.1 系统全局区 2.3.2 顺序全局区 2.3.3 排序区 2.3.4 软件代码区
2.3.1 系统全局区
系统全局区〔SGA,System Global Area.〕 是内存结构的主要组成局部,是Oracle为一 个实例分配的一组共享内存缓冲区,保管着 Oracle系统与一切数据库用户的共享信息, 包括数据维护、SQL语句剖析,重做日志管 理等。是实例的主要局部。
2.1.4 配置文件
配置文件是一个ASCII文本文件,记载Oracle 数据库运转时的一些重要参数。名字通常为 initsid*.ora格式,如:initCIMS.ora,SID相当 于它所控制的数据库的标识符。每个Oracle 数据库和实例都有它自己独一的init.ora文件。
Oracle9i新引入一个效劳器参数文件 〔SPFILE〕,一个效劳器参数文件 〔SPFILE〕可以被以为是在Oracle数据库效 劳器端的初始化参数文件。存储在一个效劳
SGA(System Global Area)
Shared Pool
Database
Buffer Cache
Redo Log
Buffer 1
Servers Users
DBWR
LGWR
ARCH 2
Redo Log
Data Files
Files
3
Redo Log 文件镜像
一个日志组中 Redo Log 文件具有相反的信息 选择适宜的日志文件大小 组中的成员同时被更新 每组应包括与其他组中数目相反的日志成员 镜像的 Redo Log文件可以防止 Redo Log
2.3.3 排序区
排序区存在于央求排序的用户进程的内存中, 由于排序需求内存空间,Oracle应用该内存 排序数据,这局部空间称为排序区。该空间 的大小为顺应排序数据量的大小,可增长, 但受初始化参数SORT_AREA_SIZER所限制。
SMON DBWR PMON CKPT LGWR Others
Parameter file
Password file
Data Control Redo files files log
files
Database
Archived log files
2.1 物理结构
2.1.1 数据文件 2.1.2 日志文件 2.1.3 控制文件 2.1.4 配置文件
1.数据块缓冲区
数据块缓冲区中寄存着Oracle系统最近从数据 文件中读取的数据块。
数据块缓冲区又称用户数据高速缓冲区,为一 切与该实例相链接的用户进程所共享。
数据块缓冲区的容量受物理容量限制。
在Oracle9i中,数据库缓存的大小可以直接由初 始化参数DB_CACHE_SIZE指定,该参数可以直 接以K字节或M字节为单位来设置数据库缓存的 大小。
重做日志缓存是一个循环缓存区,在运用时从 顶端向底端写入数据,然后再前往到缓冲区的 起始点循环写入。重做日志缓冲区的大小〔以 字节为单位〕由init.ora文件中的LOGBUFFER 参数决议。
4.共享SQL池
共享SQL池〔Shared SQL Pool〕相当于顺 序高速缓冲区,一切的用户顺序都寄存在 共享SQL池中。
1.数据段
数据段中保管的是表中的记载。
2.索引段
在Oracle数据库中每个未分 区索引都有一个索引段保管 索引中的索引条目。关于一 个分区索引,每个分区都有 一个索引段保管它的数据。
3.暂时段
当处置查询时,Oracle能够会 需求运用到一些暂时存储空间, 用于暂时保管解析过的查询语 句以及在排序进程中发生的暂 时数据。Oracle会自动在专门 用于存储暂时数据的表空间为 操作分配暂时段。
器参数文件的初始化参数是永世的,它提供 了由Oracle数据库效劳器自我调理的一个基 础。效劳器参数文件是二进制文件,不能运 用一个文本编辑器阅读或编辑。
2.2 逻辑结构
2.2.1 表空间 2.2.2 段 2.2.3 区 2.2.4 数据库块
2.2.5 形式对象
Oracle数据库存储结构
Database
3.表空间中对象的存储
假设表空间只对应一个数据文件,该表空间中 一切的对象都存储在此数据文件中。假设表空 间对应于多个数据文件,可将一个对象的数据 存储在该表空间的恣意一个数据文件中,也可 将同一个对象的数据散布在表空间的多个数据 文件中。
2.2.2 段
1.数据段 2.索引段 3.暂时段 4.回退段
Group2 Member C
Group3 Member C
日志切换
当ORACLE从一个Redo Log文件切换到另一个 日志文件时发作日志切换
当LGWR写满一组日志文件时发作日志切换 DBA可强迫日志切换 数据库封锁时发作日志切换 日志切换时,以后日志文件被赋予一个新的日志
序列号,用于标识其中的信息 日志切换时发生反省点CKPT(Checkpoint)
每个Oracle数库至少有两个Redo Log日志文件 组,每组有一个或多个日志文件
建议对Redo Log 文件停止镜像,以保证数据库平 安运转
建议运用至少三个Redo Log文件组,每组2或3个 日志文件
组内Redo Log 文件位于不同磁盘
Redo Log文件是循环运用的
日志发生进程
autoextensible,file_name from dba_data_files;
select file#,chekpoint_change# from v$datafile;
2.1.2 日志文件
Redo Log 文件记载关于数据库的一切修正,用于数 据库的恢复 假设关于日志文件停止镜像,那么相反的 Redo Log 信息被写入多个联机的 Redo Log文件中 数据库分为以下两种归档形式:ARCHIVELOG〔归 档日志〕或NOARCHIVELOG〔非归档日志〕形式。 Oracle运转NOARCHIVELOG时只要历史日志,没有 归档日志
2.表空间的运用
在数据库中运用多个表空间具有如下优势: 〔1〕可以将数据字典与用户数据分分开来,防止 由于字典对象和用户对象保管在同一个数据文件中 而发生的I/O抵触。 〔2〕可以将回退数据与用户数据分分开来,防止 由于硬盘损坏而招致永世性的数据丧失。 〔3〕可以将表空间的数据文件分散保管到不同硬 盘上,平均散布物理I/O操作。
Tablespace
Data File
Logical Segment
Physical
Extent
Oracle bolck
Os Block
2.2.1 表空间
1.表空间的分类 2.表空间的运用 3.表空间中对象的存储
1.表空间的分类
按功用分: Oracle中除了用户创立的寄存数据对象的数据 表空间外,还有以下类型的表空间: 〔1〕System表空间 〔2〕回滚表空间〔RollBack TableSpace〕 〔3〕暂时表空间〔Temp TableSpace〕 〔4〕用户表空间 按区的管理方式分: 〔1〕本地化管理表空间 〔2〕数据字典管理表空间
SQL共享池包括库高速缓存、数据字典高 速缓存和效劳器控制结构。
共享池的大小取决于init.ora文件参数 SHARED_POOL_SIZE,它是以字节为单 位的。用户必需将这个值设得足够大, 以确保有足够的可用空间来装载和存储 PL/SQL块和SQL语句。
5.Java池
Java池为Java命令提供语法剖析。
4.回退段
回退段用于寄存数据修正之前的旧值〔包 括数据修正之前的位置和值〕。 回滚段的作用主要有以下几方面: 〔1〕事务回滚 〔2〕事务恢复 〔3〕读分歧性
2.2.3 区
区是由很多延续的数据块组成的数据 库存储空间。
缺省状况下,数据库会运用表空间中 存储的存储参数来管理他们的区。
主要的几个存储参数:
第二章 Oracle体系结构
2021年7月24日星期六
Oracle9i数据库总体结构
User process
Server process
PGA
Instance
Shared pool Library cache
Data dict. cache
SGA
Data buffer cache
Redo log buffer