Oracle从入门到精通复习笔记(一)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据块
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)、程序全局区也可称作用户进程全局区,它的内存区在进程私有区而不是共享区中;