数据块
1)、块头; 2)、表目录; 3)、行目录; 4)、空余空间; 5)、行数据; 数据区
1)、多个数据块组成,也称为数据扩展区,数据区是Oracle储存分配的最小单位。 段 1)、由多个数据区组成; 2)、数据段:数据段中保存的是表中的数据记录; 3)、索引段:索引段中包含了用于提高系统性能的索引; 4)、回滚段(撤销段):回滚段中保存了回滚条目,oracle将修改前的旧值保存在回滚段中;
5)、临时段:当执行创建索引、查询等操作时,Oralce可能会使用一些临时储存空间,用于暂时性的保存解析过的查询语句以及在排序过程中产生的临时数据。
表空间 1)、表空间是数据库的最大逻辑划分区域; 2)、表空间(逻辑储存结构)=文件夹>数据文件(物理储存结构)=文件;
Oracle默认创建的主要表空间 1)、SYSTEM表空间 2)、SYSAUX表空间:充当SYSTEM的辅助表空间; 3)、UODO表空间:撤销表空间,用于储存撤销信息的表空间; 4)、USERS表空间:用户表空间
物理储存结构 1)、数据文件; 1)、系统数据文件; 2)、撤销数据文件; 3)、用户数据文件; 2)、控制文件; 1)、控制文件是一个二进制文件,它记录了数据库的物理结构,其中主要包括数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息;
2)、只有控制文件正常,实例才能加载并打开数据库; 3)、每个数据库至少拥有一个控制文件,但一个控制文件只能属于一个数据库; 3)、日志文件; 1)、日志文件的主要功能是记录对数据所做的修改,对数据库所做的修改几乎都记录在日志文件中;
2)、重做日志文件; 1)、重做日志文件用来记录所发生过的更改信息(添加、修改、删除)及由oracle内部行为而引起的数据库变化信息;
3)、归档日志文件; 5)、服务器参数文件; 1)、服务器参数文件是二进制文件,用来记录oracle数据库的基本参数信息(数据库名、控制文件所在路径、日志缓冲大小等)。
2)、查看服务器参数; 1)、查询v$parameter; 2)、使用SQL*PLus的SHOW PARAMETER命令显示服务器参数;
3)、修改服务器参数; 1)、通过企业管理器(OEM)修改; 2)、使用ALTER SYSTEM命令修改服务器参数;
6)、口令文件; 7)、辅助文件; 1)、密码文件; 1)、密码文件是oracle系统用于验证sysdba权限的二进制文件,当远程用户以sysdba和sysoper连接到数据库时,一般要用到密码文件验证;
2)、警告文件(警告日志文件); 1)、警告文件是一个储存在oracle系统目录下的文本文件(通常为alert_orcl.log),它用来记录oracle系统的运行信息和错误信息;
2)、随着时间的推移,警告文件会越来越大,数据库管理员应该定期删除警告文件; 3)、跟踪文件; 1)、后台跟踪文件,用于记录后台进程的警告或错误信息; 2)、用户进程文件,用于记载与用户进程相关的信息,它主要用于跟踪SQL语句; 3)、每个后台进程都有对应的后台进程文件; Oracle服务器 1)、实例;
1)、系统全局区(SGA)
1)、SGA使用操作系统的内存资源,是所有用户进程共享的一块内存区域,也就是说,SGA中的数据资源可以被多个用户进程共同使用;
2)、高速数据缓存区(Database buffer cache);
1)、高速数据缓存区中存放着Oracle系统最近访问过的数据块,数据块在高速数据缓存区中也称为缓存块;
2)、若无法在高速缓存区中找打所需要的数据,则Oracle首先从数据文件中读取指定的数据块到缓存区,然后再从缓存区中将请求的数据返回给用户;
3)、脏数据区:脏数据区中存放着已被修改过的数据,这些数据等待被写入到数据文件中;
4)、空闲区:空闲区中数据块不包含任何数据,这些数据块可以被写入数据,Oracle可以从数据文件中读取数据块,并将其存放到该区中;
5)、保留区:保留区中包含那些正在被用户访问的数据块和明确保留以作为将来使用的数据块,这些数据块将被保留在缓存区中;
3)、共享池(Shared Pool); 1)、共享池是SGA保留的内存区域,用于缓存SQL语句、PL/SQL语句、数据字典、资源锁、字符集以及其他控制结构等;
2)、库高速缓冲区:库高速缓冲区是共享池的一部分,主要包括共享SQL区和私有SQL区两个组成部分;
3)、字典高速缓冲区:用于存放Oracle系统内部管理所需要的数据字典信息,例如用户名、数据对象和权限等;
4)、Oracle共享池不是越大越好,因为系统的内存资源是有限的,而且操作系统本身也要消耗一定的内存空间。
4)、重做日志缓冲区(Red log buffer cache); 重做日志缓冲区用于存放对数据库进行修改操作时所产生的日志信息。 5)、Java池; 用来提供内存空间给Java虚拟机使用,目的是支持在数据库中运行Java程序包,其大小由JAVA_POOL_SIZE参数决定。
6)、大型池(large Pool); 大型池在SGA区中不是必需的内存结构,只在某种特殊情况下,实例才需要使用大型池来减轻共享池的访问压力,常用的情况有以下几种:
当使用恢复管理器进行备份和恢复操作时,大型池将作为I/O缓冲区使用;
使用I/O Slave仿真异步I/O功能时,大型池将被当做I/O缓冲区使用; 执行具有大量排序操作的SQL语句; 当使用并行查询时,大型池作为并行查询进程彼此交换信息的地方;
7)、流池; 流池用于在数据库与数据库之间进行信息共享; 如果没有用到Oracle流,就不需要设置该池; 流池的大小由参数STREAMS_POOL_SIZE决定;
2)、数据库;
3)、程序全局区(PGA); 1)、程序全局区也可称作用户进程全局区,它的内存区在进程私有区而不是共享区中;
2)、私有SQL区;
私有SQL区用于存储变量以及SQL语句运行时的内存结构信息,当每个用户连接到实例时,都会在实例中创建一个会话;
3)、会话区;
会话区用于存放用户的会话信息(如登录用户名);
4)、前台进程;
前台进程包括用户进程和服务进程,它不属于实例的一部分,但是用户在不知不觉中经常会用到它,使用前台进程能够实现用户与实例的沟通。
1)、用户进程;
指那些能够产生或执行SQL语句的应用程序。 2)、服务进程;
用于处理用户会话过程中向数据库实例发出的SQL语句或SQL*Plus命令,它可以分为专用服务器模式和共享服务器模式。
5)、后台进程;
使用CPU与内存资源; 1)、数据写入进程(DBWR); 1)、数据写入进程的主要任务是负责将内存中的“脏”数据块回写到数据文件中。 2)、当用户进程执行插入或修改等操作时,需要将“新数据”写入高速数据缓冲区,如果在高速数据缓冲区中没有找到足够大的空闲数据块来存放这些“新数据”,这时,Oracle系统将启动DBWR进程将“脏”数据块写入数据文件,以获得空闲数据块来存储这些“新数据”。
3)、当检查点进程启动后,它会强制要求DBWR将某些“脏”数据块写入数据文件中。
4)、当“脏”数据块在高速数据缓冲区中存放超过三秒钟,DBWR进程会自行启动并将某些“脏”数据块写入到数据文件中。
2)、检查点进程(CKPT); 检查点进程可以看做一个事件,当检查点事件发生时,CKPT会要求DBWR将某些“脏”数据块回写到数据文件中。
3)、日志写入文件(LGWR); 日志写入进程用于将重做日志缓冲区中的数据写入重做日志文件。 4)、归档进程(ARCH); 归档进程是一个可选择的进程,只有当Oracle数据库处于归档模式时,该进程才可能起到作用。
5)、系统监控进程(SMON); 系统监控进程是在数据库系统启动执行恢复工作的强制性进程。
6)、(PMON); 进程监控进程用于监控其他进程的状态,当有进程启动失败时,PMON会清除失败的用户进程,释放用户进程所用的资源。
7)、锁定进程(LCKN);
这是一个可选进程,并行服务器模式下可以出现多个锁定进程以利于数据库通信。
8)、恢复进程(RECO);
这是在分布数据库模式下使用的一个可选进程,用于数据库不一致时进行恢复工作。
9)、调度进程(DNNN);
这是一个可选进程,在共享服务器模式下使用,可以启动多个调度进程。
10)、快照进程(SNPN); 快照进程用于处理数据库快照的自动刷新,并通过DBMS_JOB包运行预定的数据库存储过程。
数据字典
1)、数据字典是Oracle存放关于数据内部信息的地方,其用途是用来描述数据库内部的运行和管理情况。
2)、数据字典概述:
dba_:包含数据库实例的所有对象信息; v$_:当前实例的动态视图,包含系统管理和系统优化等所使用的视图; user_:记录用户的对象信息; gv_:分布式环境下所有实例的动态视图,包含系统管理和系统优化使用的视图;
all_:记录用户的对象信息机被授权访问的信息; 3)、基本数据字典; 4)、常用动态性能视图;
相关推荐: