r12.2——adop简介

机制:

安装补丁时,你既可以让adop提示信息指导你安装,也可以直接输入需要的信息而不需要adop提示。

——读取patch元数据,获取补丁的dependencies和requirements。

——如果这个补丁可以安装,从之前的补丁session里上传补丁信息到数据库。

——读取并验证补丁drivers文件,读取产品drivers文件

——从产品库和已经存在的文件的版本信息中,和这个补丁,对比对象模式的版本号。

——备份所有将要被此补丁改变的文件。

——拷贝文件。(详细信息见下文)

——归档libraties里的文件。

——Relinksexecutables

——生成forms,reports,messages,graphics,和所有java archive(jar)文件。

——编译jsp文件和数据库无效对象。

——更新数据库对象

——如果有任何的template文件被该补丁引进或者更新,运行autoconfig根性配置文件。

——保存补丁信息到数据库

 

注意以下几点:

adop永远是从 run edition file system中运行,他自动设置自己正确的环境。

如果补丁没有包含新的更新文件和数据库对象,adop不做任何动作

如果adop检测到一个之前的失败的补丁session,他会去尝试恢复那个session。

我们接续说说上文标红的拷贝文件的详细过程:

1、首先从ebs已安装的产品的 C library中抽取对应的文件。

2、把抽取出的文件对象模块和补丁目录里的相应的文件做比较,当然,除了C library文件还有forms,reports,sql脚本文件。

3、在补丁目录下备份ebs产品里需要替换的文件,举个例子:1234567是补丁目录;VIS是applications system名字;/u01/test/apps/fs1/EBSapps/appl/是APPL_TOP;GL是要打补丁的产品。那么,这个备份会从:

GL/子目录/要替换的文件   to     1234567/backup/VIS/vs022/gl/patch/115/要替换的文件

<PROD>_TOP/<subdir(s)>/<old_file_name>
to
<patch_dir>/backup/<system_name>/<appl_top_name>/<prod>/<subdir(s)>/<old_file_name>

4、用补丁目录里的新文件,替换产品目录下的旧文件。

5、在C library里装载新的对象模块。

6、relink这个产品到操作系统,oracle server,还有其他oracle 产品库。

7、如果需要,修改java class文件,生成JAR文件。

8、复制指定的HTML和media文件到指定产品目录

9、如果JSP文件被包含在patch文件里,编译过时的JSP文件。

:数据库部分:

1、获得apps schema下的当前所有无效对象的列表。

2、Determines whether the action was performed in a previous patch

3、Runs SQL scripts and EXEC commands, which change Oracle E-Business Suitedatabase objects. By default, adop runs scripts and commands in parallel.
4、 Compiles invalid objects in the database.
5、Assembles a list of current invalid objects in the APPS schema.

Generate Portion of a Unified Driver
Apply the generate portion of a unified driver on all APPL_TOP directories containing
one or more files being generated by the patch. When the generate portion of a driver
runs, adop performs these actions:
• Generates Oracle Forms PL/SQL library files
• Generates Oracle Forms menu files
• Generates Oracle Forms executable files
• Generates Oracle Reports PL/SQL library files
• Generates Oracle Reports files
• Generates message files
• Generates Oracle Workflow resource files

 

 

adop的参数:

有必须的,也有可选的,有一些参数能覆盖别的参数,有一些有更高的优先级,所有的参数的格式都是:name=values。

 

phase——用来告诉adop他该运行那个阶段,包括:prepare,apply,cutover,cleanup,finalize,actualize_all,fs_clone,abort。传参数运行的时候,可以用逗号隔开,指定多个阶段,fs_clone和abort这俩阶段不能和其他的阶段一起。(abort表示退出之前失败的session,这样之前session的参数就没有了,可以进行新的cycle了,我用了一次:adop phase=abort)

cleanup_mode:清除进程的控制,有full和quick两个参数值,full是最大清理,包括删除被覆盖的对象,没有用到的列;quick是最小化的清理,占用的时间少,默认值。

finalize_mode:用来指定finalize或者cutover阶段应当被设置成full还是quick。full的时候收集统计信息,以帮助提高性能,如果设置成这个finalize过程至少的用一个小时,quick模式不生成统计信息,默认值。

patches:指定adop要应用的补丁,有两种方式:一种是只有一串数字的那种目录;还有一种是有冒号加驱动的,一般是:HRMS Legislative(立法的)data patch、online help 补丁、语言补丁。。。如中文补丁包:patches=10124646_ZHS:u10124646.drv

