jokerchu 发表于 2015-9-23 07:33:42

oracle Ebs database clone (no apps clone)

财务系统数据库克隆方案
2011-11-19

1,preclone
  在finrac2
  注:不停应用和数据库
  a)on finrac2,logon as oraprod
   cd $ORACLE_HOME/appsutil/scripts/prod2_finrac2
   perl adpreclone.pl dbTier
  

2,停生产环境应用
  1、停应用
  以applprod分别登录fin1,fin2和fin3,执行
  adstpall.sh apps/passwd
  

3,备份生产数据库到本地磁盘
  1、停止数据库,切换到mount状态
  以oraprod登录finrac2,执行
  srvctl stop db -d prod
  等待数据库停止后
  在finrac2上启动prod2(不启prod1)
   SQL>start mount
  2、备份
  启动到mount状态后,执行sh /dbtmp/copy.sh
  注:执行/dbtmp/copy.sh之前,应检查copy.txt中数据文件的内容,必须与最新生产数据库的数据文件保持一致

4,拷贝文件
  1、停测试环境
  在fin4上,停应用
  sh $COMMON_TOP/admin/scripts/test1_fin4/adstpall.sh apps/apps
  查看$COMMON_TOP/admin/log/test1_fin4/test1_1119.mgr
  如果日志最后显示terminated,则表示并发管理器停止了。
  再通过ps -ef|grep appltest查看appltest的进程,确认appltest进程都已经停止。
  在findb2上,停数据库
  1)用oramig停测试环境数据库
  $sqlplus / as sysdba
  SQL>shutdown immediate
  $lsnrctl stop test1
  2)删除数据库文件:/test/data/*
  rm /test/data/*
  2、拷贝数据库文件
  在finrac2,以root执行
  scp /u01/data/*@findb2:/test/data/
  拷贝完成后(若干小时之后……)
  
  在findb2上,以root执行:
  chown oramig:dba/test/data/*
  
  3、拷贝数据库的appsutil文件
  以root登录findb2,执行
  mv /migcode/testdb/10.2.0.4/appsutil /migcode/testdb/10.2.0.4/appsutil.20111120
  以root登录finrac2,
  执行
  scp -r /oradb/db/10.2.0.4/appsutil   @findb2:/migcode/testdb/10.2.0.4/
  在findb2上执行,以root执行
  chown -R oramig:dba /migcode/testdb/10.2.0.4/appsutil

5,数据库克隆
  5.1重建控制文件
  登录findb2,以oramig执行下面命令。执行之前,确认ctl.sql包含的是最新的生产环境的数据库文件
  $sqlplus / as sysdba
  SQL>STARTUP NOMOUNT                                                                  
  SQL>@/home/oramig/ctl.sql
  
  5.2加入thread 2的redo logs和临时表空间的临时文件
  以oramig执行/home/oramig/addredo.sql
  SQL>@/home/oramig/addredo.sql
  5.3启动数据库和监听,以oramig执行
  SQL>alter database open resetlogs;
  SQL>alter tablespace temp add tempfile‘/test/data/temp01.dbf’ size1000m;
  
  lsnrctl start test1
  
  5.4清理无用的节点信息
  $sqlplus apps/apps
  SQL>Delete from fnd_nodes;
  SQL>commit;
  SQL>alter user apps temporary tablespace temp;
  5.5数据库节点运行Autuconfig
  -重命名文件夹
  mv $ORACLE_HOME/appsutil/scripts/prod2_finrac2 $ORACLE_HOME/appsutil/scripts/test1_findb2
  -恢复xml文件,恢复adautocfg.sh文件
  cp $ORACLE_HOME/appsutil.20111120/test1_findb2.xml $ORACLE_HOME/appsutil
  cp $ORACLE_HOME/appsutil.20111120/scripts/test1_findb2/adautocfg.sh $ORACLE_HOME/appsutil/scripts/test1_findb2/
  -运行autoconfig
  sh $ORACLE_HOME/appsutil/scripts/test1_findb2/adautocfg.sh

6,应用autoconfig
  6.1以appltest登录fin4,
  sh /testapp/testcomn/admin/scripts/test1_fin4/adautocfg.sh
  
  

7,其他工作
  1)修改sysadmin口令
  2)修改db参数utl_file_dir,包含$APPLPTMP和$APPLTMP
  以oramig登陆findb2
  $sqlplus / as sysdba
  SQL>alter system set utl_file_dir=’/usr/tmp’,’/testapp/testcomn/temp’ scope=spfile;
  SQL>startup force
  3)取消口令限制
  在系统配置文件内,在“地点”层查找“口令”,去掉口令长度限制
  4)修改地点名称
  在系统配置文件内,在“地点”层查找“地点”,修改地点名称
  
  5)修改apps口令,各模块默认口令
  在fin4上,以appltest运行
  $FNDCPASS apps/passwd 0 Y system/passwd SYSTEM APPLSYS apps
  $sqlplus apps/apps
  SQL>create table fnd_user_20111120 as select * from fnd_user;
  SQL>create table fnd_oracle_userid_1120 as select * from fnd_oracle_userid;
  $FNDCPASS apps/apps 0 Y system/passwd ALLORACLE newpasswd
  6)修改并发管理器的节点定义
  CREATE TABLE FND_CONCURRENT_QUEUES1120 AS SELECT * FROM FND_CONCURRENT_QUEUES;
  UPDATE FND_CONCURRENT_QUEUES SET NODE_NAME=’’ WHERE NODE_NAME IN (‘FIN1’,’FIN2’,’FIN3’);
  或通过界面进行修改:
  
  在节点处分别查询fin1,fin2和fin3,将搜索结果的”节点“名称删除后保存,不是删除管理器。
  
页: [1]
查看完整版本: oracle Ebs database clone (no apps clone)