(1) Oracle数据体系结构
由实例和存储结构组成
(2) 实例
1实例是用户与物理数据库之间的中间软件。
2同一时间一个用户只能与一个实例联系
3用户操作数据库的过程就是通过与实例建立联系,通过实例操作数据库的过程
(3) SGA
系统全局区,多用户共享
(4) 重做日志缓冲区
存放修改日志记录,通过LGWR写入日志文件中。
(5) 数据高速缓存区
1.将修改后的数据提交到数据库缓存区内,BDWR进程将其写进数据库中。
2.读取数据库中的数据,放到缓冲区中供用户读取。
(6) 共享池
用于缓存执行过的sql,PL/sql语句和数据字典信息。对sql,plsql进行语法分析,编译,执行操作
(7) Java池
存储分析执行Java程序的缓存
(8) 大型池
为多线程服务器,数据库备份恢复,排序等需要大量缓存的内存区域。
(9) 流池
用于对流的支持
(10) SGA的管理
通过设置初始参数target对各个缓存区进行自动管理
(11) PGA
系统全局区,当前用户使用
1.排序区
2.游标区
3.会话区
4.堆栈区
(12) 后台进程
SMON:系统监控进程,对系统监控
PMON:进程监控进程,对失败的用户进程,服务器进程恢复,对进程仅行监控和维护
CKPT:检查点进程,记录数据库的结构和状态,保证数据同步
ARCH:归档进程
DBWR:数据库写入进程
LGWR:日志写入进程
RECO:恢复进程,在分布式数据库环境中自动解决分布式事务的故障。一个节点的RECO自动解决所有的悬而未决的事务。
LCKn:锁进程。LCKn进程用于Oracle并行服务器环境中。在数据库中最多可以启动10个LCKn进程,主要用于实例间的封锁。
Dnnn:调度进程,调度进程接受用户进程请求,将它们放入请求队列中,然后为请求队列中的用户进程分配一个服务器进程。最后,从响应队列返回数据给用户进程。
(13) 数据文件
1.概述:
保存存储在数据库所有数据
2.内容:
–每个数据文件有两个文件号
相对文件号:用于表空间内唯一标识
绝对文件号:用于数据库范围的唯一标识。
–数据库中有多个数据文件。
(14) 控制文件
概述
存储数据库结构状态等信息
内容
–描述了数据库的物理结构
–是一个很小的二进制文件
–一个数据库至少有一个控制文件
(15) 重做日志文件
概述
记录修改数据库的操作的信息
内容
一个数据库至少有两个重做日志文件,用于日志切换。
(16) 口令文件
用于保存具有SYSDBA,SYSOPER权限的用户名和SYS用户口令
(17) 归档日志文件
记录写满的重做日志文件
(18) 参数文件
概述存储数据库初始化的参数值
内容
参数文件记录了Oracle数据库的基本参数信息,主要包括数据库名、控制文件所在路径、进程等。参数文件分为文本参数文件和服务器参数文件两种。
(19) 逻辑结构
(20) 表空间
1.最大的逻辑存储单元。
2.用户在数据库建立的所有内容都存放在表空间中。
3.一个数据库有一个或多个表空间组成。
4.一个表空间有一个或多个数据文件。数据文件大小决定了表空间的大小,一个数据文件只能属于一个表空间
5.一个数据库对象只能存放在一个表空间,但可以存放在多个数据文件中。
6.永久性表空间:保持基本表,视图,索引等。
临时表空间:用于保存系统中短期活动的数据。
撤销表空间:用于帮助回退未提交的食物数据
管理数据库
1.控制整个数据库占用空间的大小
2.控制数据库在磁盘上的分配
3.控制用户所占用的存储空间的大小
(21) 段
1.有一个或多个连续或不联系的区组成的逻辑存储单元。
2.一个对象只拥有一个段。一个段至少包含一个区。
3.段不再是存储空间的分配单位,而是一个独立的逻辑存储结构。段存于表空间中并且由盘区组成。
4.数据段:表或簇
临时段:当需要排序而占用很大的内存时,临时表空间会指派临时段排序,会话结束后,临时段数据清空
回滚段:存放回滚的数据
索引段:存放索引信息。
(22) 盘区
1.系列的数据块构成的,是存储空间分配与回收的最小单位
2.当创建一个数据库对象时,数据库会给对象分配若干区组成一个段,当分配的区用完,则分配一个新区。
(23) 数据块
1.大小在数据库创建时设置,不可更改
2.一个数据块还有多个系统块
(24) 有关sql语句
通过参数target查看SGA的大小:
SQL> SELECT ((SELECT SUM(value) FROM V SGA)−(SELECTCURRENTSIZEFROMV SGA_DYNAMIC_FREE_MEMORY))/1024/1024||’MB’
AS “SGA_TARGET”
FROM DUAL;
设置SGA的大小:
ALTER SYSTEM set SGA_TARGET
管理表空间的
包含数据库中所有表空间的描述信息
SELECT * FROM DBA_TABLESPACE
包含当前用户表空间的描述信息
SELECT * FROM USER_TABLESPACE
包含从控制文件中获取的表空间名称和编号信息
SELECT * FROM V$TABLESPACE;
包含数据文件以及所属的表空间的描述信息
SELECT * FROM DBA_DATA_FILES
查看每个表空间的大小
SELECT tablespace_name,SUM(bytes) / 1024 / 1024
FROM dba_segments GROUP BY tablespace_name