<P></P><P>Applies to: Oracle Applications Manager - Version: 11.5.10 to 12.0.6 Information in this document applies to any platform. Goal 本文档主要是进行一些指导来帮助大家尽量避免一些在 Database Tier 上执行Rapid Clone 所遇到的一些问题: 当执行Oracle Applications克隆时必须要遵循官方的关于克隆的文档Note 230672.1(11i) and Note 406982.1(R12) Solution 通过ATG-ICM Subject Matter Expert (SME): 18th May 2009对相关性进行检查 SECTION 1: 当运行adcfgclone时,如何避免数据库恢复的一些问题 下面的这些错误可以通过接下来的步骤而避免 ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '.dbf' ORA-01503: CREATE CONTROLFILE failed ORA-01159: file is not from same database as previous files - wrong database id 1、 决定到底使用数据库的Hot Backup or Cold Backup进行克隆操作 要是使用HOT Backup执行克隆操作,可遵循Metalink Note的提示: Note.760772.1 Cloning Oracle Application 11i /R12 with Rapid Clone - Database (9i/10g/11g) Using Hot Backup on Open Database 要是使用Cold Backup执行克隆操作,要确保按照下面的步骤进行,在target上面执行克隆操作时,可以避免很多恢复方面的问题 Follow the "Prepare the source system database tier for cloning" steps in the cloning notes Note 230672.1(11i) or Note 406982.1(R12) . These are as follows: + Run autoconfig + Run adpreclone on dbTier + Stop DB and its listener processes(停掉数据库和他的监听进程) + Shutdown the Database with (Normal, Immediate ) Mode(正常关闭数据库) + Bring down the application services(关掉应用进程的服务) + Crosscheck with alert log whether DB has been shutdown completely(通过查看警告日志检查数据库是否完全被完毕) + Run the following OS command to confirm/crosscheck that no DB process running , if any DB processes running , terminate them manually(运行下面的操作系统命令确保/检查没有正在运行的数据库进程,如果还有,在终端手动将其关掉) ps -ef | grep pmon 把所有的数据文件从原数据库拷贝到目标数据库中 在target的系统中,数据库在mount状态下执行下面的SQL: set pagesize 20000 set linesize 180 set pause off set serveroutput on set feedback on set echo on set numformat 999999999999999 Spool recovery_info.txt select substr(name, 1, 50), status from v$datafile; select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header; select GROUP#,substr(member,1,60) from v$logfile; select * from v$recover_file; select distinct status from v$backup; select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh; select distinct (fuzzy) from v$datafile_header; select HXFIL File_num,substr(HXFNM,1,40) File_name,FHTYP Type,HXERR Validity, FHSCN SCN, FHTNM TABLESPACE_NAME,FHSTA status ,FHRBA_SEQ Sequence from X$KCVFH; spool off exit Points to consider 所有数据文件的STATUS 必须是 ONLINE,如果有任何一个数据文件现实的是RECOVER,那么需要在源数据库中进行recover再重做一次拷贝 每一个数据文件的checkpoint_change#的值都不能和其他数据文件的值相同。针对冷备所有的数据文件的checkpoint_change#的值应该是相同的 v$recover_file不会显示又任何一个数据文件需要被恢复 检查数据文件的状态,确保不会有任何一个数据文件显示的是RECOVER,并且FHSTA不会显示status“4”,如果是“4”那么意味着数据文件是online fuzzy状态,这样当数据文件被打开时,该数据文件将会被backed o Run cd /appsutil/clone/bin perl adcfgclone.pl dbTier SECTION 2: 当运行adcfgclone时,Troubleshooting数据库恢复中出现的问题 ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '.dbf' 查看克隆所使用的备份是否是有效 在target的系统中,数据库在mount状态下执行下面的SQL: set pagesize 20000 set linesize 180 set pause off set serveroutput on set feedback on set echo on set numformat 999999999999999 Spool recovery_info.txt select substr(name, 1, 50), status from v$datafile; select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header; select GROUP#,substr(member,1,60) from v$logfile; select * from v$recover_file; select distinct status from v$backup; select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh; select distinct (fuzzy) from v$datafile_header; select HXFIL File_num,substr(HXFNM,1,40) File_name,FHTYP Type,HXERR Validity, FHSCN SCN, FHTNM TABLESPACE_NAME,FHSTA status ,FHRBA_SEQ Sequence from X$KCVFH; spool off exit 2、 确定每一个数据文件的checkpoint_change#的值都不能和其他数据文件的值相同。针对冷备所有的数据文件的checkpoint_change#的值应该是相同的 如果在冷备中有任何一个数据文件的checkpoint_change#存在不同,那么需要在源数据库中进行recover再重做一次拷贝 3、 如果每一个数据文件的checkpoint_change#都是相同的,那么执行下面的操作: Startup mount; SQL> recover database using backup controlfile until cancel; -- type CANCEL SQL> alter database open resetlogs; 如果这个失败,你需要再一次的重新执行拷贝和克隆进程。 4、 在section 1 中每一部执行的查询中,如果任何一个文件的X$KCVFH显示的值为status as "4",那就表示有文件处于online fuzzy,换句话说,当数据文库打开的时候,该数据文件将会被BACKED。所以就需要在源数据库中再次对该数据文件执行COPY操作并且要保证最后的结果满足section 1中的步骤3.的要求。 For example: SQL> select HXFIL File_num,substr(HXFNM,1,40) File_name,FHTYP Type,HXERR Validity, FHSCN 2 SCN, FHTNM 3 TABLESPACE_NAME,FHSTA status ,FHRBA_SEQ Sequence from X$KCVFH; FILE_NUM FILE_NAME TYPE VALIDITY SCN TABLESPACE_NAME STATUS SEQUENCE ---------------- ---------------------------------------- ---------------- ---------------- ---------------- ------------------------------ ---------------- ---------------- 1 /pbsil/oracle/pbsildata/system01.dbf 3 0 2371803541 SYSTEM 4 124273 2 /pbsil/oracle/pbsildata/system02.dbf 3 0 2371803541 SYSTEM 4 124273 3 /pbsil/oracle/pbsildata/system03.dbf 3 0 2371803541 SYSTEM 4 124273 4 /pbsil/oracle/pbsildata/system04.dbf 3 0 Errors ORA-1194; ORA-1503; ORA-1110; ORA-1159; ORA-1547</P><P></P>
|