互联网服务数据库克隆方案

财务系统数据库克隆方案

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...显示全部
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,将搜索结果的”节点“名称删除后保存,不是删除管理器。收起
参与2

返回leimingbuaa的回答

leimingbuaaleimingbuaa数据库管理员buaa
copy.sh呢?冷备克隆方案?
互联网服务 · 2011-12-05
浏览881

回答者

leimingbuaa
数据库管理员buaa

leimingbuaa 最近回答过的问题

回答状态

  • 发布时间:2011-12-05
  • 关注会员:1 人
  • 回答浏览:881
  • X社区推广