一、 概述和说明
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)
二、克隆前置准备
生产:
-
补丁状态为cleanupadop phase=cleanup
- 同步文件系统
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 |
3.1.6 为目标数据库创建listener.ora和tnsnames.ora
通过运行以下命令为目标CDB创建listener.ora和tnsnames.ora文件
- 设置环境
cd /home/EBSSTG3/db/19.3.0/appsutil source ./txkSetCfgCDB.env -dboraclehome=/home/EBSSTG3/db/19.3.0 |
- 生成文件
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 |
- 按照如下方式启动目标容器数据库的监听器
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
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;
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 \ 创建文件: /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在数据库层上下文文件中输入上下文变量的值。 |
- 通过运行以下命令在数据库层上下文文件中同步 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 |
监听异常的可以重新跑下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: 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> to <oa_service_status oa_var="s_adminserverstatus">enabled</oa_service_status> 重新autoconfig |