Most optional background processes are specific to tasks or features.
大多数可选后台进程都为了某些任务和特性而指定。
下面介绍几个常见的可选后台进程:
归档进程在log 切换的时候拷贝redo log file到离线存储上面。进程同样可以收集事务的redo 数据传输到备库的目录上面。arcn进程只有在归档模式并且自动归档开启的时候存在。
oracle数据库使用job queue 进程去运行用户的jobs,经常在批量模式下。任务是用户自定义的预订运行一次或者多次的作业。比如说,可以使用一个job队列去安排在后台运行的一个长时间运行的更新任务。给定一个开始时间和间隔时间,任务队列进程就会去尝试在下一个间隔的时间点上面运行job。
Oracle Database manages job queue processes dynamically, thereby enabling job queue clients to use more job queue processes when required. The database releases resources used by the new processes when they are idle.
oracle数据库动态的管理job队列进程,所以允许job队列客户端使用更多的job queue 进程。数据库会在它们空闲的时候释放资源给新的进程。
Dynamic job queue processes can run a large number of jobs concurrently at a given interval. The sequence of events is as follows:
动态job 队列进程可以并发的运行大量的job在一个给定的间隔里面。事件顺序如下所示:
1. The job coordinator process (CJQ0)is automatically started and stopped as needed by Oracle Scheduler (see "Oracle Scheduler"on page 18-19). The coordinator process periodically selects jobs that need to be run from the system JOB$table. New jobs selected are ordered by time.
2. The coordinator process dynamically spawns job queue slave processes (Jnnn)to run the jobs.
3. The job queue process runs one of the jobs that was selected by the CJQ0 process for execution. Each job queue process runs one job at a time to completion.
4. After the process finishes execution of a singlejob, it polls for more jobs. If no jobs are scheduled for execution, then it enters a sleep state, from which it wakes up at periodic intervals and polls for more jobs. If the process does not find any new jobs, then it terminates after a preset interval.
1. cjq0在oracle调度器需要的时候自动开启。调度进程定期的在job$表中选择事务来运行。新的事务选择按照时间排列。
2. 调度进程动态的生成job queue slave process(jnnn)去运行任务。
3. job队列进程运行的任务由cjq0来选择。每个job queue在一个时间点上面只能运行一个job。
4. 在进程完成执行单个job后,它被分配更多的任务。如果没有任务被安排去执行,那么它们会进入沉睡状态。并且定期的苏醒去检查是否有job。如果没有找到,那他们它们会进入下一个沉睡周期。
The initialization parameter JOB_QUEUE_PROCESSESrepresents the maximum number of job queue processes that can concurrently run on an instance. However, clients should not assume that all job queue processes are available for job execution.
初始化参数job_queue_processes指定了job queue线程在实例中最大的并发运行的数量。
闪回数据归档进程,归档被追踪的表的历史行到闪回数据归档文件里面。当在被追踪的表上面发生了dml事务的时候,这个进程存储行的前镜像到闪回数据归档里面。它同样保存当前行的元数据。
FBDA automatically manages the flashback data archive for space, organization, and retention. Additionally, the process keeps track of how far the archiving of tracked transactions has occurred.
FBDA自动的管理闪回数据归档文件的空间,组织结构和滞留时间。
smco进程调度执行的多种空间管理相关的任务,比如说提前的空间分配和回收。smco自动的生成从属进程wnnn去完成任务。
联系客服