Oracle数据库进程概述:

Database buffer cache主要用于存储数据文件中的数据块

数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位。在Oracle数据库8i以前,数据块大小只有一种,而Oracle数据库9i以后支持2K,4K,8KB,16KB及32KB五种。

用命令SQL>SHOW PARAMETER DB可以显示当前数据库的BUFFER CACHE

数据库缓存和特点如下:

<1>.根据最近最少使用LRU.

<2>. 由DB_BLOCK_SIZE来指定大小.

<3>.ORACLE使用时是以块大小为单位进行数据存取的.

还包含以下一些独立的子缓存:

<1>.DB_CACHE_SIZE.

<2>.DB_KEEP_CACHE_SIZE.

<3>.DB_RECYCLE_CACHE_SIZE.

注:可以用Alter system set db_cache_advice=on;设置成根据系统的建议来指定大小。

REDO LOG FILE主要是用于重做日志

用命令SQL>SHOW PARAMETER LOG_BUFFER。

SQL>ALTER SYSTEM SET LOG_BUFFER_SIZE=60M。

用来显示或修改重做日志缓冲区的一些信息。

命令SQL>achive log list 可以查看数据库当前的归档模式。

LARGE POOL:

与JAVA POOL一样,都是作为系统可选的内存结构,由SGA来配置。

JAVA POOL:

当安装或使用JAVA时才用到.

ORACLE内存进程包括两个,一个是SGA,一个是PGA.

(1).SGA在ORACLE实例启动时分配,是ORACLE实例的一个基本组件.

(2).PGA是在当服务器进程启动时分配的.

进程结构:

<1>.USER PROCESS.用于用户与ORACLE SERVER交互的进程.

USER PROCESS必须与ORACLE建立连接后才可使用,不可与ORACLE SERVER交互.

<2>.SERVER PROCESS.

SERVER PROCESS在用户与服务之间建立连接后,为执行用户命令的一个进程.

<3>.BACKGROUND PROCESS.

后台进程:DATABASE WRITER (DBWn)用来把DATA BUFFER CACHE中的脏数据写回到数据库中.

(注:脏数据是被改变的数据.)

在以下情况下它会写数据库:

<1>.在发生CHECKPOINT同步.

<2>.脏数据达到阀值.

<3>.DATABASE BUFFER CACHE 自由空间太少了.

<4>.TIMEOUT (3秒钟.)

<5>.RAC PING REQUEST.

<6>.TABLESPACE OFFLINE.

<7>.TABLESPACE READONLY.

<8>.TABLE DROP OR TABLE TRUNCATE (表数据清空或表结构删除).

<9>.TABLESPACE BEGIN BACKUP.

由SGA (包含DATABASE BUFFER CACHE,BACKGROUND PROCESS)-----> [ DBWn ]----> {data files,

control files, redo log file} ---->由此过程改变数据库中的数据.

LOG WRITER (LGWR) 日志写进程

在Oracle环境中

<1>.当COMMIT的时候.

<2>.当三分之一空间满时.

<3>.当日志有1MB需要重做时.

<4>.每3秒

<5>.BEFORE DBWn WRITES.(写数据前先写日志).

REDO LOG BUFFER----->LGWR--->DBWn

|--------------------------------------> REDO LOG FILES

SYSTEM MONITOR (SMON)系统监控进程

主要任务:

(1).启动过程(假定DATABASE重启时)如果需要RECOVERY,则此进程会负责打开数据库,及回滚没有

提交的事务;以及rolls forward changes in the redo logs..这些统称为:instance recovery.

(2).对每3秒就对系统自由空间的整理.(COALESCES FREE SPACE EVER 3 SEC.)

(3).清空临时段空间(DEALLOCATES TEMPORARY SEGMENTS).

这个过程也是在系统启动过程中完成的.

PROCESS MONITOR (PMON) 进程监控进程

主要用于回滚异常终止的或被用户强制终止的事务.

<1>.rolling back the transaction.

<2>.releasing locks.释放锁.

<3>.releasing other resources.

<4>.restarts dead dispatchers.重启死掉的调度器.(在共享服务器中用).

PMON (:Include in SGA)----------------------->PGA

CHECKPOINT (CKPT) 检查点进程

用来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里.

<1>.会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT.)

<2>.完后会更新DATAFILE的HEADER和控制文件的HEADER.而HEADER中有同步所需要的信息,即

CHECKPOINT的信息.

<3>.在ORACLE中,正常情况下,所有文件必须同期性地同步;靠CHECKPOINT来完成.

CKPT(作为后台进程包含在实例中)------------------DATABASE

(data files,control files,redo log files.)

| |______DBWn

|________LGWR

Archive PROCESS (ARCn) :归档进程(可选进程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份.)

<1>.Automatically archives online redo logs when archiverlog mode is set.

(设置归档模式后,将自动备份在线日志)

在处理SQL语句时,注意以下过程:

<1>.用以下进程连接到实例.

用户进程(USER PROCESS).

服务器进程(SERVER PROCESS).

<2>.Oracle服务器进程组件的使用依赖于SQL语句的种类.

[1].查询语句会返回行.

[2].DML语句会记录这种改变.

[3].COMMIT保证了事务的RECOVERY.

<3>.并不是所有的SQL语句中所有的后台进程都会参与.

结论:

