Oracle11g 后台进程说明

本文介绍了Oracle数据库中的关键后台进程,包括DBWR、LGWR、CKPT等,并详细解释了每个进程的功能及其触发条件。

1、后台进程有:
DBWR(Database Write) : 数据库写入程序
LGWR(Log Write) : 日志写入程序
CKPT(Checkpoint) : 检查点
SMON (System Monitor): 系统监控
PMON(Process Monitor) : 进程监控
ARCH(Archive) : 归档
RECO : 恢复
LCKn : 封锁;

2、RAC启动后台进程的顺序:

PMON started with pid=2, OS id=18042

DIAG started with pid=3, OS id=18044

PSP0 started with pid=4, OS id=18051

LMON started with pid=5, OS id=18053

LMD0 started with pid=6, OS id=18055

LMS0 started with pid=7, OS id=18057

MMAN started with pid=8, OS id=18061

DBW0 started with pid=9, OS id=18063

LGWR started with pid=10, OS id=18065

CKPT started with pid=11, OS id=18067

SMON started with pid=12, OS id=18069

RECO started with pid=13, OS id=18071

CJQ0 started with pid=14, OS id=18073

MMON started with pid=15, OS id=18075

MMNL started with pid=16, OS id=18077

3、进程详细说明

3.1. DBWR进程

       该进程执行将缓冲区写入数据文件,是负责缓冲存储区管理的一个ORACLE后台进程。当缓冲区中的一缓冲区被修改,它被标志为“弄脏”,DBWR的主要任务是将“弄脏”的缓冲区写入磁盘,使缓冲区保持“干净”。由于缓冲存储区的缓冲区填入数据库或被用户进程弄脏,未用的缓冲区的数目减少。当未用的缓冲区下降到很少,以致用户进程要从磁盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将管理缓冲存储区,使用户进程总可得到未用的缓冲区。

       ORACLE采用LRU(LEAST RECENTLY USED)(最近最少使用算法)保持内存中的数据块是最近使用的,使I/O最小。

 

触发DBWR进程的条件有:
              1.  DBWR超时,大约3秒
              2.  系统中没有多余的空缓冲区来存放数据
              3.  CKPT 进程触发DBWR(alter system checkpoint)
   

3.2. LGWR进程

       该进程将日志缓冲区写入磁盘上的一个日志文件,它是负责管理日志缓冲区的一个ORACLE后台进程。

 

触发LGWR进程的条件有:
  1. 用户提交
  2. 有1/3重做日志缓冲区未被写入磁盘
  3. 有大于1M的重做日志缓冲区未被写入磁盘
  4. 3秒超时
  5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。

       日志缓冲区是一个循环缓冲区。当LGWR将日志缓冲区的日志项写入日志文件后,服务器进程可将新的日志项写入到该日志缓冲区。LGWR 通常写得很快,可确保日志缓冲区总有空间可写入新的日志项。

有时候当需要更多的日志缓冲区时,LWGR在一个事务提交前就将日志项写出,而这些日志项仅当在以后事务提交后才永久化。

       ORACLE使用快速提交机制,当用户发出COMMIT语句时,一个COMMIT记录立即放入日志缓冲区,但相应的数据缓冲区改变是被延迟,符合条件时才将它们写入数据文件。当一事务提交时,被赋给一个系统修改号(SCN),它同事务日志项一起记录在日志中。由于SCN记录在日志中,以致在并行服务器选项配置情况下,恢复操作可以同步。


3.3. CKPT进程

       该进程在检查点出现时,对全部数据文件的标题进行修改。负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。

 
3.4. SMON进程

       SMON是Oracle数据库至关重要的一个后台进程, 该进程实例启动时执行实例自动恢复,还负责清理不再使用的临时段, 是一种用于库的“垃圾收集者”。在具有并行服务器选项的环境下,SMON对有故障CPU或实例进行实例恢复。SMON进程有规律地被呼醒,检查是否需要,或者其它进程发现需要时可以被调用。

 

