首頁 資料庫 mysql教程 Oracle 工具后台进程

Oracle 工具后台进程

Jun 07, 2016 pm 05:05 PM
資料庫

配置了作业队列:CJQ0进程是作业队列协调器(job queue coordinator).配置了Oracle AQ,从Q000(AQ队列进程,AQ queue process)和QMN

这些后台进程都是可选的,可以根据你的需要来选用。它们提供了一些工具,不过这些工具并不是每天运行数据库所必需要的,除非你自己要使用(如作业队列),

或者你要利用使用了这些工具的特性(如新增加的Oracle 10g诊断功能).

在UNIX中,这些进程可以像其他后台进程一样可见,如果你执行ps命令,就能看到这些进程。在介绍中心后台进程那一节的开始,我列出了ps命令的执行的执行结果

(这里列出其中一部分),可以看到,,我有以下进程:

配置了作业队列:CJQ0进程是作业队列协调器(job queue coordinator).

配置了Oracle AQ,从Q000(AQ队列进程,AQ queue process)和QMNC(AQ 监视器进程,AQ monistor process)可以看出。

启用了自设置SGA大小,由内存管理器(memory manager,MMAN)进程可以看出。

启用了Oracle 10g可管理性/诊断性,由可管理性监视器(manageability monitor,MMON)和可管理性监视器灯(manageability monitor light,MMNL)进程可以看出:

1.CJQ0和Jnnn进程:作业队列

在第一个7.0版本中,Oracle通过一种称为快照(snapshot)的数据库对象来提供复制特性。作业队列就是刷新快照(或将快照置为当前快照)进使用的内部机制。

作业队列进程监视一个作业表,这个作业表告诉它何时需要刷新系统中的各个快照。

作业队列进程监视一个作业表,这个作业表告诉它何时需要刷新系统中的各个快照。在Oracle 7.1中,Oracle公司通过一个名为DBMS_JOB的数据库包提供这个功能。

所以,原告7.0中与快照相关的进程到了7.1及以后版本中变马了"作业队列".后来,控制作业队列行为的参数(检查的频度,以及应该有多少个队列进程)名字也发生了变化

,从SNAPSHOT_REFRESH_INTERVAL和SNAPSHOT_REFRESH_PROCESSES变成了JOB_QUEUE_INTERVAL和JOB_QUEUE_PROCESS。在当前版本中,只有JOB_QUEUE_PROCESS参数的设置是用户可调的。

最多可以有1000个作业队列进程。名字分别是J000,J001,...,J999。这些进程在复制中大量使用,并作为物化视图刷新进程的一部分。基于流的复制使用AQ来完成复制,因此

不使用作业队列进程。开发人员还经常使用作业队列来高度一次性(后台)作来或反复出现的作业,例如,在后台发送一封电子邮件,或者在后台完成一个长时间运行的批处理。

通过在后台做这些工作,就能达到这种一种效果:尽管一个任务耗时很长,但在性急的最终用户看来所花费的时间并不多(他会认为任务运行得快多了,但事实上可能并非如此).

这与Oracle用LGWR和DBWn进程所做的工作类似,他们在后台做大量工作,所以你不必实时地等待它们完成所有任务。

Jnnn进程与共享服务器很相似,但是也有专用服务器中的某些方面。它们处理完一个作业之后再处理下一个作业,从这个意义上讲是共享的,但是它们管理内存的方式更像一个专用服务器(其UGA内存在PGA中,而不是在SGA中).每个作业队列进程一次只运行一个作业,一个接一个地运行,直至完成。正因为如此,如果我们想同时运行多个作业,就需要多个进程。这里不存在多纯种或作来的抢占。一旦运行一个作业,就会一直运行到完成(或失败).

你会注意到,经过一段时间,Jnnn进程会不断地来来去去,也就是说,如果配置了最多1000个Jnnn进程,并不会看到真的有1000进程随便数据库启动。相反,开始时只会启动

