oracle的架构大概分为3部分,

客户端:用户端

oracle instance:叫做实例,由内存结构(内存池或者叫SGA)和后台进程组成。Oracle Instance是Oracle RDBMS的核心之一,负责RDBMS的管理功能。内存结构有SGA(share global area)系统全局区域 ,后台五大进程包括 pnom(process monitor),smon(system monitor) ,DBWN,LGWR,CKPT,等。

数据库数据文件:各种文件,数据文件,控制文件,重做日志文件等。

说明:可以多个实例对应一个oracle数据库。SGA可以让多个进程共享,PGA一般让一个进程使用,是为每个用户单独分配的内存。所以在用dbca创建数据库的时候,80%给SGA,20%给PGA。

用户连接进程 = 用户进程 + 服务进程 + PGA

dateabase(数据库)

tablespace(表空间)

segment(段)

area?(区)

block(数据块) 最后映射到磁盘块中。

工具有sqlplus ,em的web管理方式。dbca工具创建数据库。

toad for oracle ,Navicat for oracle 工具也可第三方使用oracle数据库。

启动em管理器命令: emctl start dbconsole;

启动报错没有jdbc文件解决方法: emca -config dbcontrol db -repos recreate;

执行一条写入的SQL语句时在RDBMS中都发生了什么

 
1. 将SQL语句加载入数据库缓冲区 
2. 将SQL语句要操作的数据文件副本加载入数据库缓冲区 
3. 执行SQL语句,修改数据文件副本,形成“脏缓冲区” 
4. CKPT检测到“脏缓冲区”,调用DBWn 
5. 在DBWn运行之前,先运行了LGWR,将数据文件的原始状态和数据库的改变记录到Redo Log Files 
6. 运行DBWn,将“脏缓冲区的内容写入到数据文件” 
7. 同时CKPT修改控制文件和数据文件头 
8. SMON回收不必要的空闲资源

最后

最后我们举个例子来看看Oracle RDBMS是怎么运作的 

    1. User访问Oracle Server之前提交一个请求(包含了db_name、instance_name、username、password等信息),Oracle Server接收到请求并通过Password File的验证后,分配SGA内存池,启动后台进程同时创建并启动实例。
    2. 在启动实例之后User Process与Server Process建立Connect。
    3. 再通过Server process和Oracle Instance完成建立Sesscion。
    4. 用户执行SQL语句,由server process接收到并直接与Oracle交互。
    5. SQL语句通过Server Process到达Oracle Instance,再将SQL载入数据库缓冲区。
    6. Server Process通知Oracle Database将与SQL语句相关的数据块副本加载到缓冲区中。
    7. 在数据库缓存区执行SQL语句,并产生”脏缓冲区”。
    8. 由CKPT检查点进程检查到”脏缓冲区”,并调用DBWn数据库写进程,但在DBWn执行之前,应该由LGWR先将数据文件的原始状态、数据库的改变等信息记录到Redo Log Files。
    9. 将更新的内容写入到磁盘中的数据文件。
    10. 返回结果给用户

最新文章

  1. bzoj1080
  2. [MySQL][Spider][VP]Spider-3.1 VP-1.0 发布
  3. c# 多线程系列二 自定义线程执行器
  4. #查看Linux的版本信息
  5. HTTP协议学习---(七)代理
  6. SQL Server 存储(2/8):理解数据记录结构
  7. java开发微信公众平台备忘
  8. 【CITE】利用鼠标绘图C#
  9. sysfs->sys简单介绍
  10. Linux下c函数dlopen实现加载动态库so文件代码举例
  11. C语言结构体占用空间内存大小解析
  12. offsetParent和parentNode区别
  13. IT第二十六天 - Swing、上周总结
  14. CodeForces 687C The Values You Can Make
  15. Vue 非父子组件通信方案
  16. 无法启动mysql服务”1067 进程意外终止”解决办法【简记】
  17. 【模拟与阅读理解】Gym - 101954C Rullete
  18. [4]传奇3服务器源码分析一 SelGate
  19. 函数putText()在图片上写文字
  20. 使用python把html网页转成pdf文件

热门文章

  1. jmeter之聚合报告(Aggregate Report)
  2. django对layui中csrf_token处理方式及其它一些处理
  3. Python3入门系列之-----异常处理
  4. WPF进阶技巧和实战07--自定义元素02
  5. 通过Python收集MySQL MHA 部署及运行状态信息的功能实现
  6. 【C++ Primer Plus】编程练习答案——第4章
  7. 初探webpack之编写plugin
  8. 小程序 rich-text 处理显示
  9. Java并发编程实战——读后感
  10. C chdir函数