EBS 12.2 多租户克隆

一、 概述和说明

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. 补丁状态为cleanup​adop 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​

启动应用,并查看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​

猜你喜欢

转载自blog.csdn.net/zll4859291/article/details/129873819