EBS 12.2 克隆

时间:2023-02-17 10:57:30

一、 概述和说明

1.1 概述

本文档用于使用多租户数据库的EBS克隆操作


1.2 参考文档

Cloning Oracle E-Business Suite Release 12.2 with Multitenant Database using Rapid Clone (文档 ID 2552208.1)

Cloning Oracle E-Business Suite Release 12.2 with Rapid Clone (文档 ID 1383621.1)

Using Load Balancers with Oracle E-Business Suite Release 12.2 (文档 ID 1375686.1)

Managing Configuration of Oracle HTTP Server and Web Application Services in Oracle E-Business Suite Release 12.2 (文档 ID 1905593.1)

Alternative Methods to Allow Access to Oracle WebLogic Server Administration Console from Trusted Hosts for Oracle E-Business Suite Release 12.2 (文档 ID 2542826.1)


二、克隆前置准备

生产:

  1. 补丁状态为cleanupadop phase=cleanup
  2. 同步文件系统

 adop phase=fs_clone


3、应用层

cd $ADMIN_SCRIPTS_HOME

./adautocfg.sh


perl $AD_TOP/bin/admkappsutil.pl

生成appsutil.zip


4、数据库层

cp appsutil.zip $ORACLE_HOME(数据库层)

数据库层:

cd $ORACLE_HOME

unzip –o appsutil.zip

cd $ORACLE_HOME/appsutil/scripts/EBSSTG2_ebsdbuat1

./adautocfg.sh


5、维护快照

Update current view snapshot" in AD Administration


6准备源系统数据库层以进行克隆

跑下preclone:

cd $ORACLE_HOME/appsutil/scripts/ EBSSTG2_ebsdbuat1

perl adpreclone.pl dbTier


7、准备源系统应用程序层以进行克隆

cd $ADMIN_SCRIPTS_HOME

./adadminsrvctl.sh start

perl adpreclone.pl appsTier


8、执行数据库和应用层备份


三、实际克隆步骤

3.1 数据库克隆

克隆和配置目标数据库

3.1.1 复制和解压ORACLE_HOME

3.1.2 创建pairfile.txt

在$ORACLE_HOME/appsutil/clone下创建pairfile.txt

s_undo_tablespace=APPS_UNDOTS1

s_db_oh=/home/EBSSTG3/db/19.3.0

s_dbhost=ebstest01

s_dbSid=EBSSTG3

s_pdb_name=EBSSTG3

s_cdb_name=EBSCDB3

s_base=/home/EBSSTG3/db

s_dbuser=orastg

s_dbgroup=dba

s_dbhome1=/home/EBSSTG3/db/data

s_display=ebstest01:0.0

s_dbCluster=false

s_isDBCluster=n

s_dbport=1521

s_port_pool=80


3.1.3 创建context_file,使用手工生成的pairsfile.txt

cd /home/EBSSTG3/db/19.3.0/appsutil/clone/bin

perl adclonectx.pl contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG2_ebsuat1db.xml \

template=/home/EBSSTG3/db/19.3.0/appsutil/template/adxdbctx.tmp pairsfile=/home/EBSSTG3/db/19.3.0/appsutil/clone/pairsfile.txt


3.1.4 配置数据库技术栈(这里也可以不指定xml,交互界面手工输入,完成后自动创建xml)


perl adcfgclone.pl dbTechStack /home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml


注意:<s_outbound_dir> 变量需要手工指定正确的值,统一使用定义的数据库目录,上述命令会创建对应的目录


3.1.5 数据库角色分离(目标库为RAC)

cd <Grid Home>/bin
./setasmgidwrap -o <Target database Oracle Home>/bin/oracle


3.1.6 为目标数据库创建listener.ora和tnsnames.ora

通过运行以下命令为目标CDB创建listener.ora和tnsnames.ora文件

  1. 设置环境

cd /home/EBSSTG3/db/19.3.0/appsutil

source ./txkSetCfgCDB.env -dboraclehome=/home/EBSSTG3/db/19.3.0


  1. 文件

cd /home/EBSSTG3/db/19.3.0/appsutil/bin

perl txkGenCDBTnsAdmin.pl -dboraclehome=/home/EBSSTG3/db/19.3.0 -cdbname=EBSCDB \

-cdbsid=EBSCDB -dbport=1601 -outdir=$ORACLE_HOME/appsutil/log \

-israc=no

  1. 按照如下方式启动目标容器数据库的监听器

cd /home/EBSSTG3/db/19.3.0/appsutil/scripts/EBSSTG3_ebstest01

./adcdblnctl.sh start EBSCDB

注意:如果源 Oracle E-Business Suite 实例处于 R12.TXK.C.DELTA.12及以上代码级别,上述命令可能会以状态1退出,等待PDB服务启动。由于数据库尚未恢复,因此可以忽略此错误。

3.1.7 恢复并启动目标数据库

(重要,停止测试环境的监听)

数据库恢复过程:

