`

Oracle数据库进程之后台进程详解

阅读更多

本文我们主要介绍一下Oracle数据库的后台进程的相关知识,我们知道,Oracle实例包括两部分:SGA 和一组后台进程。后台进程执行保证数据库运行所需的实际维护任务。

  例如,有一个进程为我们维护块缓冲区缓存,根据需要将块写出到数据文件。另一个进程负责当在线重做日志文件写满时将它复制到一个归档目标。另外还有一个进程负责在异常中止进程后完成清理,等等。每个进程都专注于自己的任务,但是会与所有其他进程协同工作。例如,负责写日志文件的进程填满一个日志后转向下一个日志时,它会通知负责对填满的日志文件进行归档的进程,告诉它有活干了。

  可以使用一个V$视图查看所有可能的Oracle 后台进程,确定你的系统中正在使用哪些后台进程:

  SQL> select paddr, name, descriptionfrom v$bgprocess order by paddr desc; PADDR NAME DESCRIPTION -------- --------------------------------------------------------------------- 3621D49C QMNC AQ Coordinator 3621CEE8 ARC2 Archival Process 2 3621C934 ARC1 Archival Process 1 3621C380 ARC0 Archival Process 0 3621A148 MMNL Manageability Monitor Process 2 36219B94 MMON Manageability Monitor Process 362195E0 CJQ0 Job Queue Coordinator 3621902C RECO distributed recovery 36218A78 SMON System Monitor Process 362184C4 CKPT checkpoint 36217F10 LGWR Redo etc. PADDR NAME DESCRIPTION -------- --------------------------------------------------------------------- 3621795C DBW0 db writer process 0 362173A8 MMAN Memory Manager 36216DF4 PSP0 process spawner 0 36216840 PMON processcleanup 00 DIAG diagnosibility process 00 FMON File Mapping Monitor Process 00 LMON global enqueue servicemonitor 00 LMD0 global enqueue servicedaemon 0 ..... 00 ASMB ASMBackground 00 GMON diskgroup monitor 157 rows selected.

  注意:这个视图中PADDR 不是00 的行都是系统上配置和运行的进程(线程)。有两类后台进程:有一个中心(focused)任务的进程(如前所述)和完成各种其他任务的进程(即工具进程)。

  例如,内部作业队列( jobqueue)有一个工具后台进程,可以通过DBMS_JOB 包使用它。这个进程会监视作业队列,并运行其中的作业。在很多方面,这就像一个专用服务器进程,但是没有客户连接。

  下面会分析各种后台进程,先来看有中心任务的进程,然后再介绍工具进程。

  中心后台进程

  图5-4 展示了有一个中心(focused)用途的Oracle 后台进程。

Oracle数据库进程之后台进程详解

  启动实例时也许不会看到所有这些进程,但是其中一些主要的进程肯定存在。如果在ARCHIVELOG 模式下,你可能只会看到ARCn(归档进程),并启用自动归档。如果运行了Oracle RAC,这种Oracle 配置允许一个集群中不同机器上的多个实例装载并打开相同的物理数据库,就只会看到LMD0、LCKn、LMON 和LMSn。

  意为简洁起见,图5-4 中没有画出共享服务器调度器(Dnnn)和共享服务器(Snnn)进程。因此,图5-4 大致展示了启动Oracle 实例并装载和打开一个数据库时可能看到哪些进程。例如,在我的Linux 系统上,启动实例后,有以下进程:

  [oracle@db1 ~]$ ps -ef|grep 'ora_.*_dave*' oracle 4123 1 0 20:13 ? 00:00:05 ora_pmon_dave1 oracle 4125 1 0 20:13 ? 00:00:05 ora_psp0_dave1 oracle 4127 1 0 20:13 ? 00:00:02 ora_mman_dave1 oracle 4129 1 0 20:13 ? 00:00:05 ora_dbw0_dave1 oracle 4131 1 0 20:13 ? 00:00:21 ora_lgwr_dave1 oracle 4133 1 0 20:13 ? 00:00:13 ora_ckpt_dave1 oracle 4135 1 1 20:13 ? 00:01:12 ora_smon_dave1 oracle 4137 1 0 20:13 ? 00:00:04 ora_reco_dave1 oracle 4139 1 0 20:13 ? 00:00:16 ora_cjq0_dave1 oracle 4141 1 1 20:13 ? 00:01:33 ora_mmon_dave1 oracle 4143 1 0 20:13 ? 00:00:08 ora_mmnl_dave1 oracle 4145 1 0 20:13 ? 00:00:00 ora_d000_dave1 oracle 4147 1 0 20:13 ? 00:00:00 ora_s000_dave1 oracle 4156 1 0 20:13 ? 00:00:01 ora_arc0_dave1 oracle 4158 1 0 20:13 ? 00:00:05 ora_arc1_dave1 oracle 4163 1 0 20:14 ? 00:00:03 ora_qmnc_dave1 oracle 4167 1 0 20:15 ? 00:00:24 ora_q000_dave1 oracle 4169 1 020:15 ? 00:00:00 ora_q001_dave1 oracle 5109 1 1 21:48 ? 00:00:00 ora_j000_dave1 oracle 5141 5111 0 21:49 pts/4 00:00:00 grep ora_.*_dave2*

  这些进程命名规则:进程名都以ora_开头。后面是4 个字符,表示进程的具体名字,再后面是ORACLE_SID,(站点标识符)。

  在UNIX 上,可以很容易地标识出Oracle后台进程,并将其与一个特定的实例关联(在Windows 上则没有这么容易,因为在Windows 上这些后台进程实际上只是一个更大进程中的线程)。

  这些进程实际上都是同一个二进制可执行程序,对于每个“程序”,并没有一个单独的可执行文件。你可以尽可能地查找一下,但是不论在磁盘的哪个位置上肯定都找不到一个arc0 二进制可执行程序,同样也找不到LGWR或DBW0。这些进程实际上都是oracle(也就是所运行的二进制可执行程序的名字)。它们只是在启动时对自己建立别名,以便更容易地标识各个进程。这样就能在UNIX 平台上高效地共享大量对象代码。Windows上就没有什么特别的了,因为它们只是进程中的线程,因此,当然只是一个大的二进制文件。

  自动存储管理后台(Automatic Storage Management Background,ASMB)进程:ASMB 进程在使用了ASM 的数据库实例中运行。它负责与管理存储的ASM 实例通信、向ASM 实例提供更新的统计信息,并向ASM 实例提供一个“心跳”,让ASM 实例知道它还活着,而且仍在运行。

  重新平衡(Rebalance,RBAL)进程:RBAL 进程也在使用了ASM 的数据库实例中运行。向ASM磁盘组增加或去除磁盘时,RBAL 进程负责处理重新平衡请求(即重新分布负载的请求)。

  以下进程出现在Oracle RAC 实例中。RAC 是一种Oracle 配置,即集群中的多个实例可以装载和打开一个数据库,其中每个实例在一个单独的节点上运行(通常节点是一个单独的物理计算机)。这样,你就能有多个实例访问(以一种全读写方式)同样的一组数据库文件

分享到:
评论

相关推荐

    oracle数据库所有进程官方文档

    oracle数据库所有进程详解官方文档,推荐

    ORACLE 数据库还原备份 命令 参数 实例大全及参数含义 详解

    导出数据 1)按用户导 2)并行进程parallel 3)按表名导 4)按查询条件导 5)按表空间导 6)导整个数据库 还原数据 1)导到指定用户下 2)改变表的owner 3)导入表空间 4)导入数据库 5)追加数据

    oracle 体系结构详解

    oracle体系结构图文详解。 oracle实例=SGA区+后台进程 oracle服务器=oracle实例+oracle数据库 数据库实例启动实质上即为:分配SGA区,启动后台进程

    精品(2021-2022年)资料通用账证查询打印软件采集Oracle数据库连接参数详解.doc

    精品课件

    【试读】Oracle编程艺术:深入理解数据库体系结构(第3版)

    书中深入分析了Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库和实例的底层进程,利用具体示例讨论了一些重要的数据库主题,同时分析了数据库中的物理结构,如表、索引和数据类型,并介绍采用哪些...

    详解Linux系统中Oracle数据库程序的启动和关闭方式

    Oracle数据库有以下几种启动方式: 1、 startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、 ...

    ORACLE配置tnsnames.ora文件详解

    如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器, 那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义。但是,如果网络上有多台机器均安装了 ORACLE数据库...

    对于oracle11g 各种进程进行详解,进程与内存结构的关系,SGA的讲解

    数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的进程结构,内存区域和后台进程合称为一个Oracle实例。

    关闭ORACLE数据库详解参考

    近期遭遇了多次客户数据库无法关闭的问题了,数据库无法关闭,一般是关闭时有事务需要回滚(可能是客户端或者JOB等)或者是关闭时使用错误关闭参数(如忘加参数默认是NORMAL)或者关闭时有其它原因。  因此分享...

    Oracle数据库中的基本建库操作详解

    图形建库: 1. 确定是否存在要建的库  查看 $ORACLE_BASE/admin/和$ORACLE_BASE/oradata ...PGA系统内存,数据为主)|Sizing中的块大小只能在初始的配置中修改,SGA每个用户对应一个进程,PGA一个连接池供用

    ORACLE 10.2.0.1 RAC for RedHat AS4 安装(详解)

    2.20 创建 Oracle 集群数据库(只需从单个节点运行) 58 2.21 核实 TNS 联网文件(在所有节点上执行) 60 2.22 创建表空间和用户(只需从单个节点运行) 62 2.23 核实 RAC 集群/数据库配置(在所有节点上执行) 62 ...

    oracle net manager 数据传输安全步骤详解

    所谓监听程序就是一个Oracle服务器上进程,负责监听/响应客户端对Oracle服务的请求。之前我们在安装数据库实例时,同时已经安装了一个监听程序,这点我们知道就行。 本篇重点给大家介绍oracle net manager 数据传输...

    关于oracle日志文件.docx

    Oracle数据库中的日志常用的有: Redo log files 联机日志或重做日志 Archived log files 归档日志 Alert log files 告警日志 Trace files user_dump_dest 用户信息日志(如跟踪会话日志) Backupground_dump_...

    Oracle体系结构详解

    一、什么是Oracle数据库?二、交互流程 三、实例内存结构和进程结构四、Oracle存储结构五、总结首先我们来说说基础的概念吧众所周知,OracleDataBase是一款关系型数据库管理系统(不了解何谓关系型数据库的童鞋自行...

    DM达梦数据库体系结构详解

    dm中和oracle一样,也分为实例和数据库两个概念,而且这两者的概念也基本一致。 唯一的区别是:达梦是单进程,而oracle是多进程的。 实例:共享内存+后台的进程或线程。 数据库:存放到磁盘的文件。 一般是一个db...

    非常全的oracle文档

    4.4. Oracle 实例进程结构 12 4.5. Oracle 物理组件 13 4.6. Oracle 逻辑组件 13 4.7. 模式 15 4.8. 数据文件(*.dbf) 15 4.9. 控制文件(*.tcl)和日志文件(*.log) 16 4.10. 逻辑存储结构 16 4.11. 数据字典 17 五、...

    详解几种常用(闭源、开源)关系型数据库的架构和实现原理解读

    常用的关系型数据库有闭源系列和开源系列,闭源系列有国外数据库(如Oracle、DB2等)和国产数据库(如GaussDB T、达梦等);开源系列有MySQL、PostgreSQL等。本文拟介绍几种常用关系型数据库的架构和实现原理,以...

    oracle学习经典教程

    1.2 索引详解..................28 1.2.1 索引介绍.........28 1.2.1.1 索引的创建语法......28 1.2.1.2 索引特点..................28 1.2.1.3 索引不足..................29 1.2.1.4 应该建索引列...

Global site tag (gtag.js) - Google Analytics