Oracle体系架构

打印 上一主题 下一主题

主题 1048|帖子 1048|积分 3144

目录
1.什么是oracle数据库?
2.什么是oracle实例?
3.存储布局
4.进程布局
5.内存布局
6.管理数据库实例


1.什么是oracle数据库?

——存储在硬盘上的文件
-这些文件可以看作是物理存储布局
目录:/u01/app/oracle/oradata/orcl下,.ctl  .dbf  .log文件

2.什么是oracle实例?

——把数据库中的文件读入到内存中,把内存中的镜像叫实例(instance)
以是管理数据库,启动、关闭数据库这些说法禁绝确,应该叫管理数据库实例。因为数据库只是些文件,无法启动、关闭。
数据库:实例可以是1:N----->Oracle RAC(集群)

3.存储布局



  • 物理存储布局:存储在硬盘上的文件
1)数据文件:*.dbf
必须存在的:
①system 系统的数据文件
②sysaux 系统的辅助文件(数据字典、AWR的信息,非常重要,主动工作量资料档案库,性能优化)
③undo 还原数据文件(历史数据),闪回(flashback)
举例:update某项数据,但没有commit,此时更新前的历史数据存在undo里面。输入rollback;可回滚。
④temp 临时数据文件(排序order by,排好序的结果、临时表)
可选的数据文件:
用户数据文件,user01.dbf、example01.dbf

2)日志文件:*.log----->记载的客户端的事务操纵的DML
使用日志组的方式来管理日志文件,每组至少两个成员,写日志以日志组为单位
默认有三个日志组
如果日志都没有丢失(没有覆盖),那就可以做到数据库的完全规复!
Oracle默认是非归档模式(会发生日志覆盖),一样平常来说,生产都是归档模式。
用管理员账号,archive log list查看Database log mode,值为No Archive Mode非归档模式

数据文件和日志文件的关系:
①.sqlplus客户端,执行DML,commit;
②.数据在实例(内存)中(检查点队列,脏数据);
③.将事务写入日志文件(如果日志写入乐成,就算客户端的commit操纵乐成);
④.当发生了检查点时,会以最高优先级唤醒数据库的写进程,来写脏数据;(写好了日志就可以清了)

实例规复:通过日志,规复丢失数据
什么是检查点?checkpoint
①完全检查点
(1)正常关机
(2)切换日志组
(3)alter system checkpoint
②增量检查点(9i以后)
(1)每隔3s
(2)当日志到达1/3满的时候

3)控制文件:*.ctl------>当成是存储参数设置的文件
存储了数据文件和日志文件的位置
RMAN(recovery manager)备份的元信息
oracle保举:采用多路复用的机制(多存几个),包管控制文件的可用
默认:2个(这两个路径位于两块不同的磁盘上)

4)其它文件。

4.进程布局

1)客户端进程
2)服务器进程(1:1客户端进程,专有服务器模式)
3)LGWR写日志进程
4)CKPT检查点进程
5)DBWn写进程(脏数据->数据库文件)
默认:只有一个写进程,DBW0


  • ora_dbw0_oral写进程,默认只有一个
原则:写进程个数不超过cpu核数。


  • ora_lgwr_orcl写日志进程(以日志组为单位,每组2个成员)
  • ora_ckpt_orcl检查点进程(完全、增量)
  • ora_smon_orcl系统的监督进程(system monitor),Oracle最焦点的进程
关闭Oracle数据库最快的方式?kill -9 监督进程pid


  • ora_pmon_orcl是Process monitor。当系统出现错误的时候,负责清理现场
  • 其它进程。

5.内存布局



  • SGA:System global area
大小:sga_target big integer 0
注:0表示大小由Oracle数据库主动分配
buffer cache缓存数据:数据的高速缓存,大小:db_cache_size 0
1.在buffer cache中查询数据
2.如果有数据,直接返回数据  一次掷中,性能优化师考虑掷中率,buffer cache抱负掷中率?100%,性能优化相关
3.如果没有数据,读取数据文件*.dbf

shard pool共享池:数据字典、SQL(这个用户执行的语句,也有可能被其他用户执行,以是放到共享池)、执行计划;大小:shard_pool_size 0
log buffer日志缓冲区:logger_buffer 10588160(就这一个有具体值)
java pool、large pool大池、streaming pool流池

因为SGA中只有log buffer的内存有固定大小,其它没有固定大小,因此从AMM又引入了:ASMM:automatic shared memory management



  • PGA:Progress global area
大小:pga_aggregate_target big integer 0
注:11g以后提供一个新功能:AMM主动内存管理(automatic memory management):白天晚上内存用量不一样,需要管理:只需要设置一个内存的总大小(memory_target=SGA+n*PGA)即可。
(怎么查看数据库内存大小?)
show parameter memory_target

6.管理数据库实例



  • 怎样启动数据实例?
控制文件----->数据文件和日志文件----->打开数据库

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表