通过scp 方式复制到测试机

cp 新建一个initEBSCDB.ora,更改参数

更改pfile或者spfile 里要设置

db_file_name_convert=('/home/EBSCDB/db/data','/home/EBSCDB3/db/data')

log_file_name_convert=('/home/EBSCDB/db/data','/home/EBSCDB3/db/data')

export ORACLE_SID=EBSCDB

sqlplus /nolog

conn /as sysdba

startup nomount

rman auxiliary /

DUPLICATE TARGET DATABASE TO EBSCDB backup location '/home/EBSSTG/rman/20220209';

目标PDB名称更改

Export ORACLE_SID=EBSCDB

  1. 验证是否已存在具有目标 PDB 名称的任何服务

Alter session set container=EBSSTG2;

select count(*) from cdb_services c, service$ s

where upper(s.name) = upper('EBSSTG3')

and s.deletion_date is null

and s.name = c.name;


  1. 如果已存在任何具有 Target PDB 名称的服务,请按如下方式将其删除

alter session set container="EBSSTG2";

dbms_service.delete_service('EBSSTG3');


3、运行以下步骤重命名PDB

sqlplus / as sysdba

alter pluggable database "EBSSTG2" close;

alter pluggable database "EBSSTG2" unplug into '/home/EBSSTG3/db/19.3.0/dbs/EBSSTG2.xml';

drop pluggable database "EBSSTG2";

create pluggable database "EBSSTG3" using '/home/EBSSTG3/db/19.3.0/dbs/EBSSTG2.xml' NOCOPY SERVICE_NAME_CONVERT=('ebs_EBSSTG2','ebs_EBSSTG3','EBSSTG2_ebs_patch','EBSSTG3_ebs_patch');

alter pluggable database "EBSSTG3" open read write;


4、通过运行以下命令启动 PDB 并保存其状态

sqlplus / as sysdba

alter pluggable database all open; (in case of a single-node database)

alter pluggable database all open instances=all; (in case of an Oracle RAC database)

alter pluggable database all save state instances=all;

5、针对 Oracle 数据库运行库更新脚本

cd /home/EBSSTG3/db/19.3.0/appsutil/install/EBSSTG3_ebstest01

sqlplus "/as sysdba" @adupdlib.sql sl

3.1.8 设置目标

1、获取UTL_FILE_DIR 现有值

获取PDB 的环境变量:

perl /home/EBSSTG3/db/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml \
-oraclehome=/home/EBSSTG3/db/19.3.0 -outdir=/home/EBSSTG3/db/19.3.0/appsutil/log -mode=getUtlFileDir


创建文件:

/home/EBSSTG3/db/19.3.0/dbs/EBSSTG3_utlfiledir.txt

编辑并创建对应的物理目录

连接数据库异常,此问题是监听问题,动态监听无法监听数据库

Alter system set local_listener=’ebstest01:1601’ scope=both;

2、更新数据库中的UTL_FILE_DIR

cd /home/EBSSTG3/db/19.3.0/appsutil/bin

perl /home/EBSSTG3/db/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml \

-oraclehome=/home/EBSSTG3/db/19.3.0 -outdir=/home/EBSSTG3/db/19.3.0/appsutil/log \

-mode=setUtlFileDir

、创建目录对象(如果想创建新的目录,新增加的不能与contextfile文件中存在的目录相同)

perl /home/EBSSTG3/db/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml \

-oraclehome=/home/EBSSTG3/db/19.3.0 -outdir=/home/EBSSTG3/db/19.3.0/appsutil/log -mode=createDirObject


当提示输入要创建的目录对象的操作系统路径时,s_outbound_dir在数据库层上下文文件中输入上下文变量的值。

  1. 通过运行以下命令在数据库层上下文文件中同步 UTL_FILE_DIR 的值:

perl /home/EBSSTG3/db/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml \ -oraclehome=/home/EBSSTG3/db/19.3.0 -outdir=/home/EBSSTG3/db/19.3.0/appsutil/log -mode=syncUtlFileDir -skipautoconfig=yes



3.1.9 配置目标数据库

cd /home/EBSSTG3/db/19.3.0/appsutil/clone/bin
perl adcfgclone.pl dbconfig /home/EBSSTG3/db/19.3.0/appsutil/EBSSTG3_ebstest01.xml


监听异常的可以重新跑下autoconfig


数据库克隆完成后修改动作:

1、修改EBS_SYSTEM 密码,克隆后会与SYSTEM 密码一致,需要修改为不一致。

$ sqlplus EBS_SYSTEM/<EBS_SYSTEM PASSWORD>
SQL> alter user EBS_SYSTEM identified by "<NEW PASSWORD>";

3.2 应用克隆

3.2.1 克隆应用节点

[applstg@ebstest01 bin]$ perl adcfgclone.pl appsTier dualfs

Enter the APPS password :

Enter the Weblogic AdminServer password :

Do you want to add a node (yes/no) [no] :

