Oracle数据库体系结构图:

Oracle体系结构_第1张图片
1、实例
Oracle实例是内存结构和后台进程的集合。Oracle实例启动时,会分配一个系统全局区(SGA),并启动一系列的后台进程。分为单进程实例和多进程实例,依次对应一个进程完成Oracle的全部操作和多个进程操作Oracle不同部分的Oracle实例。多进程实例的每个连接用户都会有一个进程。
2、Oracle存储结构
数据库是数据的集合,物理上的结构是由数据文件、控制文件、重做日志文件组成。逻辑上从小到大为块、区、段、表空间、数据库。
1)物理结构
数据文件:数据的集合,每个数据文件之和一个数据库联系;只能属于一个表空间,扩展名为.bdf。
重做日志文件:扩展名为.log,记录了对数据库的所有更改信息,可用于数据恢复。重做日志文件是成组使用的,工作中,循环使用日志文件组;当一个重做日志文件组写满以后,会到下一个重做日志文件组进行日志记录。
控制文件:扩展名为.ctl,控制文件存储了数据文件、重做日志文件的位置和名称,是数据库启动过程必不可少的文件。所以控制文件一般都会进行备份,在Oracle11g默认包含了3个控制文件用于备份,可见其重要性。
口令文件:允许sysdba、sysoper 和sysasm 远程连接到实例并执行管理任务
参数文件:用于定义实例的启动配置,包含了控制文件位置的配置
归档日志文件:可以用来还原丢失的数据
2)逻辑结构
1>表空间:每个数据库都是有多个表空间构成的,用户在数据库中建立的所有数据都会存储到表空间里。一个表空间可能有多个数据文件组成,但是一个数据文件只能属于一个表空间。可分为永久性表空间、临时新表空间、撤销表空间。
表空间作用:对不用用户、模式对象分配不同的表空间,方便对用户操作和模式对象的管理;可以将数据写到不同的磁盘,提高读写性能、利于磁盘管理
默认安装的表空间:SYSTEM、SYSAUX、USERS、TEMP
2>段:存在于表空间内,由一组区组成。分为数据段、索引段、回退段、临时段。
3>区:磁盘空间分配的最小单位。
4>块:是数据库中最小的数据组织单位和管理单位。取值范围为2~64kb,跟Oracle的版本相关。
5>模式:是数据库对象的集合,模式对象包括表、视图、索引、同义词、序列、过程、程序包等。没创建一个用户,Oracle会创建一个和用户名相同的用户模式。用户登录到数据库,就会登陆到对应的用户模式。
6>新建表空间
create tablespace company :创建company表空间
datafile ‘/opt/oracle/oradata/orcl/company01.dbf’ size 10M :数据文件是/opt/oracle/oradata/orcl/company01.dbf拥有10M空间
autoextend on; :空间自动增长
7>增加数据文件大小
alter datafile company01.dbf :修改数据文件
‘/opt/oracle/oradata/orcl/company01.dbf’ size 20M :大小改为20M
autoextend on; :空间自动增长
8>为表空间增加数据文件
alter tablespace company :修改表空间
add datafile :添加数据文件
datafile ‘/opt/oracle/oradata/orcl/company02.dbf’ size 10M :大小10
M的/opt/oracle/oradata/orcl/company02.dbf
autoextend on; :空间自动增长
3、Oracle内存结构
1)Oracle内存存储的内容:程序代码、已经连接的会话、程序运行的必要信息、Oracle进程之间的通信和共享的信息。
2)分类:分为SGA系统全局区、PGA程序全局区、UGA用户全局区
3)SGA详细结构:
共享池:是用于对SQL语句进行语法分析、编译、执行的内存区域;由库缓存和数据字典组成。主要用于加快SQL查询时间。
数据缓冲区:用于缓存从磁盘中读入到数据,可以简单理解为用来加快用户读数据的内存。
重做日志缓冲区:会缓存变化的数据和变化之前的数据。用户执行了修改语句之后,会先将修改后的数据存到重做日志缓冲区、然后在交给数据缓冲区,可用于数据恢复。
大池:是一个可选的缓冲区、是当用户进行大规模输入的时候需要的较大的内存空间
java池:也是可选的缓冲区,用于缓存Java语言编写的指令
4、Oracle进程结构
1)Oracle进程分为用户进程、服务器进程、后台进程。简单说用户进程就是当用户向Oracle发起连接请求是建立的进程;服务器进程用于处理连接到该实例的用户进程的请求。
2)后台进程:是为了使系统性能更好的协调多个用户的实例的附加进程。主要有5个比较重要的后台进程。
PMON:进程监控进程,主要用于清理损坏的、不用的进程,释放用户资源,重启故障进程等。类似于个人电脑安装的360的工作。
SMON:系统监控进程,实例恢复、释放空间等作用。
DBWR:数据写入进程,管理数据缓冲区、写入数据
LGWR:日志写入进程,负责将日志缓冲区的日志写入到日志文件
CKPT:检查点进程,保证日志文件与数据文件的同步
5、Oracle用户管理
三个默认的用户:
SYS:数据库超级管理员
SYSTEM:数据库管理员,拥有DBA权限
SCOTT:示范用户,可用于测试
新建用户:
create user zhangsan :zhangsan--用户
identified by pwd123 :pwd123--密码
default tablespace company :company--表空间
quota unlimited on company :unlimited--无限制配额
password expire; :下次登陆修改密码
6、Oracle权限
系统权限:
Oracle体系结构_第2张图片
预定义角色:
connect:拥有连接数据库的权限
resource:拥有创建表、触发器、过程的权限
dba:数据库管理员权限
权限的收发:
grant privilege to user:授权给用户
revoke privilege from user:从用户出回收权限