workers:指定并行workers的数量。

patchtop:默认位置:/u01/test/apps/fs_ne/EBSapps/patch不过你也可以自己指定。

abandon:指定是否重启之前运行的adop,如果之前运行的有错误(因为如果之前的adop有错误,abandon如果没有被设置为yes,那上次的错误的参数会被用到本次运行),那就可以用它。取值:yes/no  。

restart:也是指定是否重启之前运行的adop,如果之前运行的有错误。restart和abandon的区别是,restart是接着上次失败的地方往下打,abandon是放弃上次的,这次从头开始打。

这两个参数必须同时出现而且必须是一个yes另一个no(mtP85):

abandon=no restart=yes  will retry a patching operation
abandon=yes restart=no   will not retry a patching operation

action:用来指定是否运行数据库cations,取值:db/nodb 。 action=nodb用来关闭数据库的actions,如果在多节点环境中,adop已经更新了数据库,但是你仍然更新文件系统到别的节点,这就非常有用了。

在多节点环境下,如果设置了allnodes=yes,那action=db也要设置。

autoskip:用来在非交互模式的补丁下,控制是否提示用户关于跳过的actions,默认值是yes 。。。。一个脚本叫:ADZDPATCHSTAT.sql在finalize阶段,给出补丁的状态信息:SUCCESS,SKIPPED and SUCCESS, SKIPPED, FAILED四种。

Examples:
phase=prepare,apply,finalize,cutover,cleanup
patches=123456
workers=4

相关日志位置:

其他一些日志如记录并行workers所有动作的worker log也放在s_ne_base下面:/u01/test/apps/fs_ne/EBSapps/log/adop

ad log 文件:

adrelink.log   ——used for  Relinking

adlibin.log   —— used for Moving C object files into the C library of a product 

adliboutlog   —— used for Moving C object files out of the C library of a product

adworkxxx.log  —— used for Database operations run in parallel

<language>_<filename>_ldt.log      ——used for loader files

举例:

一般adop完成一个补丁需要如下阶段:prepare、apply、finalize、cutover、cleanup

 

比如你当前运行在fs1上,打一个补丁15955263:

 adop phase=prepare 准备阶段

 adop phase=apply  patches=15955263workers=6     ——补丁会打到fs2上

 adop phase=finalize,cutover,cleanup workers=6

 

这时经过cutover过程后,应用会切换到fs2上。

 

到下次再进行打补丁的时候,运行prepare过程会把当前fs2文件系统(因为在之前patch15955263你打在了fs2上)同步给fs1(这个时候fs1系统上就有patch 15955263了)。

然后你可以继续apply下一个补丁。有时候为了方便,我们可以一次apply好多个补丁,然后再cutover切换文件系统。这样节省文件系统来回切换的过程。

问答:

  • What are the phases that make up the Online Patching cycle?
    The Online Patching cycle consists of the following phases:
    1. Prepare a virtual copy (patch edition) of the running application (run edition).
    2. Apply patches to the patch edition of the application.
    3. Finalize the system in readiness for the cutover phase.
    4. Cutover to the patch edition and make it the new run edition.
    5. Cleanup obsolete definitions or data to recover space
  • What downtime is required during an Online Patching cycle?
    The cutover phase requires a short period of downtime (typically a few minutes) for transition tasks such as a restart of the application tier services
  • How does Online Patching work on the application tier?
    During Release 12.2 installation, Rapid Install will lay down two copies of the application tier file system. One of the copies will be labeled as therun file system, and the other as thepatch file system.Subsequently, when a patch is applied, adop will:
    1. Synchronize the contents of the run file system to the patch file system. This happens during theprepare phase.(在prepare阶段,同步run file system 到patch file system)
    2. Perform patching actions on the patch file system. This happens during theapply phase.
    3. Finally, during the cutover phase, the adop utility restarts the application tier services. The patch file system is then promoted to be the new run file system, and the old run file system becomes the patch file system for the next patching cycle.

    Note that a third file system, the non-editioned file system (fs_ne), is created to store files containing data that is needed across all file systems,such as log files.

  • Is it possible to abort an Online Patching session?
    Yes. Up to cutover, you can run the abort phase to undo the changes made so far in the patching cycle. It is not possible to back out patches once cutover is complete. 
  • How does adop work in a multi-node environment?
    The adop Online Patching tool uses remote APIs and ssh login to execute patching operations on remote nodes in a multi-node environment. The node that launches adop becomes the ‘master’ node, and the remote nodes are referred to as ‘slaves’. 