Running: Context clone...

Log file located at /home/EBSSTG3/app/fs1/EBSapps/comn/clone/bin/CloneContext_0210152324.log

Provide the values required for creation of the new APPL_TOP Context file.

Target System Hostname (virtual or normal) [ebstest01] :

Target System Database SID : EBSSTG3 ----PDB NAME

Target System Database Server Node [ebstest01] :


3.2.2 应用层克隆完成后执行动作

1、更改访问控制台信任主机

参考文档:Alternative Methods to Allow Access to Oracle WebLogic Server Administration Console from Trusted Hosts for Oracle E-Business Suite Release 12.2 (文档 ID 2542826.1)

<s_wls_admin_console_access_nodes oa_var="s_wls_admin_console_access_nodes">192.168.8.0/24</s_wls_admin_console_access_nodes>


2、优化节点

调整adminserver JVM

vi $CONTEXT_FILE

修改s_nm_jvm_startup_properties参数

-Xms1024m -Xmx1024m改为-Xms2048m –Xmx2048m


更改完成后,执行adautoconfig

启动adminserver

[applstg@ebstest01 scripts]$ ./adadminsrvctl.sh start

查看adminserver启动进程JVM参数是否为2048

ps -ef |grep applstg | grep Xms


登录weblogic控制台修改ebs其他组件JVM参数

http://192.168.8.25:7081/console

修改各个组件的JVM

EBS 12.2 克隆


EBS 12.2 克隆


启动应用,并查看CONTEXT_FILE中组件JVM参数,修改CONTEXT_FILE 中jvm_start_options参数min max size均修改为 2048M

优化完成后,执行同步文件系统 fs_clone

3.3.3 修改sysadmin密码

更改用户密码:

FNDCPASS apps/apps 0 Y system/Manager USER sysadmin sys010203


3.2.4 更改weblogic密码:见weblogic修改密码文档

3.2.5 更改apps密码:(请在整个克隆完成后更改)

FNDCPASS apps/apps 0 Y system/Manager SYSTEM applsys apps01

更apps密码后,需要通过console页面更改下连接池的密码

四、附录

4.1 服务组件添加及删除

参考文档:Managing Configuration of Oracle HTTP Server and Web Application Services in Oracle E-Business Suite Release 12.2 (文档 ID 1905593.1)

服务组件删除

1、关闭要删除的服务组件,

2、删除托管服务器,并更新包含对已删除托管服务器的引用的相应上下文变量

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \

ebs-delete-managedserver \

-cnotallow=$CONTEXT_FILE -managedsrvname=oacore_server2 \

-servicetype=oacore -logfile=/home/applstg/delMS_oacoreserver2.log


3、从当前节点上OHS 配置文件mod_wl_ohs.conf和apps.conf中删除托管服务器的详细信息

perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl \

-cnotallow=$CONTEXT_FILE \

-cnotallow=removeMS -oacore=ebstest01.oracle.com:7282


服务组件添加

1、创建一个托管服务器并向上下文文件添加一个新条目

perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \

ebs-create-managedserver -cnotallow=$CONTEXT_FILE \

-managedsrvname=oacore_server3 -servicetype=oacore \

-managedsrvport=7283 -logfile=/home/applstg/addMS_oacoreserver2.log


perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \

ebs-create-managedserver -cnotallow=$CONTEXT_FILE \

-managedsrvname=forms_server3 -servicetype=forms \

-managedsrvport=7483 -logfile=/home/applstg/addMS_formsserver3.log


2、将新添加的托管服务器的详细信息添加到当前节点OHS配置文件 mod_wl_ohs.conf 和apps.conf中

perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -cnotallow=$CONTEXT_FILE \

-cnotallow=addMS -oacore=ebstest01.oracle.com:7283


perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -cnotallow=$CONTEXT_FILE \

-cnotallow=addMS -forms=ebstest01.oracle.com:7483



五、问题修复

5.1 克隆问题修复

应用层autoconfig 报错

ERROR at line 1:
ORA-20001: Node name ebs not found in adop repository tables
ORA-06512: at "APPS.AD_ZD_ADOP", line 3083

eval {...} called at /home/EBSSTG3/app/fs1/inst/apps/EBSSTG3_ebstestapp02/admin/install/txkGenADOPWrapper.pl line 143)

ERRORCODE = 1 ERRORCODE_END


解决:

Script txkGenADOPWrapper.pl Fail With ORA-20001 While Running Autoconfig On Target Node During Migration (文档 ID 2268532.1)


1、Modify these two variables to 'enabled' in the RUN file system context file on the target server.

<oa_service_status oa_var="s_adminserverstatus">disabled</oa_service_status>
<oa_service_group_status oa_var="s_web_admin_status">disabled</oa_service_group_status>

to

<oa_service_status oa_var="s_adminserverstatus">enabled</oa_service_status>
<oa_service_group_status oa_var="s_web_admin_status">enabled</oa_service_group_status>

重新autoconfig