Oracle Server. Oracle服务器进程包含一些文件,进程和内存,在执行一条SQL语句时,并非所有这些都会用上,有些进程用于提高数据库的性能;一些用于当发生软件或硬件异常时恢复数据库;或应用于完成其他一些维护数据库的任务.ORACLE服务器包含ORACLE实例和ORACLE数据库.Oracle Instance: Oracle实例是用于联系后台进程和内在之间的活动,对数据库进行数据存取前必须先启动实例,每当实例启动时,SGA就被分配给它并启动了一些后台进程.后台进程执行10秒操作并监控有些进程以提供更好的性能.和可靠性.Oracle Database: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性,并在当实例发生失败时恢复数据库。

上文中为大家详细介绍了关于Oracle数据库进程的相关概念的知识,希望大家都能很熟练的掌握这些知识,让这些知识存在于我们的大脑中,便于我们以后遇到类似的问题时的处理。

【编辑推荐】

【责任编辑:迎迎 TEL:(010)68476606】

Oracle数据库在进程中是,由浅入深讲解Oracle数据库进程的相关概念相关推荐

  1. ORACLE使用copy方式存储迁移,详细讲解Oracle数据库的数据迁移方法

    添加所需的表空间和用户到目标数据库中:安装所需的SQL*Net2或者Net8软件,并配置用于连接数据库的别名. 在DOS命令提示符下设置oracle_sid=Oracle7_sid. 以Interna ...

  2. dapper调用oracle存储过程,.NET Core中使用Dapper操作Oracle存储过程最佳实践

    为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为OracleDbType.RefCursor,输出为:ParameterDir ...

  3. linux进程中对信号的屏蔽,linux进程中的信号屏蔽

    在linux的进程中可以接收到各种的信号,并且如果你不对信号进行处理,linux中的进程就会采用默认的处理方式处理,比如ctrl-c的信号,进程对它的处理就是终止进程的执行. 在linux中,我们也可 ...

  4. java php同时访问数据库,Java Spring中同时访问多种不同数据库的代码实例分享

    开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中.使用Spring框架时,使用单一数据库是非常容易的,但如果要同时 ...

  5. 中职计算机数据库教学总结,中职计算机专业的数据库课程教学

    浅谈中职计算机专业的数据库课程教学 [摘 要]本文论述了如何抓好中职计算机专业的数据库课程的 教学.笔者认为首先要明确教学目的,选好教材,然后选择合适的 教学方法,而最重要的一点是要进行"任 ...

  6. oracle如何kill锁中的sid,杀掉Oracle进程中的死锁的具体方案。

    我们在实际操作中常常会遇到的相关的问题就是,在Oracle中,其相关的实际状态已经被置为"killed",但是其进程长时间的锁定相关系统资源,却不释放,我们推荐一个比重启数据库更好 ...

  7. oracle中isnumeric,详细讲解Oracle中isnumeric的三种实现

    许多用过ASP的朋友对isnumeric函数都有一定的了解,这是一个常用的判断入参是否为数字的函数.而在Oracle中没有现成的判断是否为数字函数,下面我们就来介绍一下如何用三种方法来将其实现: 1. ...

  8. oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同...

    使用场景:知道某个字段的值(例如:"张三"),需要查询在其他某个表中有没有相同的值,常用于搜索关联表等. 对于oracle数据库: Pl\sql没有搜索功能,需借助存储过程,完成搜 ...

  9. html radio读数据库 展示,html中 radio 怎样从SQL数据库中读出数据

    以下代码通过ajax+jquery实现,不限制你使用何种语言. 数据库中使用char(1)或bit类型将值存成0或1. 前台: 是 否 $(function() { $.ajax({ type : & ...

最新文章

  1. 第三课 查询指定id的单个对象
  2. 为什么LINKBUTTON不能插在LTEMTEMPLATE里???
  3. IPv6相比IPv4在那些方面做出了改进?IPv4 to IPv6过渡的三种tunnel技术各自的特性...
  4. JHipster生成微服务架构的应用栈(三)- 业务微服务示例
  5. Oracle数据库管理系统:大数据的备份
  6. Eclipse Outline图标
  7. amp 显示成转义字符 in html,如何在HTML标签中转换转义字符?(How to convert escape characters in HTML tags?)...
  8. ABP+AdminLTE+Bootstrap Table权限管理系统第八节--ABP错误机制及AbpSession相关
  9. Spark实战电影点评系统(一)
  10. centos 删除crontab_Centos7:利用crontab定时执行任务
  11. 我安装java了_我安装了JAVA为什么.......
  12. 360好还是电脑管家好_安装了电脑管家,为什么电脑还是卡?
  13. 论文笔记_S2D.10-2016-NIPS_室外单张图像的深度感知
  14. matlab跑微分方程画图,偏微分方程工具箱PDE
  15. 小米手机删除的便签怎么找回
  16. java程序员实习日记_java实习日记.doc
  17. 蓝桥杯 2015 javaB组 校赛
  18. 修改win7计算机mac,win7如何在注册表改网卡mac
  19. Windows 查看主板型号
  20. lerna 项目中集成 babel lint-staged husky eslint

热门文章

  1. 5g宣传方案_5G时代来了,VR如何玩转线上营销新模式
  2. 与uefi_UEFI + GPT 启动 VHD
  3. 8086汇编4位bcd码_逆向工程——汇编基础[一]
  4. Linux之chattr命令详解
  5. locust自己调试
  6. 常用的linux命令和工具
  7. python3.4.4怎么打代码_Python3.4里面__name和__main__的作用
  8. linux 查看软连接_linux删除原理
  9. 未定义与 double 类型的输入参数相对应的函数 eval_点评一下鸿蒙os的时钟计算函数...
  10. c语言精炼pdf,发计算机二级C语言多年精炼笔试试卷.pdf