Oracle E-Business Suite数据库版本升级 11.2.0.2 至 11.2.0.4

适用环境

本升级手册适用于EBS系统的数据库版本升级。APP版本为 12.1.3,DB版本为11.2.0.2,操作系统为SOLARIS 10,CPU类型为SPARC 64。操作完成后将使DB版本升级为11.2.0.4,并且本地脚本可以继续正常使用。

文档中标注为 [本地] 的项目为定制化的非标准操作流程。适用于需要兼容特定公司的脚本。

准备工作

  • [建议] 配置本地X11-forwarding,可以降低数据库软件安装,examples安装,DBUA执行等过程的操作复杂度。
  • [建议] 对EBS数据库及应用进行一次冷全备;
  • [必要] 准备升级所必须的文件:适用于Solaris SPARC 64 的数据库升级包(编号13390677),OPATCH补丁包(编号6880880),最新PSU补丁包,EBS补丁包p12686610_R12.TXK.B_R12_GENERIC;
  • [必要] 安装EBS APP AUTOCONFIG补丁p12686610_R12.TXK.B_R12_GENERIC;
  • 安装过程需要用到原数据库的SYSTEM,APPS用户密码以及相关服务器的ROOT密码。

    文件备份

    需要额外进行备份的文件清单:
  • [本地] 数据库节点:数据库参数文件:$ORACLE_HOME/dbs/*
  • [本地] 数据库节点:oraInst.loc文件:/var/opt/oracle/oraInst.loc
  • [本地] 数据库节点:脚本配置文件:/corpoem/etc/dbtab
  • [本地] 应用节点:客户化FORM环境文件:$INST_TOP/ora/10.1.2/forms/server/default.env
  • 数据库节点:数据库OPatch文件: $ORACLE_HOME/OPatch/*

    升级过程

    一、切换产品清单文件(数据库节点) [本地]

    预计用时:5分钟

    将当前DBA用户对应的实例名(如oagci1p 对应的实例名为 GCI1P)的oraInst.loc文件配置为当前调用的oraInst.loc文件。

例如,现在进行GCI1P实例的数据库升级,须使用ROOT账号将/var/opt/oracle/路径下的oraInst.loc_GCI1P重命名为oraInst.loc(原oraInst.loc文件进行重命名备份)
示例:

1
2
3
# cd /var/opt/oracle/
# mv oraInst.loc oraInst.loc.20190416
# mv oraInst.loc_GCI1P oraInst.loc

如此便完成对实例进行升级所需要的产品清单文件配置。(安装完成后还需要切换回来)

二、安装准备(数据库节点)

预计用时:20分钟

2.1 创建新的ORACLE_HOME。一般在原ORACLE_HOME目录的上一级目录进行创建。

示例:

1
2
3
4
5
oagci1p(oagci1p) on gcicsspdb01 (GCI1P):
$ echo $ORACLE_HOME
/fd01/GCI1P/db/tech_st/11.2.0.2
oagci1p(oagci1p) on gcicsspdb01 (GCI1P):
$ mkdir -r /fd01/GCI1P/db/tech_st/11.2.0.4

2.2 规划和测试新的数据库监听端口(非必须)

可以另外使用一个监听端口,以便于回滚。也可以继续使用原监听端口。若使用新的端口,则需要测试该端口是否有其他程序在使用。

2.3 更新context内的监听端口(应用服务器节点)

若选择使用新的监听端口,则需要更新应用服务器节点上的CONTEXT文件的s_dbport标签为新的监听端口。
context文件位于$INST_TOP/appl/admin。

  • 注意,修改该文件后,直到数据库升级完成之前,不要运行AUTOCONFIG。

    三、安装11.2.0.4数据库软件(数据库节点)

    预计用时:30分钟

    上传相关安装文件,(p13390677_112040_SOLARIS64_1of7.zip和p13390677_112040_SOLARIS64_2of7.zip)解压并将软件安装至新的ORACLE_HOME。相关注意事项:
  • 安装时选择“仅安装软件”,不另外创建数据库实例;
  • 安装时选择安装“企业版”数据库软件;
  • 安装用户和数据库所有者全部选择当前旧实例的DBA账号,如oagci1p,oagci1d等等。
    具体安装步骤略。
    配置好XSERVER直接调用GUI界面安装,手动安装则自行参考Oracle® Database Installation Guide 11g Release 2 (11.2) for Oracle Solaris。

    四、更新OPatch文件(数据库节点)

    预计用时:10分钟

    上传OPatch文件(p6880880_112000_SOLARIS64.zip)至新ORACLE_HOME,备份原来的OPatch文件夹,解压p6880880_112000_SOLARIS64.zip后,将上传的压缩包删除。
    示例:
    1
    2
    3
    mv OPatch OPatch_20190416
    unzip p6880880_112000_SOLARIS64.zip
    rm p6880880_112000_SOLARIS64.zip

五、安装PSU(数据库节点)

预计用时:30分钟

上传并解压PSU文件(p28204707_112040_SOLARIS64.zip)并进入解压出来的文件夹中,进行安装.(注意,此时需要加载新的ORACLE_HOME变量)
示例:

1
2
3
4
5
6
7
unzip p28204707_112040_SOLARIS64.zip
cd 28204707
ORACLE_HOME=/fh01/GCI1P/db/tech_st/11.2.0.4
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
$ORACLE_HOME/OPatch/opatch apply

六、安装Examples CD(数据库节点)

预计用时:30分钟

上传相关安装文件(p13390677_112040_SOLARIS64_6of7.zip),并将软件安装至新的ORACLE_HOME。
具体安装步骤略。
配置好XSERVER直接调用GUI界面安装,手动安装则自行参考Oracle® Database Examples Installation Guide 11g Release 2 (11.2)。

七、创建nls/data/9idata 文件夹(数据库节点)

预计用时:5分钟

直接执行语句:(注意,ORACLE_HOME需要配置为新ORACLE_HOME)

1
perl $ORACLE_HOME/nls/data/old/cr9idata.pl

创建完成后,配置环境变量:

1
2
ORA_NLS10=$ORACLE_HOME/nls/data/9idata
expore ORA_NLS10

八、数据库实例升级(数据库节点)

预计用时:450分钟

8.1 关闭实例的应用节点的所有进程,关闭数据库监听;

示例:

1
2
3
#应用节点
ebsenv GCI1P
$ADMIN_SCRIPTS_HOME/adstpall.sh

1
2
3
#数据库节点
ebsenv -db GCI1P
lsnrctl stop GCI1P

注意:

  • 从本步骤开始,直到整个升级全部完成,EBS将不可访问;
  • 需要确认原数据库监听完全关闭,并且没有本地连接连入数据库。

    8.2 准备升级

    8.2.1 清理回收站
    升级前必须清理数据库回收站,导入旧的ORACLE_HOME,使用SYSDBA进行:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #导入数据库SID和ORACLE_HOME
    ORACLE_SID=GCI1P
    export ORACLE_SID
    ORACLE_HOME=/fh01/GCI1P/db/tech_st/11.2.0.2
    export ORACLE_HOME
    PATH=$ORACLE_HOME/bin:$PATH
    export PATH
    PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH
    export PATH
    #使用SQLPLUS连接数据库清理回收站
    sqlplus / as sysdba
    SQL> PURGE DBA_RECYCLEBIN;
8.2.2 重新编译失效对象

先统计当前数据库内的失效对象,若不存在失效对象,则可以不进行重新编译。

1
2
3
4
SELECT owner,object_type,status,COUNT(*) FROM dba_objects
WHERE status = 'INVALID'
GROUP BY owner,object_type,status
ORDER BY owner,object_type

重新编译所有失效对象。以SYSDBA连接数据库,执行:

1
sqlplus / as sysdba @$ORACLE_HOME/rdbms/admin/utlrp.sql

8.3 执行实例升级

运行DBUA进行实例升级。配置XSERVER可以大大简化升级操作,若希望进行手动升级,请参考Oracle Database Upgrade Guide, 11g Release 2 (11.2) 。
注意事项:

  • 不需要移动数据库文件目录;
  • 不需要启用闪回区。
    具体操作步骤略。
    如果出现下面的错误,请点击忽略:
  • ISSUE01:ORA-04043 object DROP_AW_ELIST_ALL does not exist
  • ISSUE02: ORA-02303 & ORA-00955

以上报错是源于11.2.0.4升级包的BUG,对于不使用OGG的数据库无影响,可以安全忽略。

我们的数据库未使用OGG,所以无需做额外处理。如果今后需要使用OGG,则需要安装补丁:Patch:21131412、Patch: 22457613、Patch:22576728 (文档 1557031.1)

8.4 执行其余的PSU补丁步骤

导入新ORACLE_HOME,并使用SQLPLUS连接实例,执行相关脚本:

1
2
3
4
5
6
7
8
9
10
11
12
#导入数据库SID和ORACLE_HOME
ORACLE_SID=GCI1P
export ORACLE_SID
ORACLE_HOME=/fh01/GCI1P/db/tech_st/11.2.0.4
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/perl/bin:$PATH
export PATH
#使用SQLPLUS连接数据库
sqlplus / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply

九、实例升级后需要进行的操作

预计用时:200分钟

9.1 启动监听

将原TNS_ADMIN内的文件全部复制至新TNS_ADMIN目录,并检查每个文件内的端口号,文件路径为新的端口号和路径。
例如,可以将所有文件内的 1521端口替换为新1522端口,将所有的11.2.0.2,替换为11.2.0.4。全部替换完成后,加载新路径的TNS_ADMIN变量,并启动监听:

1
2
3
TNS_ADMIN=/fh01/GCI1P/db/tech_st/11.2.0.4/network/admin/GCI1P_gcicssddb01
export TNS_ADMIN
lsnrctl start GCI1P

9.2 执行adgrants.sql

拷贝应用节点内的$APPL_TOP/admin/adgrants.sql文件至数据库节点,使用SYSDBA账号运行该脚本,相关参数为 APPS。

9.3 授予创建过程的权限给 CTXSYS

使用SYSDBA账号运行下面的语句:

1
SQL> exec ctxsys.ctx_adm.set_parameter('file_access_role', 'public');

9.4 验证工作流规则集

拷贝应用节点内的$FND_TOP/patch/115/sql
/wfaqupfix.sql文件至数据库节点,使用apps账号连接数据库,并执行该脚本。

1
sqlplus apps/[apps的密码] @wfaqupfix.sql

所需要的参数为APPLSYS和APPS。

9.5 取消注册当前数据库服务器

使用APPS用户连接数据库,并执行下面的语句:

1
2
sqlplus apps/[apps的密码]
SQL> exec fnd_conc_clone.setup_clean;

9.6 数据库节点运行AUTOCONFIG

在应用服务器节点执行语句生成新的AUTOCONFIG包:

1
perl <AD_TOP>/bin/admkappsutil.pl

将生成的包复制到数据库节点的新ORACLE_HOME,并解压。

1
unzip -o appsutil.zip

执行下面的语句生成数据库节点专用的CONTEXT文件:

1
perl $ORACLE_HOME/appsutil/bin/adbldxml.pl

数据库节点执行AUTOCONFIG:(CONTEXT文件在上一步会显示路径和文件名,下面的为示例)

1
$ORACLE_HOME/appsutil/bin/adconfig.sh contextfile=$ORACLE_HOME/appsutil/GCI1P_gcicsspdb01.xml

9.7 应用服务器节点运行AUTOCONFIG

在应用服务器上执行:

1
sh $INST_TOP/admin/scripts/adautocfg.sh

9.8 还原原来的参数文件 (数据库节点) [本地]

升级完成后,数据库会切换到SPFILE,且原来配置的隐藏参数全部被去除。因此需要还原之前备份的参数文件。

9.8.1 关闭数据库实例和监听
1
2
sqlplus / as sysdba
SQL> shutdown immediate
1
lsnrctl stop GCI1P
9.8.2 删除当前的SPFILE

进入新$ORACLE_HOME/dbs/,删除SPFILE,示例:

1
rm $$ORACLE_HOME/dbs/GCI1P_gcicsspdb01_spfile.ora

9.8.3 还原备份的PFILE

将之前备份的参数文件(旧$ORACLE_HOME/dbs/*)覆盖现在的参数文件。

9.8.4 修改PFILE

修改initGCI1P.ora中的下列内容:

diagnostic_dest
原值:
diagnostic_dest= /fd01/GCI1P/db/tech_st/11.2.0.2/admin/GCI1P_gcicsspdb01
新值:
diagnostic_dest= /fd01/GCI1P/db/tech_st/11.2.0.4/admin/GCI1P_gcicsspdb01

IFILE
原值:
IFILE=/fd01/GCI1P/db/tech_st/11.2.0.2/dbs/GCI1P_gcicsspdb01_ifile.ora
新值:
IFILE=/fd01/GCI1P/db/tech_st/11.2.0.4/dbs/GCI1P_gcicsspdb01_ifile.ora

修改GCI1P_gcicsspdb01_ifile.ora中的下列内容:

utl_file_dir
原值:
utl_file_dir = /fd01/GCI1P/db/tech_st/11.2.0.2/appsutil/outbound/GCI1P_gcicsspdb01
新值:
utl_file_dir = /fd01/GCI1P/db/tech_st/11.2.0.4/appsutil/outbound/GCI1P_gcicsspdb01

注意,修改时还要检查新值的路径是否存在,若不存在,则手动创建。

9.8.5 启动监听和数据库实例
1
lsnrctl start GCI1P
1
2
sqlplus / as sysdba
SQL> startup

9.9 还原客户化FORM环境配置(应用节点) [本地]

编辑应用节点的环境文件:

1
vi $INST_TOP/ora/10.1.2/forms/server/default.env

将下面的内容添加至文件末尾:

XXPAY_TOP=/fh01/GCI1P/applcust/12App/xxpay
XXKIT_TOP=/fh01/GCI1P/applcust/12App/xxkit
XXPER_TOP=/fh01/GCI1P/applcust/12App/xxper
XXPO_TOP=/fh01/GCI1P/applcust/12App/xxpo
XXONT_TOP=/fh01/GCI1P/applcust/12App/xxont
XXMRP_TOP=/fh01/GCI1P/applcust/12App/xxmrp
XXINV_TOP=/fh01/GCI1P/applcust/12App/xxinv
XXGL_TOP=/fh01/GCI1P/applcust/12App/xxgl
XXFA_TOP=/fh01/GCI1P/applcust/12App/xxfa
XXAR_TOP=/fh01/GCI1P/applcust/12App/xxar
XXDBA_TOP=/fh01/GCI1P/applcust/12App/xxdba
XXCST_TOP=/fh01/GCI1P/applcust/12App/xxcst
XXBOM_TOP=/fh01/GCI1P/applcust/12App/xxbom
XXAP_TOP=/fh01/GCI1P/applcust/12App/xxap
XXPOS_TOP=/fh01/GCI1P/applcust/12App/xxpos
XXWIP_TOP=/fh01/GCI1P/applcust/12App/xxwip

9.10 修改本地脚本配置文件(数据库节点) [本地]

修改下列路径下的文件:

/corpoem/etc/dbtab

对下列内容进行修改:

GCI1P:/fd01/GCI1P/db/tech_st/11.2.0.2:oagci1p:11.2.0.2:N:EBS:Y:A

修改为:

GCI1P:/fd01/GCI1P/db/tech_st/11.2.0.4:oagci1p:11.2.0.4:N:EBS:Y:A

十、收集SYS模式的统计信息 (数据库节点)

预计用时:240分钟

从应用节点中的以下路径复制脚本文件至数据库节点:

$APPL_TOP/admin/adstats.sql

使用SYSDBA连接至数据库实例,将数据库切换至estricted模式,执行脚本,然后关闭estricted模式。
示例:

1
2
3
4
5
6
sqlplus "/ as sysdba"
SQL> alter system enable restricted session;
SQL> @adstats.sql
$ sqlplus "/ as sysdba"
SQL> alter system disable restricted session;
SQL> exit;

预计用时:20分钟

对所有在使用的定制化DBLINK进行重新创建操作,语句示例:
查看当前DBLINK

1
2
sqlplus apps/[apps password]
SQL> select db_link from all_db_links;

注意,EDW_APPS_TO_WH 和 APPS_TO_APPS 正常情形下已在之前AUTOCONFIG中重新创建,仅验证有效性即可,其他DBLINK需要手动重新创建。
重建客户化 DBLINK

1
2
3
4
5
6
sqlplus apps/[apps password]
SQL> drop database link [custom database link];
SQL> create database link [custom database link] connect to
[user] identified by [password] using
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[hostname])
(PORT=[port number]))(CONNECT_DATA=(SID=[ORACLE_SID])))';

十二、启动应用节点 (应用节点)

预计用时:20分钟

在应用服务器上使用DBA账号登录服务器,加载环境变量后启动应用节点:

1
2
3
sudo su - oagci1p
ebsenv GCI1P
$ADMIN_SCRIPTS_HOME/adstrtal.sh

十三、官方已知问题的处理

13.1 PLS-00306: wrong number or types of arguments in call to ‘SYNCRN’is encountered when trying to create sales contacts. More information may be found in bug 17441178.

为解决该问题,需要重新创建相关过程,参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
connect / as sysdba
alter session set current_schema=CTXSYS;

create or replace procedure syncrn (
ownid IN binary_integer,
oname IN varchar2,
idxid IN binary_integer,
ixpid IN binary_integer,
rtabnm IN varchar2,
srcflg IN binary_integer,
smallr IN binary_integer
)
authid definer
as external
name "comt_cb"
library dr$lib
with context
parameters(
context,
ownid ub4,
oname OCISTRING,
idxid ub4,
ixpid ub4,
rtabnm OCISTRING,
srcflg ub1,
smallr ub1
);
/

13.2 FRM-99999: Error 408 occurs when trying to modify HRMS contact information. More information may be found 2. in bug 17446933.

未有解决方案,可能已被最新PSU修复,若遇到该问题,需要提交SR处理。

十四、参考文档

  1. Interoperability Notes EBS 12.0 and 12.1 with Database 11gR2 (文档 ID 1058763.1)
  2. Oracle Database Upgrade Guide, 11g Release 2 (11.2)
  3. Using AutoConfig to Manage System Configurations in Oracle E-Business Suite Release 12 (文档 ID 387859.1)

知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×