它做的工作包括如下7件:

       1)清理临时表空间:当建立一个索引,在创建期间分配给索引的扩展区被标志为TEMPORARY。如果Create Index会话因某些原因异常中断,SMON负责清理他们。其他操作创建的临时扩展区,SMON同样会负责清理。
       2接合空闲空间:如果你使用数据字典管理表空间,SMON负责把那些在表空间中空闲的并且互相是邻近的extent接合成一个较大的空闲扩展区。这发生仅在带有默认的pctincrease设置为非零的存储子句的字典管理表空间。
       3把对于不可用文件的事务恢复成活动状态:文件可能已经在不可用或没装载的磁盘上。当文件变可用了,SMON将恢复它。
       (4)执行一个RAC中故障节点的实例恢复:在一个oracle RAC配置中,当群集中的一个库实例失败(例如,实例正执行的机器故障了),一些群集中的其他节点将开启故障的实例的重做日志文件,为故障实例执行所有数据的恢复。
       (5)清理OBJ$OBJ$是一个包含库中几乎每一个对象(表,索引,触发器,视图等等)的记录的行级数据字典表。许多次,这儿存在的记录代表已删对象,或代表不在这儿的对象,在oracle的信赖机制中被使用。SMON是删除这些不在被需要的行的进程。
       6)收缩回滚段:SMON将执行回滚段的自动收缩到它的optimal尺寸,如果它被设置。
       7脱机回滚段:对于DBA来,让一个有active事务的回滚段,脱机或不可用,是可能的。Active事务正使用这脱机回滚段是可能的。在这情况下,回滚不是真正的脱机;它被标志为“悬挂offline”。在后台进程中,SMON将周期性尽力让它真正脱机,直到成功。

       SMON做许多其他事情,譬如存在DBA_TAB_MONITORING视图中的监控统计数据的洗刷,SMON_SCN_TIME表中发现的时间戳定位信息的SCN的洗刷,等等。SMON在期间能消耗很多CPU,这应该被认为是正常的。SMON周期性的苏醒(或被其他后台进程叫醒)来执行这些管家的家庭杂事。

3.5. PMON进程

       用于恢复失败的数据库用户的强制性进程,它先获取失败用户的标识,释放该用户占有的所有数据库资源。PMON有规律地被呼醒,检查是否需要,或者其它进程发现需要时可以被调用。

       PMON进程负责在反常中断的连接之后的清理工作。例如,如果因某些原因专用服务“故障”或被kill掉,PMON就是负责处理(恢复或回滚工作)和释放你的资源。       PMON将发出未提交工作的回滚,释放锁,和释放分配给故障进程的SGA资源。除了在异常中断之后的清理外,PMON监控其他oracle后台进程,如果有必要(和有可能)重新启动他们。如果共享服务或一个分配器故障(崩溃),PMON将插手并且重启另一个(在清理故障进程之后)。

       PMON将观察所有Oracle进程,只要合适或重启他们或中止进程。例如,在数据库日志写进程事件中,LGWR故障,实例故障。这是一个严重的错误,最安全的处理方法就是去立即终止实例,让正常的恢复处理数据。

       PMON为实例做的另一件事是去使用Oracle TNS监听器登记。当一个实例开启的时候,PMON进程投出众所周知的端口地址1521,除非指向其他,来看是否监听器正在开和运行着。   现在,如果监听器在一些不同端口开启会发生什么?这种情况,机制是相同的,除了监听器地址需要被LOCAL_LISTENER参数明确指定。如果监听器运行在库实例开启的时候,PMON和监听器通讯,传到它相关参数,如果监听器没被开启,PMON将周期性的试着和它联系来登记自己。

 

The background process PMON cleans up after failed processes by:
       1. Rolling back the user’s current transaction
       2. Releasing all currently held table or row locks
       3. Freeing other resources currently reserved by the user
       4. Restarts dead dispatchers

3.6. RECO进程

       负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback; 

 

3.7. ARCH进程

       该进程将已填满的在线日志文件拷贝到指定的存储设备。当数据库运行在归档模式下,归档进程负责在日志切换后将已经写满的重做日志文件复制到归档目标.


