Background
Oracle Apps的架構非常複雜,使用了非常多技術(或服務)。比如Apache Web server, Apache Jserv, Forms Listener servlet (或forms server) 等等,每一個服務都有著自己的設定檔,只有都設定正確了,系統才能正常運作。而且,Oracle Apps使用了許多的Profile Options(比如Applications Web Agent, Applications Framework Agent等),這些也需要都設定正確,人工管理這麼多設定檔,其實並不容易,對於新人來說,學習成本很高。
所以Oracle推出了一個非常強大的工具--Autoconfig(Autoconfig是11.5.4後引入的),用於維護這些設定檔和Profile Options。我們可以認為AutoConfig是一些系列模板化設定檔的集合,用於配置出一個標準化的應用環境。
什麼是AutoConfig
AutoConfig是集中並簡化Oracle Apps的組態管理的工具,一個自動設定EBS Instance的工具,不需要手工幹預。它所需要的資訊僅僅是兩個儲存在本地Context檔案(XML類型的檔案),一個是Apps Context檔案,另外一個是DB Context檔案。
AutoConfig在Apps層啟動並執行話,那麼它就需要讀取Apps Context檔案來產生所有的設定檔,並且會更新資料庫的Profiles。
如果AutoConfig在DB層啟動並執行話,那麼它就需要讀取DB Context檔案來產生所有用於DB層面的設定檔。
AutoConfig內部其實是一組Java Class檔案,這些Class檔案由Shell指令碼(或者perl指令碼)來調用,通過模板化的配置來維護系統的設定檔。Autoconfig運行時,會用新的設定檔重寫已存在的設定檔(這個新的設定檔其實是:模板設定檔+context檔案,構建而成的)
總之:AutoConfig確實很好的簡化了系統的配置工作。
AutoConfig指令碼所在的目錄
Application tier: <INST_TOP>/admin/scripts
/adautocfg.sh
(eg./u01/oracle/mc3yd213/inst/apps/mc3yd213_bej301441/admin/scripts/adautocfg.sh)
Database tier: <RDBMS_ORACLE_HOME>/appsutil/scripts
/<CONTEXT_NAME>
/adautocfg.sh
(eg./u01/oracle/mc3yd213/db/tech_st/11.1.0/appsutil/scripts/mc3yd213_bej301441/adautocfg.sh)
運行方法
Apps Tier:
sh <INST_TOP>/admin/scripts/adautocfg.sh
注意:
- 在運行AutoConfig的過程中,Database server和database listener必須已經啟動,Apps Server應該處於關閉狀態。
- Running AutoConfig may change your existing environment files. After running AutoConfig, you should always set the environment before you run any Applications utilities, in order to apply the changed environment variables.
DB Tier:
sh <RDBMS_ORACLE_HOME>/appsutil/scripts/<CONTEXT_NAME>/adautocfg.sh
注意:
- 在運行AutoConfig的過程中,Database server和database listener必須已經啟動,其他資料庫服務應該處於關閉狀態。
- Running AutoConfig may change your existing environment files. After running AutoConfig, you should always set the environment before you run any Applications utilities, in order to apply the changed environment variables.
AutoConfig工作原理
Autoconfig會涉及三類檔案:Context檔案,Template檔案,Driver檔案。
Context檔案
Context檔案可以說一個記錄環境參數的基礎檔案,它儲存了Apps所有的配置資訊,如果需要更改某項配置,則需要首先修改Context檔案的配置資訊,然後在通過AutoConfig,把更改的資訊更新到所有的真實設定檔中去。
Apps Context檔案:<INST_TOP>/appl/admin/<CONTEXT_NAME>.xml (eg./u01/oracle/mc3yd213/inst/apps/mc3yd213_bej301441/appl/admin/mc3yd213_bej301441.xml)
DB Context檔案:<RDBMS_ORACLE_HOME>/appsutil/<CONTEXT_NAME>.xml(eg./u01/oracle/mc3yd213/db/tech_st/11.1.0/appsutil/mc3yd213_bej301441.xml)
NOTE:<CONTEXT_NAME> = <SID>_<hostname>
AutoConfig模板檔案
用於組建組態檔案的模板,Apps裡的每一個設定檔都有一個對應的模板。模板檔案中包含了很多的Tag,這些Tag最終會被Context檔案中環境變數替換掉。
模板檔案存放的地方:
Apps層的模板檔案:<product_top>/admin/template,比如: <FND_TOP>/admin/template (eg./u01/oracle/mc3yd213/apps/apps_st/appl/fnd/12.0.0/admin/template,開啟目錄能看到很多tmp的模板檔案)
DB層的模板檔案:<RDBMS ORACLE_HOME>/appsutil/template,比如<ORACLE_HOME>/appsutil/template(eg./u01/oracle/mc3yd213/db/tech_st/11.1.0/appsutil/template)
driver檔案
Driver檔案會列出了AutoConfig模板檔案路徑以及模板檔案對應的目標設定檔的真實路徑,以及一些指令碼命令。
Apps的Driver檔案位於:<product_top>/admin/driver,比如: <FND_TOP>/admin/driver(eg./u01/oracle/mc3yd213/apps/apps_st/appl/fnd/12.0.0/admin/driver,裡邊有很多.drv檔案)
DB的Driver檔案位於:<RDBMS ORACLE_HOME>/appsutil/template,比如<ORACLE_HOME>/appsutil/template(eg./u01/oracle/mc3yd213/db/tech_st/11.1.0/appsutil/template裡的.drv檔案)
每當Autoconfig啟動並執行時候,都會在先找到Driver檔案,然後按照Driver檔案提供的指令碼命令,模板檔案,以及Context檔案產生目標設定檔。
AutoConfig的記錄檔
Application Tier: <INST_TOP>/admin/log/<MMDDhhmm>
Database Tier: <RDBMS ORACLE_HOME>/appsutil/log/<CONTEXT_NAME>/<MMDDhhmm>
eg./u01/oracle/mc3yd213/db/tech_st/11.1.0/appsutil/log/mc3yd213_bej301441/05240310
<MMDDhhmm> = (month, day, hour, minute of AutoConfig run)
AutoConfig配置復原
每一次AutoConfig的運行都會產生一個復原指令碼,如果AutoConfig配置錯誤,你可以使用復原指令碼來恢複之前的配置。
Application Tier: <INST_TOP>/admin/out/<MMDDhhmm>
Database Tier: <RDBMS ORACLE_HOME>/appsutil/out/<CONTEXT_NAME>/<MMDDhhmm>
並且運行命令: restore.sh(Unix) 或者restore.cmd(Windows)
Reference about AutoConfig
http://www.appsdba.info/docs/oracle_apps/R12/AutoConfig.pdf
387859.1 Using AutoConfig to Manage System Configurations in Oracle Applications Release 12
http://onlineappsdba.com/index.php/2008/01/28/autoconfig-in-oracle-apps-11i-r12-12i/
165195.1 Using AutoConfig to Manage System Configurations with Oracle Applications 11i
218089.1 Autoconfig FAQ
270519.1 Customizing an AutoConfig Environment
364927.1 How To Run Autoconfig On Database Tier (DB-Tier)
341322.1 How to change the hostname of an Applications Tier using AutoConfig
338003.1 How to change the hostname and/or port of the Database Tier using AutoConfig
315674.1 How To Verify if Autoconfig is Enabled on 11.5.x
391406.1 How to get a clean Autoconfig Environment