本章节主要讲解一些在进行系统克隆时需要做的一些准备工作。本次克隆使用的系统是Oracle Linux 6版本,满足克隆的版本需求。
本次克隆参考的文档:https://segmentfault.com/a/1190000002473874
1:配置好本地ISO或ORACLE Linux的Yum源
配置了本地的ISO是为了方便后面安装一些RPM文件,避免出现版本冲突,一旦在安装RPM时提示版本冲突,那很有可能会影响系统的正常克隆,而配置本地ISO,那安装的RPM的时候,就会从本地的ISO中获取RPM源文件,这样就不会出现版本冲突问题了,其中我用的系统安装包名称: OracleLinux-Release6-Update8-x86_64-dvd.iso
Root权限:
mkdir /u01
mkdir /u01/DEV
mkdir /u01/DEV/media
chmod -R 777 /u01/DEV/media
mount -o loop /u01/media/OracleLinux-Release6-Update8-x86_64-dvd.iso /media
cd /u01/media
df -h
mount前:
Mount 后:
2:创建install.repo
创建新的repo文件,使后面在安装RPM时可以使用该文件,而不使用系统默认的repo文件,不然很有可能会从网上下载RPM文件,导致版本冲突问题。
vim /etc/yum.repos.d/install.repo
[install]
name=install
baseurl=file:///media
enabled=1
gpgcheck=0
修改系统默认的repo文件,然系统默认使用新增的repo文件
3:安装需要的RPM文件
命令:–for linux 6 x64 and ebs both app&db
yum install libXrender.i686 \
binutils.x86_64 \
compat-libstdc++-296.i686 \
compat-libstdc++-33.i686 \
gcc.x86_64 \
gcc-c++.x86_64 \
glibc.i686 \
glibc.x86_64 \
glibc-common.x86_64 \
glibc-devel.i686 \
glibc-devel.x86_64 \
libgcc.i686 \
libgcc.x86_64 \
libstdc++-devel.i686 \
libstdc++-devel.x86_64 \
libstdc++.i686 \
libstdc++.x86_64 \
libXi.i686 \
libXp.i686 \
libXp.x86_64 \
libaio.i686 \
libaio.x86_64 \
libgomp.x86_64 \
make.x86_64 \
gdbm.i686 \
gdbm.x86_64 \
redhat-lsb.x86_64 \
sysstat.x86_64 \
util-linux-ng.x86_64 \
compat-libcap1.x86_64 \
compat-libstdc++-33.x86_64 \
elfutils-libelf-devel.x86_64 \
libaio-devel.i686 \
libaio-devel.x86_64 \
unixODBC.i686 \
unixODBC-devel.i686 \
xorg-x11-utils.x86_64 \
ksh \
libICE.i686 \
libSM.i686 \
libXt.i686
yum --nogpgcheck install tigervnc-server xclock xhost -y
除了操作系统中包含的RPM包之后,还需要安装2个Oracle提供的RPM包。
这2个RPM包可以从http://oss.oracle.com/project...
下载
cd /u01/stage/rpm
yum install openmotif21-2.1.30-11.EL6.i686.rpm xorg-x11-libs-compat-6.8.2-1.EL.33.0.1.i386.rpm –y
安装完成之后执行如下命令
ldconfig -v
ln -s /usr/X11R6/lib/libXtst.so.6.1 /usr/lib/libXtst.so.6
ls -l /usr/lib/libXtst.so.6
cat /etc/sysctl.conf
cat >> /etc/sysctl.conf <
2):设置limits.conf
vim /etc/security/limits.conf
cat >> /etc/security/limits.conf <
3):设置hosts
vim /etc/hosts
10.211.55.15 dev.hand.com DEV
注;最后一个字段是 hostname,一定要保持一致,不然安装数据库会报错的
5:创建用户和用户组
命令:
/usr/sbin/groupadd dba
/usr/sbin/useradd -g dba oradev
/usr/sbin/useradd -g dba appldev
passwd oradev
passwd appldev
6:创建/etc/oraInst.loc
/etc/oraInst.loc
包含指向oraInventory位置的参数。手动创建/etc/oraInst.loc
文件
vim /etc/oraInst.loc
inventory_loc=/u01/DEV/oraInventory
inst_group=dba
mkdir /u01/DEV/oraInventory
chmod 777 /u01/DEV/oraInventory
7:检查防火墙状态
--关闭防火墙
service iptables status
service iptables stop
chkconfig iptables off
8:swap检查
free -m
9:MD5检查
上传12.2.7安装包到服务器上,需要进行文件压缩才行,同时也需要进行MD5检查,防止在传输过程中文件有损坏,如果验证的MD5不一致,则需要重新下载上传,务必保证MD5一致才行,不然会影响系统克隆。
DB:
cd /u01/stage/12.2.7
cat db_pack_a* > db.tar.gz
md5sum db* > md5a1.txt
APP:
cd /u01/stage/12.2.7
cat EBSapps_pack_a* > EBSapps.tar.gz
md5sum EBSapps* > md5app.txt
注:我在校验MD5时发现好几个文件的的验证都不一样,所以找别人重新要了对应的安装包文件进行上传,保证了所有文件的MD5码一致。
10:重启linux
reboot
本章节主要讲解如何进行数据库克隆操作。
1:关于数据库克隆的说明
克隆目标环境的数据库安装在/u01/DEV/db
目录下,克隆目标数据库使用SID为DEV,使用的端口池为0(即数据库端口使用1521)。
EBS中端口池的概念为:每个端口池对应数据库和应用的一组端口。比如当端口池选择为0时,数据库监听端口为1521,应用的访问端口为8000。如果端口池增加1,数据库和应用的端口也相应的增加。
2: 解压数据库层tar包
使用数据库用户(oradev),后面的数据库克隆也是数据库用户。
将之前压缩的db.tar.gz文件使用oradev用户解压到/u01/DEV路径下
命令:
tar zxvf /u01/stage/12.2.7/db.tar.gz -C /u01/DEV
注:查看文件的压缩方式
file /u01/stage/12.2.7/db_pack_aa
3:克隆数据库(使用数据库用户oradev)
具体的各个参数的值可以参考的文档的设置信息,如果出现不一样的,直接选择默认值即可,或者根据自己需要进行调整。
命令:
cd /u01/DEV/db/12.1.0/appsutil/clone/bin
perl adcfgclone.pl dbTier
4:设置oradev用户的.bash_profile
数据库克隆完成之后,会在ORACLE_HOME中生成一个.env文件中记录关于此ORACLE_HOME的一些环境变量,只需要在oratest用户的.bash_profile
文件中引用此env文件,即可加载到所需要的环境变量。
vim .bash_profile
. /u01/DEV/db/12.1.0/DEV_dev.env
5:创建数据库启用,停用的脚本
对于EBS的数据库来说,可以直接使用oracle提供的脚本进行数据库的启停。
可以创建如下的启停脚本:
cd /home/oradev
vim startdb.sh
/u01/DEV/db/12.1.0/appsutil/scripts/DEV_dev/addbctl.sh start
/u01/DEV/db/12.1.0/appsutil/scripts/DEV_dev/addlnctl.sh start DEV
vim stopdb.sh
/u01/DEV/db/12.1.0/appsutil/scripts/DEV_dev/addbctl.sh stop immediate
/u01/DEV/db/12.1.0/appsutil/scripts/DEV_dev/addlnctl.sh stop DEV
6:测试数据库是否可以连接
配置TNS,然后连接数据:apps/apps
HAND_DEV=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.15)(PORT=1521))(CONNECT_DATA=(SID=DEV)))
本章节主要介绍如何克隆应用部分,其中包括run和patch两个部分。可以参考之前的提供的文档地址,进行对比设置克隆即可。
1:关于应用克隆的说明
克隆目标环境的应用安装在/u01/test/app
目录下。在EBS R12.2中,应用层包含fs1和fs2双文件系统。克隆时,先使用tar包中的文件克隆出run fs,再从克隆好的run fs中克隆出patch fs。run fs使用和数据库相同的端口池1,patch fs使用端口池2。
注:本次克隆中,文件系统的对应关系为:
fs1 -> run fs
fs2 -> patch fs
2: 解压应用层tar包
使用应用层用户名:appldev,
创建/u01/DEV/app/fs1 和/u01/DEV/app/fs2文件
tar zxvf /u01/stage/12.2.7/EBSapps.tar.gz -C /u01/DEV/app/fs1
3:克隆应用RUN部分(appldev)
参数部分可以参考之前提供的文档,根据自己环境的实际进行设置即可。
cd /u01/DEV/app/fs1/EBSapps/comn/clone/bin
perl adcfgclone.pl appsTier
克隆结束之后,我们选择先不启动应用服务。
接下来进行patch fs: fs2的克隆
4:克隆PATCH部分
克隆patch fs之前,需要先将run fs(fs1)中的EBSapps目录拷贝到patch fs(fs2)中。拷贝时注意使用cp -Rp 命令以保持目录中的符号链接。
拷贝完成之后的目录结构如下所示:
命令:
cp -Rp /u01/DEV/app/fs1/EBSapps /u01/DEV/app/fs2
cd /u01/DEV/app/fs2/EBSapps/comn/clone/bin
perl adcfgclone.pl appsTier
5:设置应用层的.bash_profile
由于EBS R12.2有run fs和patch fs两个文件系统,这2个文件系统使用不同的环境变量设置,针对这种情况,Oracle也提供了一个EBSapps.env的脚本,方便用户将环境变量设置在2个文件系统之间进行切换。这个文件在app文件系统的base目录下面,如下:
命令:
cd /home/appldev
vim .bash_profile
. /u01/DEV/app/EBSapps.env run
cd /home/appldev
vim startapp.sh
. /home/appldev/.bash_profile
cd $ADMIN_SCRIPTS_HOME
./adstrtal.sh apps/apps <
7:启动应用并激活所有模块(自动激活模块)
激活模块:
The following product(s) will be licensed when you submit the changes.
Citizen Interaction Center CUG
Contracts Integration OKX
E-Business Tax ZX
Federal Financials FV
Interaction Center Technology IEO
Labor Distribution PSP
OPM 产品开发管理系统 GMD
OPM 库存管理系统 GMI
OPM 流程执行管理系统 GME
OPM 流程计划管理系统 GMP
OPM 财务管理系统 GMF
OPM 采购管理系统 GML
OPM 项目管制系统 GR
Oracle Sales for Handhelds ASP
Oralce Manufacturing Execution System for Process Manufacturing GMO
Public Sector Financials PSA
Public Sector Financials International IGI
Public Sector HR PQH
SSP SSP
US Federal Human Resources GHR
Web 应用产品桌面集成器 BNE
iAssets IA
产品安装信息库 CSI
产品配置器 CZ
仓库管理系统 WMS
付款 IBY
供应商调度管理系统 CHV
内容管理系统 IBC
发运管理系统 WSH
合同核心模块 OKC
在制品管理系统 WIP
在线销售系统 ASF
客户关怀管理系统 CSC
工程管理系统 ENG
市场营销管理系统 AMS
应付帐款 AP
应收帐款 AR
应用产品报表生成器 RG
报价 QOT
服务合同管理系统 OKS
流程管理系统 (OPM) GMA
现金管理系统 CE
电话销售 AST
离散型行业的外包制造 JMF
离线销售系统 ASL
移动设备应用产品 MWA
能力管理系统 CRP
脚本管理 IES
订单管理 ONT
质量管理系统 QA
资产 FA
通用工作队列 IEU
采购管理系统 PO
销售管理系统 ASN
项目 PA
项目制造 PJM
8:编译所有form和message
步骤:
使用adadmin
系统会询问:
Is this the correct APPL_TOP [Yes] ? --回车
Filename [adadmin.log] --回车
Do you wish to activate this feature [No] ? --回车
Please enter the batchsize [1000] : --回车
Is this the correct database [Yes] ? --回车
Enter the password for your ‘SYSTEM’ ORACLE schema: --manager(默认)
Enter the ORACLE password of Application Object Library [APPS] : --apps或是回车
然后能看到下面的界面,然后选择 1
然后会看到下面的界面,直接默认就好了,到后面会看到让你选择模块,根据自己需要选择就好了,我是直接选择ALL的,然后出现的选择全部默认就可以了。
最后会出现如下的编译界面,然后等待就可以了,最后编译完成之后再进行默认,最后就会退出编译界面的,然后就完成了整个编译流程。
9:登录应用测试环境
地址:http://10.211.55.15:8000/
或者:http://dev.hand.com:8000/OA_HTML/AppsLogin
登录账户密码:sysadmin/sysadmin
案例:hand_wms,我用sysadmin登录进去账户新建的账户
本章节主要介绍在克隆过程中遇到的一些问题和对应的解决办法
1:hosts配置不对导致的错误
Hosts配置的不是hostname的信息,导致克隆数据库时报错,重新进行配置hosts即可。
2:克隆数据库用户不对
3:由root先克隆后切换oradev用户克隆报错
由于之前使用了root用户进行克隆,虽然克隆失败了,但是在服务器已经生成了一部分文件,这些文件是root权限,当使用数据库用户进行克隆是就没有权限进行克隆,然后就会导致报错。
cd /u01/DEV
chown -R oradev:dba db