如果应用层services是down的,那么adop可以照常运行,adop还可以在有需要的时候启动这些应用层的services。

  • Will AutoConfig and adadmin maintenance tasks such as adrelink be performed online?
    Yes, these maintenance tasks will be performed online. The relevant operations will be targeted to the patch file system, and should be performed during a patching cycle. They will not have any impact on the run file system. 
时间: 2024-11-03 07:13:36

r12.2——adop简介的相关文章

ORACLE R12.2 ADOP ERRORS

ORACLE R12.2 ADOP ERRORS adop errors at fsclone Stage. Error :  1. Error occurred while executing <perl /sid/applmgr/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl2. Error occurred while CONFIG_CLONE Patch File System from

r12.2——adop cycle 详解

prepare: prepare阶段要做的东西是根据上下文环境决定的,比如你是在这个系统上第一次运行prepare:再比如你是上次的apply 阶段失败后abort了,在运行的:再比如你是在cutover之后运行的... Important:在运行prepare阶段之前,你必须保证满足如下条件(mgP77):如下空间必须满足:• SYSTEM tablespace has a minimum of 25 GB of free space• APPS_TS_SEED tablespace has

R12.2——adop 数据库 Edition-Based Redefinition (EBR)

In the database, there is also a run edition and patch edition, but they do not swap roles back and forth as in the file system: the patch edition only comes into existence during apatching cycle, and becomes the new run edition at the end of the cyc

Python中title()方法的使用简介

  这篇文章主要介绍了Python中title()方法的使用简介,是Python入门中的基础知识,需要的朋友可以参考下 title()方法返回所有单词的第一个字符大写的字符串的一个副本. 语法 以下是title()方法的语法: ? 1 str.title(); 参数 NA 返回值 此方法返回其中所有单词的前几个字符都是大写的字符串的一个副本. 例子 下面的例子显示了title()方法的使用. ? 1 2 3 4 #!/usr/bin/python   str = "this is string

shiro(1)-简介

简介 apache shiro 是一个功能强大和易于使用的Java安全框架,为开发人员提供一个直观而全面的的解决方案的认证,授权,加密,会话管理. 在实际应用中,它实现了应用程序的安全管理的各个方面. shiro的功能 apache shiro能做什么? 支持认证跨一个或多个数据源(LDAP,JDBC,kerberos身份等) 执行授权,基于角色的细粒度的权限控制. 增强的缓存的支持. 支持web或者非web环境,可以在任何单点登录(SSO)或集群分布式会话中使用. 主要功能是:认证,授权,会话

Tutum公司简介

2015年10月21日,由Tutum公司的CEO Borja Burgos对外宣布,Tutum与Docker公司正式合作,大家对Tutum和Docker的合作还是很期待的.下面我简单介绍一下Tutum公司. Tutum的历史 Tutum创立的时间很难确定.Tutum(拉丁语里安全的意思)的最初构思是在2012年秋季,它是作为Borja Burgos在卡内基梅隆大学(匹兹堡)的研究生课程和在日本兵库县大学的硕士论文,Tutum是一个可以帮助企业过渡到云的安全支持系统. 在2013年初,Tutum有

在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介

全文检索|索引 内容摘要: Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全

Linux Namespace机制简介

最近Docker技术越来越受到关注,作为Docker中很重要的一项技术,Namespace也就经常在Docker的简介里面看到. 在这里总结一下它的内部机制.也解决一下自己原来的一些疑惑. Namespace是什么: C++中的Namespace: 首先,先提一下Namespace是什么.最早知道这个名词是在学习C++语言的时候.由于现在的系统越来越复杂,代码中不同的模块就可能使用相同变量,于是就出现了Namespace,来对全局作用域进行划分. 比如C++的标注库都定义在STD Namespa

ENode 2.6 架构与设计简介以及全新案例分享

前言 ENode是一个应用开发框架,为开发人员提供了一整套基于DDD+CQRS+ES+EDA架构风格的解决方案.ENode从发布1.0开始到现在的差不多两年时间,我几乎每周都在更新设计或实现代码.以至于从来没有一个稳定的版本可以提供给大家,非常惭愧.但我相信,随着时间的推移和我的努力的积累,ENode一定会越来越稳定和成熟的.我觉得我此刻很幸福,因为我有自己的兴趣且有机会在业余时间为了自己的兴趣而奋斗. ENode开源地址:https://github.com/tangxuehua/enode