源端环境介绍
CentOS release 6.2
IP:192.168.130.151
ORACLE_BASE= /wfdb/db
ORACLE_HOME=/wfdb/db/product/11.2.0/dbhome_1
ORACLE_SID=WF
/wfdb是挂载的目录,ORACLE软件安装在上面
克隆一个目标端的OS来自源端OS,不克隆/wfdb,目标端相当于一个干净的操作系统,但是已经有所有关于oracle的操作系统配置,如/etc/sysctl.config,/etc/security/limit.config中的配置,所有的rpm包,oracle用户、dba组、oinstall组及/etc下面的一些oracle文件
克隆ORACLE软件至目标端
1. 源端打包ORACLE_HOME目录(必须使用root用户,使用oracle用户的话nmb、nmo、nmhs三个特殊权限文件无法打包)
# zip -r dbhome_1.zip /wfdb/db/product/11.2.0/dbhome_1
2. 目标端建立和源端一样的目录并授权oracle用户,把包传到目标端
mkdir –p /wfdb/db/product/11.2.0/
3. 目标端使用oracle用户解压文件,再使用root用户授权三个特殊权限文件
unzip dbhome_1.zip
chown root.oinstall nmhs
chown root.oinstall nmo
chown root.oinstall nmb
chmod 4710 nmhs
chmod 4710 nmo
chmod 4710 nmb
4. 目标端把$ORACLE_HOME/network/admin下面的.ora文件改名加上_YYYYMMDD,再创建和源端一样的dump、controlfile、datafile、onlineredo目录
5. 目标端再在Xmanager Enterprise工具下使用oracle用户执行如下
ORACLE_BASE、ORACLE_HOME都是是目标端实际存在的
cd /wfdb/db/product/11.2.0/dbhome_1/clone/bin/
/wfdb/db/product/11.2.0/dbhome_1/perl/bin/perl clone.pl ORACLE_BASE="/wfdb/db" ORACLE_HOME="/wfdb/db/product/11.2.0/dbhome_1" OSDBA_GROUP=dba OSOPER_GROUP=dba -defaultHomeName
运行完毕后,要按提示使用root执行/wfdb/db/product/11.2.0/dbhome_1/root.sh
6. 目标端再cp listener.ora_YYYYMMDD listener.ora,修改host为备库的并新增一段静态监听,如红色标记
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.30.166)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME= /wfdb/db/product/11.2.0/dbhome_1)
(SID_NAME = WF)
)
)
ADR_BASE_LISTENER = /wfdb/db
7. 目标端启动监听
8. 目标端动到nomount状态
可以正常启动,因为克隆oracle软件后目标端有和主库一样的密码文件和spfile、pfile文件
Duplicate至目标端
1. 源端增加目标端的tns
如目标端的为WF_166,因为没有其他变动,其实只是tns中的名称不一样,t其他service_name都是一样的
2. 目标端的tns内容和源端一样
3. 源端执行rman target sys/lf0320tcsge@WF auxiliary sys/lf0320tcsge@WF_166
4. 源端继续执行duplicate target database to WF from active database nofilenamecheck;
以上只是保持目标端的DB_NAME、INSTANCE_NAME都和源端一样,如果需要不一样,其实很简单,只需要修改目标端的.bash_profle中SID,并删除spfile,把pfile名称修改下,再执行duplicate命令如下
duplicate target database to wftst from active database db_file_name_convert=('/wfdb/db/oradata/WF','/wfdb/db/oradata/WFTST') nofilenamecheck;
ORACLE_HOME的位置变了就要做克隆的操作
如果不小心把oracle的目录改名或改路径了,只要数据文件(redo、undo、datafile、archivelog、tempfile)和控制文件不在ORACLE_HOME里,做软件克隆就可以了(从别的地方拷贝一个ORACLE_HOME目录过来就可以做克隆了)
EBS克隆时如果还要保持原来的pfile则一定要备份(如果hostname、路径与源端的不一样则不必了,一样的话会覆盖),因为克隆会重做pfile的(perl adcfgclone.pl dbTier或perl adcfgclone.pl dbTechStack)
cd /db/DEV/db/tech_st/11.2.0/appsutil/clone/bin
perl adcfgclone.pl dbTier
或
perl adcfgclone.pl dbTechStack
单机克隆时源库的密码文件和spfile、pfile文件不会丢失(perl clone.pl)
cd /wfdb/db/product/11.2.0/dbhome_1/clone/bin/
wfdb/db/product/11.2.0/dbhome_1/perl/bin/perl clone.pl ORACLE_BASE="/wfdb/db" ORACLE_HOME="/wfdb/db/product/11.2.0/dbhome_1" OSDBA_GROUP=dba OSOPER_GROUP=dba –defaultHomeName
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2126011/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30126024/viewspace-2126011/