oracle 架构和一些工具了解
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是怎么运作的
- User访问Oracle Server之前提交一个请求(包含了db_name、instance_name、username、password等信息),Oracle Server接收到请求并通过Password File的验证后,分配SGA内存池,启动后台进程同时创建并启动实例。
- 在启动实例之后User Process与Server Process建立Connect。
- 再通过Server process和Oracle Instance完成建立Sesscion。
- 用户执行SQL语句,由server process接收到并直接与Oracle交互。
- SQL语句通过Server Process到达Oracle Instance,再将SQL载入数据库缓冲区。
- Server Process通知Oracle Database将与SQL语句相关的数据块副本加载到缓冲区中。
- 在数据库缓存区执行SQL语句,并产生”脏缓冲区”。
- 由CKPT检查点进程检查到”脏缓冲区”,并调用DBWn数据库写进程,但在DBWn执行之前,应该由LGWR先将数据文件的原始状态、数据库的改变等信息记录到Redo Log Files。
- 将更新的内容写入到磁盘中的数据文件。
- 返回结果给用户
最新文章
- bzoj1080
- [MySQL][Spider][VP]Spider-3.1 VP-1.0 发布
- c# 多线程系列二 自定义线程执行器
- #查看Linux的版本信息
- HTTP协议学习---(七)代理
- SQL Server 存储(2/8):理解数据记录结构
- java开发微信公众平台备忘
- 【CITE】利用鼠标绘图C#
- sysfs->;sys简单介绍
- Linux下c函数dlopen实现加载动态库so文件代码举例
- C语言结构体占用空间内存大小解析
- offsetParent和parentNode区别
- IT第二十六天 - Swing、上周总结
- CodeForces 687C The Values You Can Make
- Vue 非父子组件通信方案
- 无法启动mysql服务”1067 进程意外终止”解决办法【简记】
- 【模拟与阅读理解】Gym - 101954C Rullete
- [4]传奇3服务器源码分析一 SelGate
- 函数putText()在图片上写文字
- 使用python把html网页转成pdf文件