3.8. LCKn进程

       是在具有并行服务器选件环境下使用,可多至10个进程(LCK0,LCK1……,LCK9),用于实例间的封锁。  

 

3.9. MMAN 进程

       内存管理,如果设定了 SGA自动管理,MMAN用来协调SGA内各组件的大小设置和大小调整。

 

3.10. MMON 进程

       管理性监视器(Manageability Monitor),MMON主要用于AWR,ADDM。MMON会从SGA将收集统计结果并且写到系统表中。

      

<think>首先,用户的问题是关于“oracle11g后台安装步骤”的内容。用户说:“我想查找oracle11g后台安装步骤的相关内容 请问oracle11g后台安装步骤”。这是用户的直接查询。 现在,回顾系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式单独成段使用$$...$$。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户提供了引用: - 引用[1]:关于Win11系统下Oracle11g下载与安装。 - 引用[2]:Oracle11g安装配置详细教程,强调解压位置。 - 引用[3]:Linux oracle11g安装步骤,提到命令如 ./runInstaller -silent。 - 引用[4]:CentOS7.9环境Oracle11g静默安装,涉及环境变量设置。 用户提到“后台安装步骤”,这可能指的是无图形界面的安装,如静默安装或脚本安装,因为这些通常在后台运行,不需要用户交互。特别是从引用[3]和[4]来看,引用[3]是Linux下的静默安装,引用[4]是CentOS下的静默安装,都涉及命令行步骤。 用户说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。” 但在这个对话中,用户的上一个问题就是这个,所以没有历史上下文。我需要基于当前查询回答。 核心需求:用户想查找Oracle 11g后台安装步骤。我应该提供相关的步骤。 从引用中提取相关信息: - 引用[3]:Linux下的安装,命令是`./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq` - 引用[4]:CentOS下的静默安装,涉及环境变量设置,如修改dbstart文件中的ORACLE_HOME_LISTNER。 后台安装通常意味着静默安装,使用响应文件(response file)来指定安装参数而不需要GUI。 我应该总结Oracle 11g后台安装的一般步骤。既然用户提到了“后台”,我应该专注于无图形界面的安装。 步骤大纲: 1. 准备环境:创建用户、设置权限、安装依赖包。 2. 下载和解压安装包:如引用[2]提到的解压到指定目录。 3. 创建响应文件:用于静默安装的参数文件。 4. 运行安装命令:如引用[3]的命令。 5. 配置和测试:设置环境变量,启动监听器,测试连接。 确保回答结构化: - 使用中文。 - 清晰的分步骤。 - 在适当的地方自然添加引用标识。例如,提到解压时添加[^2],提到静默安装命令时添加[^3],提到环境变量时添加[^4]。 生成相关问题: - 在回答末尾,生成2-3个相关问题,如示例中的“§§相关问题§§”。 完整回答结构: - 开头介绍。 - 分步详细说明。 - 结尾总结。 - 相关问题列表。 数学表达式:用户查询中没有数学内容,所以可能不需要LaTeX。但如果有任何数学,如版本号,就用$...$。Oracle 11g不是数学,所以跳过。 引用标识:在引用特定内容时添加,如[^2] for reference 2. 最终回答大纲: 1. 介绍Oracle 11g后台安装(静默安装)。 2. 步骤: - 环境准备(用户、权限)。 - 下载和解压安装包[^2]。 - 创建响应文件。 - 运行安装命令(如Linux示例[^3]). - 配置服务(如设置环境变量[^4])。 - 测试安装。 3. 总结。 4. 相关问题。 相关问题想法: 1. 如何创建Oracle 11g静默安装的响应文件? 2. Oracle 11g安装后常见的配置问题? 3. 在不同操作系统上安装Oracle 11g有什么区别? 确保回答真实可靠:基于提供的引用和一般知识。引用是基于Linux/CentOS,但用户可能也在Windows上,所以可以提到通用步骤。 </think>### Oracle 11g后台安装步骤 Oracle 11g的“后台安装”通常指通过命令行或脚本进行静默安装(也称为无图形界面安装),这种方式适用于Linux、Unix或Windows系统,特别适合自动化部署或服务器环境。静默安装使用响应文件(response file)定义安装参数,无需用户交互。下面我将基于通用步骤整理Oracle 11g后台安装过程,并结合系统引用中的关键点进行说明。安装前需确保系统环境满足Oracle 11g的硬件和软件要求(如内存、磁盘空间、操作系统版本等)。 #### 1. **准备工作** - **创建专用用户和组**:在Linux/Unix系统中,创建oracle用户和dba组,避免使用root权限安装。 ```bash groupadd dba useradd -g dba oracle passwd oracle # 设置密码 ``` - **设置环境变量**:切换到oracle用户,配置环境变量文件(如.bashrc),指定Oracle主目录和其他路径。确保使用`su - oracle`切换用户以继承Shell环境变量,避免PATH错误[^4]。 - **下载和解压安装包**:从Oracle官网下载安装包(通常为两个压缩文件)。解压到指定目录,例如在Windows或Linux下创建oracle目录并解压: ```bash mkdir /opt/oracle unzip win64_11gR2_database_1of2.zip -d /opt/oracle unzip win64_11gR2_database_2of2.zip -d /opt/oracle # 确保解压到同一目录[^2] ``` #### 2. **创建响应文件** - 响应文件(.rsp)包含所有安装参数,无需图形界面交互。Oracle提供模板文件(如db_install.rsp),可复制并修改: ```bash cp /path/to/database/response/db_install.rsp /home/oracle/response/ vi /home/oracle/response/db_install.rsp # 编辑参数 ``` - 关键参数示例: ``` oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 UNIX_GROUP_NAME=dba ORACLE_HOSTNAME=localhost ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1 ORACLE_BASE=/opt/oracle oracle.install.db.InstallEdition=EE # 企业版 oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.password.ALL=oracle123 # 设置管理员密码 ``` - 确保权限正确:`chown oracle:dba /home/oracle/response/db_install.rsp` #### 3. **运行静默安装命令** - 进入解压后的database目录,执行安装命令。使用`-silent`标志启动后台安装,`-responseFile`指定参数文件: ```bash cd /opt/oracle/database ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq # -ignorePrereq可选,跳过前置检查[^3] ``` - 安装过程在后台运行,输出日志到指定文件(如install.log)。等待几分钟至几十分钟,取决于系统性能。 - 在Windows下,可使用类似命令(如setup.exe -silent -responseFile ...)。 #### 4. **配置和启动服务** - **设置监听器和环境变量**:安装完成后,配置Oracle Net Listener。编辑dbstart文件避免常见错误: ```bash cd $ORACLE_HOME/bin vi dbstart # 修改 ORACLE_HOME_LISTNER=$1 为 ORACLE_HOME_LISTNER=$ORACLE_HOME[^4] ``` - **启动数据库和监听器**: ```bash dbstart $ORACLE_HOME # 启动数据库 lsnrctl start # 启动监听器 ``` - **测试连接**:使用SQL*Plus或工具(如PL/SQL)连接本地数据库: ```bash sqlplus sys/oracle123@orcl as sysdba SELECT * FROM v$version; # 验证Oracle版本 ``` #### 5. **验证安装** - **检查服务状态**:在Linux下使用`ps -ef | grep ora_`查看进程;在Windows下检查Oracle相关服务是否启动(如OracleServiceORCL, OracleOraDb11g_home1TNSListener)[^1]。 - **常见问题处理**: - 如果遇到“TNS: 无监听程序”错误,检查监听器配置(listener.ora)和端口占用[^1]。 - 确保环境变量(如ORACLE_HOME, PATH)正确设置,安装后重启系统可能更可靠[^4]。 #### 总结 Oracle 11g后台安装通过静默模式实现自动化,核心是响应文件配置和命令行执行。这种方法高效可靠,但需严格遵循环境设置和参数定义。安装后,建议运行数据库配置助手(DBCA)创建数据库实例[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值