前言:学完本课后,应该完成以下工作

1.列出ORACLE DB的主要体系结构组件

2.说明内存结构(SGA)

3.描述后台进程

4.将逻辑存储结构和物理存储结构关联起来


一.什么是oracle数据库

ORACLE关系数据库管理系统(RDBMS)提供了开放的,全面的,集成的信息管理方法

oracle服务器由oracle实例和oracle数据库组成

查看oracle服务器:ps   -ef|grep  ora_|cut  -d '_'  -f3 |sort|uniq

oracel实例:内存结构和后台进程

查看oracle实例:select   instance_name  from  v$instance;

数据库:物理文件,构造物理文件的逻辑结构组成

查看数据库:select  name  from  v$database;


注意:12C里,CDB是oracle服务器,但PDB也可以当成oracle服务器,他的实例和数据库是共享CDB里的,他依赖于CDB里的oracle服务器。应用程序一般跑在PDB里,不用CDB


二.连接到oracle服务器

程序连接,需要装上驱动

使用客户端工具(sqlplus,sqldevelop,toad...),需要打开监听


        

三.oracle体系结构

1.用户进程在数据库用户请求连接到ORACLE服务器时启动

查看用户进程信息,根据v$session视图

比如查看用户进程事务,进程号,等

select taddr,process,machine,program  from v$session  where username='SCOTT'




2.服务器进程它可以连接到ORACLE实例,是与用户进程建立会话时启动,接受用户进程的请求,并做相应处理.

注意:一般一个服务器进程对应一个用户进程, 但当用户进程是共享连接时,可以多个用户进程对应一个服务器进程

查看服务器进程:根据v$process视图

select  spid  from  v$process  where  addr  in (select  paddr  from  v$session  where  username='SCOTT');

查询到进程号SPID,可以查看它的信息

ps  -ef|grep  spid

top   -p   spid




3.ORALCE系统全局区(SGA)和用户全局区(PGA)

SGA主要组件: shard pool,buffer cache,logbuffer

shard pool:缓存sql语句和sql语句执行计划

Buffer cache:存放数据

logbuffer:存放日志


一条sql语句通过网络到达数据库实例过程

      1.server porcess(实例的进程,服务器进程,前台进程)接收sql 语句

      2 .server process 去shard pool找sql和执行计划 若没有  解析sql(shard pool有sql语句和执行计划的缓存)

          3.server process  根据执行计划去buffer cache(缓存dbf的数据)找相关的数据,如没有通过server process到dbf文件中取出数据放到buffer chache 再返给用户

          4.若需要修改数据,server process 先到buffer cache中读出数据,然后在内存中修改数据(产生日志)修改完返给用户(dbwr把修改过的数据写到磁盘,lgwr把日志写回磁盘)


查看SGA大小,SGA大小是自动管理的


select *  from v$sgainfo;

查看PGA大小

show  parameter  pga

改变PGA大小

alter  system   set   pga_aggregate_target=大小;




4.后台进程

ckpt进程,dbwn进程,lgwr进程,smon进程,pmon进程,其他进程

ckpt:检查点进程,维护数据一致性,当事务提交就会触发.

当ckpt触发,会把控制文件SCN加大,通知数据文件头SCN更新,通知dbwn写脏块.

dbwn:把脏块写入磁盘,需要lgwr写完日志

lgwr:再dbwn写之前,需要先把日志写进磁盘

smon:系统监视进程   

pmon:进程监视进程

其他进程:都是辅助进程,如果这些进程出现故障,pmon会重启他们


如何查看后台进程,看v$bgprocess

select  paddr,name  from  v$bgprocess where paddr<>'00';





5.ORACLE存储结构之文件(物理结构)

物理数据库结构

控制文件,数据文件,联机重做日志文件,参数文件,备份文件,归档日志文件,口令文件,预警和跟踪日志文件


控制文件:包含有关数据库本身的数据(物理数据库的结构信息)。这些文件对数据库而言至关重要。没有这些文件,就无法打开访问数据库数据的数据文件。


数据文件:包含数据库中的用户数据或应用程序数据。


联机重做日志文件:包含日志数据

这3个必须放在存储里

参数文件:第一次启动数据库会访问一下,以后基本不会访问


备份文件:备份控制文件,数据文件,参数文件,归档日志文件(千万不能放存储里)


归档日志文件:非活动的重做日志备份,使用归档日志可以恢复还原的数据文件(千万不能放在存储)


口令文件:丢了也没关系,可以生成。


预警和跟踪日志文件:ORACLE排错


如何查看数据文件,看v$datafile;

select   name   from v$datafile

如何查看日志文件,看v$logfile;

select  member   from  v$logfile;

如何查看控制文件,看v$controlfile;                                                                                                                                                                                

select  name  from  v$controlfile;

6.RACLE存储结构之表空间(逻辑结构)

表空间:就是多个数据文件组成,表在表空间上,表的数据存在文件上,

              普通表空间

              回滚表空间

              临时表空间

段,区,块


wKiom1blSxHw2Gn1AACjRmXBQ3Q490.pngwKiom1blSy2x1y5vAAChSOBGf9I868.png