一个进程,即作业队列协调器(CJQ0),它在作业队列中看到需要运行的作业时,会启动Jnnn进程。如果Jnnn进程完成其工作,并发现没有要处理的新作业,此时Jnnn进程就会退出,也就是说,会消失。因此,如果将大多数作业都调度为凌晨2:00运行(没有人在场),你可能永远也看不到这些Jnnn进程。

2、QMNC  和 Qnnn:高级队列

QMNC进程对于AQ表来说就相当于CJQ0进程之于作业表。QMNC进程会监视高级队列,并警告从队列中删除等待消息的"出队进程"(dequeuer):已经有一个消息变成可用。QMNC和Qnnn还要负责队列传播(propagation),也就是说,能够将在一个数据库入队(增加)的消息移动另一个数据库的队列中,从而实现出队(dequeueing).

Qnnn 进程对于QMNC进程就相当于Jnnn进程与CJQ0进程的关系。QMNC进程要通知Qnnn进程需要完成什么工作,Qnnn进程则会处理这些工作。

QMNC和Qnnn进程是可选的后台进程。参数AQ_TM_PROCESSES可以指定最多创建10个这样的进程(分别为Q000,。。。,Q008),以及一个QMNC进程。如果AQ——TM_PROCESSES设置为0,就没有QMNC或Qnnn进程。不同于作业队列所用的Jnnn进程,Qnnn进程是持久的。如果将AQ_TM_PROCESSES设置为10,数据库启动时

可以看到10个Qnnn进程和一个QMNC 进程,而且在实例的整个生成期中这些进程都存在。

3.EMNn:事件监视器进程(Event Monitor Process)

EMNn进程是AQ体系结构的一部分,用于通知对某些消息感兴趣的队列订购者。通知会异步地完成。可以用一些Oracle调用接口(Oracle Call Interface,OCI)函数来注册消息通知

的回调。回调是OCI程序中的一个函数,只要队列中有了订购者感谢兴趣的消息,就会自动地调用这个函数。EMNn后台进程用于通知订购者,第一次向实例发出通知时会自启动EMNn进程。然后应用可以发出一个显式的message_receive(dequeue)来获得消息。

4.MMAN:内存管理器(Memory Manager)

这个进程是Oracle 10g中增加的,自动设置SGA大小特性会使用这个进程。MMAN进程用于协调共享内存中各组件(默认缓冲区池,共享池,Java池和大池) 的大小设置和大小调整。

5.MMON,MMNL和Mnnn:可管理性监视器(Manageability Monitor)

这此进程用于填充自动工作负载存储库(Automatic Workload Repository,AWR),这是Oracle 10g中新增的一个特性。MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。MMON进程用于"自动检测"数据库性能问题,并实现新增的自调整特性.Mnnn进程类似于作业队列的Jnnn和Qnnnn进程:MMON进程会请求这些从属进程代表它完成工作.Mnnn进程本质上是临时性的,它们将根据需要来来去去。

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

如何在 Golang 中將 JSON 資料保存到資料庫中? 如何在 Golang 中將 JSON 資料保存到資料庫中? Jun 06, 2024 am 11:24 AM

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

PHP與不同資料庫的連接:MySQL、PostgreSQL、Oracle和更多 PHP與不同資料庫的連接:MySQL、PostgreSQL、Oracle和更多 Jun 01, 2024 pm 03:02 PM

PHP連接資料庫指南:MySQL:安裝MySQLi擴展,建立連線(servername、username、password、dbname)。 PostgreSQL:安裝PgSQL擴展,建立連線(host、dbname、user、password)。 Oracle:安裝OracleOCI8擴展,建立連線(servername、username、password)。實戰案例:取得MySQL資料、PostgreSQL查詢、OracleOCI8更新記錄。

如何使用C++處理資料庫連線和操作? 如何使用C++處理資料庫連線和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)函式庫連接和操作資料庫,包括建立資料庫連線、執行SQL查詢、插入新記錄和更新現有記錄。具體步驟為:1.包含必要的函式庫語句;2.開啟資料庫檔案;3.建立Recordset物件執行SQL查詢或操作資料;4.遍歷結果或依照特定需求更新記錄。

See all articles